client/vendor/golang.org/x/sys/unix
knative-automation 9b838cfb0a
upgrade to latest dependencies (#1570)
bumping knative.dev/hack 59b0cf1...9b2ed84:
  > 9b2ed84 Update community files (# 139)
bumping knative.dev/networking eac673f...c7164d4:
  > c7164d4 upgrade to latest dependencies (# 604)
  > 37ab2ef upgrade to latest dependencies (# 603)
  > 075f9b9 Update community files (# 602)
  > 52fb6ee upgrade to latest dependencies (# 601)
  > db53592 Update actions (# 600)
bumping knative.dev/pkg c0e1594...77555ea:
  > 77555ea upgrade to latest dependencies (# 2398)
  > 768f44f bump our min version to 1.21 (# 2397)
  > e989c22 Update community files (# 2393)
  > 0a429cb Allow Unstructured callback from Defaulting Webhook (# 2363)
bumping knative.dev/serving 9073261...a3216ca:
  > a3216ca Update net-kourier nightly (# 12520)
  > f079283 Update net-gateway-api nightly (# 12521)
  > 969beb3 Update net-istio nightly (# 12519)
  > b74e3c7 bump ggcr/k8schain to the latest (# 12510)
  > d44ad85 Update community files (# 12518)
  > a560242 Update net-contour nightly (# 12514)
  > db1b4ad Update net-kourier nightly (# 12515)
  > a75ee09 upgrade to latest dependencies (# 12513)
bumping github.com/spf13/cobra de187e8...178edbb:
  > 178edbb Bump github.com/spf13/viper from 1.9.0 to 1.10.0 (# 1561)
  > 9054739 Remove __complete cmd for program without subcmds (# 1563)
  > 19c9c74 Always include the os package import when generating the root command (# 1557)
  > 01e05b8 Bump github.com/spf13/viper from 1.8.1 to 1.9.0 (# 1554)
  > 36bff0a fix root.go.golden (# 1552)
  > 1854bb5 Fix some typos (mostly found by codespell) (# 1514)
  > ff2c55e chore(ci): use golangci-lint-action (# 1477)
  > 1beb476 fix: Duplicate error message from cobra init boilerplates (# 1463)
  > 6f84ef4 Provide option to hide default 'completion' cmd (# 1541)
  > ee75a2b Remove trailing spaces from bash completion command description (# 1520)
  > 25bab5a Fix invalid shell completion when used with ~/.cobra.yaml (# 1510)
  > 3fed3ef Support different bash completion options (# 1509)
  > 507caf5 completions: fix mixed tab/spaces indentation (# 1473)
  > c7a4421 fix: typo in {bash,zsh}_completions.go (# 1459)
  > c3573e2 Completion: Capitalize short desc, and remove extra space from long (# 1455)
  > dd40ab0 feat: improve completions help formatting (# 1444)
  > d298d79 Update shell_completions.md to have automatically rootcmd (# 1372)
  > 6f19fa9 fix: unbound variables in bash completion (# 1321)
  > d65ba12 github: add dependabot configuration file (# 1427)
  > 45e521e enable composing PositionalArgs (# 896)
  > 9e1d6f1 args_test: add helper functions  (# 1426)
  > 62a72cd fix(diff): use arg '--strip-trailing-cr' (# 949)
  > 442031e Allow specifying licenses using their SPDX identifier (# 1159)
  > 78969f9 Remove "Lesser" from header for GPL-2.0 template (# 880)
  > 3c84bf8 Small correction in User Guide (# 1009)
  > 3ba5f15 Projects using cobra update (# 1454)
  > bfacc59 Addressing typos identified by @marckhouzam
  > 2682562 Simplifying goGet function
  > cf87fc4 Updating generator documentation and links
  > c97b7ec Update documentation to reflect the module aware generator
  > 9388e79 Cobra generator now works within Go modules
  > c9edb78 Change generator default license to none
  > dcf42b2 Change generator to require opting in to viper.
  > c0dd5cd Removing unused imports when not using Viper
  > f09e947 readme: remove ToC, since it's now shown by GitHub (# 1429)
  > d2c0cb3 DisableFlagParsing must disable flag completion (# 1161)
  > c1973d3 Update projects-using markdown with Tanzu (# 1501)
  > 4fd30b6 ci: test golang 1.16.x and 1.17.x too (# 1425)
  > 2a52778 go.mod: cpuguy83/go-md2man/v2 v2.0.1 (# 1460)
  > 56060d1 Add Meroxa CLI (# 1377)
bumping golang.org/x/term 6a3ed07...6886f2d:
  > 6886f2d all: upgrade x/sys to latest
  > a79de54 go.mod: upgrade to go 1.17
  > c04ba85 term: unify ioctl{Read,Write}Termios definition for aix, linux, solaris & zos
  > f5beecf term: skip TestMakeRawState on GOOS=ios
  > b80969c term: add aix and zos build tags
  > 72f3dc4 term: use existing unix implementation on solaris
  > de623e6 term: use stdin file descriptor in comment
bumping knative.dev/eventing 61d97d3...e0e3f44:
  > e0e3f44 Implement Subscriptions API Filters in MTChannelBroker (# 5995)
  > 7d73613 Use zap.NewProductionConfig and specific time encoding (# 6043)
  > d7b4d2c Change default Broker delivery spec (# 6011)
  > 76366bc Increase timeout for rekt tests (# 6062)
  > 850528b Update community files (# 6063)
  > f6fec10 update dependencies (# 6057)
  > 47c5739 upgrade to latest dependencies (# 6060)
  > 65c4a6f Dump resources when failed to wait for them to become ready (# 6056)
  > 68d4410 Fix test helpers for subscription that abuse Subscription's `spec.reply` (# 6053)
  > 5ebbed7 Set missing event type on CloudEvent in a test helper (# 6047)
  > 9963bd0 upgrade to latest dependencies (# 6044)
  > 2d64fdd Make event-library test image 'vendorable' (# 6049)
bumping github.com/spf13/viper bd03865...a4bfcd9:
  > a4bfcd9 chore(deps): update crypt
  > 1cb6606 build(deps): bump gopkg.in/ini.v1 from 1.65.0 to 1.66.2
  > a785a79 refactor: replace jww with the new logger interface
  > f1f6b21 feat: add logger interface and default implementation
  > c43197d build(deps): bump github.com/mitchellh/mapstructure from 1.4.2 to 1.4.3
  > 2abe0dd build(deps): bump gopkg.in/ini.v1 from 1.64.0 to 1.65.0
  > 8ec82f8 chore(deps): update crypt
  > 35877c8 chore: fix lint
  > 655a0aa chore(deps): update golangci-lint
  > 946ae75 ci: fix github script
  > d40d641 chore: Go 1.17 update
  > 41ec2aa chore: run lint fixer
  > ba606cd chore: update build tools
  > 91b237f build(deps): bump actions/github-script from 4 to 5
  > 793ee22 build(deps): bump gopkg.in/ini.v1 from 1.63.2 to 1.64.0
  > 0594522 test: fix failing tests on windows
  > 14c9dc6 test: fix file find tests on windows
  > eae2327 feat: disable finder for now
  > 237f373 test: fix finder tests on windows
  > 78228f5 build: disable goconst linter for now
  > 8b7777d test(windows): skip failing tests on windows
  > 15c88da test(windows): fix watch file test
  > 552e3bd ci: separate lint and test
  > 1a7008f ci: make build pass on windows
  > 077ee30 ci: run tests on windows
  > 5a4e555 test: add tests for reading config files
  > 08ba8ca ci: disable fail fast
  > 4e595ce feat: use io/fs for searching files on Go 1.16+
  > 557c5d6 test: improve tests for searching files
  > 8e71595 feat: implement new finder using io/fs
  > ce82267 refactor: drop unused Unsetenv from testutil
  > 558a299 feat: use TB.Setenv on Go 1.17
  > b1fdc47 Recognize tfvars files as hcl by default.
  > 65f16c1 docs: fix indentation in code samples
  > 0d7e803 build(deps): bump github.com/mitchellh/mapstructure from 1.4.1 to 1.4.2
  > 6a29539 build(deps): bump gopkg.in/ini.v1 from 1.63.1 to 1.63.2
  > fa3412d fix cannot write hidden file without extension (# 1017)
  > a1f26b1 Add test for cannot write hidden file without extension
  > 46a61e6 Fixes # 1062
  > e606f74 fix: made `InConfig` process paths correctly
  > 2062cd6 Fix codeql workflow
  > c4687f7 Add CodeQL analysis workflow
  > 5a4d2a0 chore(deps): update crypt library fork
  > 6937864 chore(deps): update go-ini dependency
  > e897cbf build(deps): bump github.com/pelletier/go-toml from 1.9.3 to 1.9.4
  > eb876e1 update readme.md
  > 38e00ee Bump github.com/fsnotify/fsnotify from 1.4.9 to 1.5.1
  > 5c0d079 ci: run builds on Go 1.17
  > cf6565f Bump github.com/spf13/cast from 1.4.0 to 1.4.1
  > a7cfd8b Fix bug report template
  > 294bb31 Add Go version to bug report tempplate
  > f2053fa Bump github.com/spf13/cast from 1.3.1 to 1.4.0
  > ab4b05a chore: add GitHub issue forms
  > e866eaa Update feedback_pull_request.yml
  > bc5df54 Update feedback_issue.yml
  > 409a7ba Bump actions/github-script from 3 to 4.0.2
  > 489df74 Update dependabot.yml
  > 899b682 Create dependabot.yml
  > 030b739 docs: add section about decoding formats
  > a02f986 feat(encoding): Integrate the new encoding package into Viper
  > 699d749 feat(encoding): Add toml codec
  > 6f15444 feat(encoding): Add hcl codec
  > 1862663 feat(encoding): Add json codec
  > 0e854bf feat(encoding): Add yaml codec
  > a00caae feat(encoding): Encoder/Decoder registry implementations

Signed-off-by: Knative Automation <automation@knative.team>
2022-01-19 04:53:53 -08:00
..
.gitignore Actually, vendor everything (#59) 2019-04-05 04:08:57 -07:00
README.md upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
affinity_linux.go chore: Update to Knative Serving 0.10.0 (#474) 2019-11-04 13:02:19 -08:00
aliases.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
asm_aix_ppc64.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_bsd_386.s Update k8s dependencies to v0.20.7 (#1344) 2021-06-17 07:42:22 -07:00
asm_bsd_amd64.s Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
asm_bsd_arm.s Update k8s dependencies to v0.20.7 (#1344) 2021-06-17 07:42:22 -07:00
asm_bsd_arm64.s Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
asm_linux_386.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_linux_amd64.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_linux_arm.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_linux_arm64.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_linux_mips64x.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_linux_mipsx.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_linux_ppc64x.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_linux_riscv64.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_linux_s390x.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_openbsd_mips64.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_solaris_amd64.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
asm_zos_s390x.s Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
bluetooth_linux.go Update dependencies, pin k8s deps. (#855) 2020-05-26 00:39:49 -07:00
cap_freebsd.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
constants.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
dev_aix_ppc.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
dev_aix_ppc64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
dev_darwin.go Actually, vendor everything (#59) 2019-04-05 04:08:57 -07:00
dev_dragonfly.go Actually, vendor everything (#59) 2019-04-05 04:08:57 -07:00
dev_freebsd.go Actually, vendor everything (#59) 2019-04-05 04:08:57 -07:00
dev_linux.go Actually, vendor everything (#59) 2019-04-05 04:08:57 -07:00
dev_netbsd.go Actually, vendor everything (#59) 2019-04-05 04:08:57 -07:00
dev_openbsd.go Actually, vendor everything (#59) 2019-04-05 04:08:57 -07:00
dev_zos.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
dirent.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
endian_big.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
endian_little.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
env_unix.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
epoll_zos.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
errors_freebsd_386.go Update dependencies, pin k8s deps. (#855) 2020-05-26 00:39:49 -07:00
errors_freebsd_amd64.go Update dependencies, pin k8s deps. (#855) 2020-05-26 00:39:49 -07:00
errors_freebsd_arm.go Actually, vendor everything (#59) 2019-04-05 04:08:57 -07:00
errors_freebsd_arm64.go Update dependencies, pin k8s deps. (#855) 2020-05-26 00:39:49 -07:00
fcntl.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
fcntl_darwin.go Pin deps back to master (#1082) 2020-10-30 08:15:35 -07:00
fcntl_linux_32bit.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
fdset.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
fstatfs_zos.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
gccgo.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
gccgo_c.c Pin deps back to master (#1082) 2020-10-30 08:15:35 -07:00
gccgo_linux_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
ifreq_linux.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
ioctl.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
ioctl_linux.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
ioctl_zos.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
mkall.sh upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
mkerrors.sh upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
pagesize_unix.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
pledge_openbsd.go chore: Update to Knative Serving 0.10.0 (#474) 2019-11-04 13:02:19 -08:00
ptrace_darwin.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
ptrace_ios.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
race.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
race0.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
readdirent_getdents.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
readdirent_getdirentries.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
sockcmsg_dragonfly.go Update dependencies, pin k8s deps. (#855) 2020-05-26 00:39:49 -07:00
sockcmsg_linux.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
sockcmsg_unix.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
sockcmsg_unix_other.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
str.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_aix.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
syscall_aix_ppc.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_aix_ppc64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_bsd.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
syscall_darwin.1_12.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_darwin.1_13.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
syscall_darwin.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
syscall_darwin_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_darwin_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_darwin_libSystem.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
syscall_dragonfly.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
syscall_dragonfly_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_freebsd.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
syscall_freebsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_freebsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_freebsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_freebsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_illumos.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
syscall_linux.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
syscall_linux_386.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_amd64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_amd64_gc.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_linux_arm.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_arm64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_gc.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_linux_gc_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_linux_gc_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_linux_gccgo_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_linux_gccgo_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_linux_mips64x.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_mipsx.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_ppc.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_ppc64x.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_riscv64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_s390x.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_linux_sparc64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
syscall_netbsd.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
syscall_netbsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_netbsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_netbsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_netbsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_openbsd.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
syscall_openbsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_openbsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_openbsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_openbsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_openbsd_mips64.go [Release-0.18] Pin knative deps to release-0.18 (#1025) 2020-09-23 11:58:41 -07:00
syscall_solaris.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
syscall_solaris_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_unix.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
syscall_unix_gc.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_unix_gc_ppc64x.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
syscall_zos_s390x.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
sysvshm_linux.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
sysvshm_unix.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
sysvshm_unix_other.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
timestruct.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
unveil_openbsd.go chore: Update to Knative Serving 0.10.0 (#474) 2019-11-04 13:02:19 -08:00
xattr_bsd.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_aix_ppc.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_aix_ppc64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_darwin_amd64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zerrors_darwin_arm64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zerrors_dragonfly_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_freebsd_386.go upgrade to latest dependencies (#1381) 2021-07-14 05:24:31 -07:00
zerrors_freebsd_amd64.go upgrade to latest dependencies (#1381) 2021-07-14 05:24:31 -07:00
zerrors_freebsd_arm.go upgrade to latest dependencies (#1381) 2021-07-14 05:24:31 -07:00
zerrors_freebsd_arm64.go upgrade to latest dependencies (#1381) 2021-07-14 05:24:31 -07:00
zerrors_linux.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_386.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_amd64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_arm.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_arm64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_mips.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_mips64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_mips64le.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_mipsle.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_ppc.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_ppc64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_ppc64le.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_riscv64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_s390x.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_linux_sparc64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zerrors_netbsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_netbsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_netbsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_netbsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_openbsd_386.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
zerrors_openbsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_openbsd_arm.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
zerrors_openbsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_openbsd_mips64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zerrors_solaris_amd64.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
zerrors_zos_s390x.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
zptrace_armnn_linux.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zptrace_linux_arm64.go Update dependencies, pin k8s deps. (#855) 2020-05-26 00:39:49 -07:00
zptrace_mipsnn_linux.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zptrace_mipsnnle_linux.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zptrace_x86_linux.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_aix_ppc.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
zsyscall_aix_ppc64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
zsyscall_aix_ppc64_gc.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
zsyscall_aix_ppc64_gccgo.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
zsyscall_darwin_amd64.1_13.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
zsyscall_darwin_amd64.1_13.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
zsyscall_darwin_amd64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_darwin_amd64.s upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_darwin_arm64.1_13.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
zsyscall_darwin_arm64.1_13.s upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
zsyscall_darwin_arm64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_darwin_arm64.s upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_dragonfly_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_freebsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_freebsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_freebsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_freebsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_illumos_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_linux.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
zsyscall_linux_386.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_amd64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_arm.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_linux_mips.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_mips64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_mips64le.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_mipsle.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_ppc.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_ppc64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_ppc64le.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_riscv64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_linux_s390x.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_linux_sparc64.go upgrade to latest dependencies (#1512) 2021-11-04 01:29:01 -07:00
zsyscall_netbsd_386.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsyscall_netbsd_amd64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsyscall_netbsd_arm.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsyscall_netbsd_arm64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsyscall_openbsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_openbsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_openbsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_openbsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_openbsd_mips64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsyscall_solaris_amd64.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
zsyscall_zos_s390x.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
zsysctl_openbsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysctl_openbsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysctl_openbsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysctl_openbsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysctl_openbsd_mips64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_darwin_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_darwin_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_dragonfly_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_freebsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_freebsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_freebsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_freebsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_linux_386.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_amd64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_arm.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_arm64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_mips.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_mips64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_mips64le.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_mipsle.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_ppc.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_ppc64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_ppc64le.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_riscv64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_s390x.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_linux_sparc64.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
zsysnum_netbsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_netbsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_netbsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_netbsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_openbsd_386.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_openbsd_amd64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_openbsd_arm.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_openbsd_arm64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_openbsd_mips64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
zsysnum_zos_s390x.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
ztypes_aix_ppc.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
ztypes_aix_ppc64.go Upgrade Eventing API from v1beta1 to v1 (#1284) 2021-04-08 07:42:51 -07:00
ztypes_darwin_amd64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_darwin_arm64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_dragonfly_amd64.go upgrade to latest dependencies (#1381) 2021-07-14 05:24:31 -07:00
ztypes_freebsd_386.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
ztypes_freebsd_amd64.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
ztypes_freebsd_arm.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
ztypes_freebsd_arm64.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
ztypes_illumos_amd64.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
ztypes_linux.go upgrade to latest dependencies (#1570) 2022-01-19 04:53:53 -08:00
ztypes_linux_386.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_amd64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_arm.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_arm64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_mips.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_mips64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_mips64le.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_mipsle.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_ppc.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_ppc64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_ppc64le.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_riscv64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_s390x.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_linux_sparc64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_netbsd_386.go upgrade to latest dependencies (#1381) 2021-07-14 05:24:31 -07:00
ztypes_netbsd_amd64.go upgrade to latest dependencies (#1381) 2021-07-14 05:24:31 -07:00
ztypes_netbsd_arm.go upgrade to latest dependencies (#1381) 2021-07-14 05:24:31 -07:00
ztypes_netbsd_arm64.go upgrade to latest dependencies (#1381) 2021-07-14 05:24:31 -07:00
ztypes_openbsd_386.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_openbsd_amd64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_openbsd_arm.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_openbsd_arm64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_openbsd_mips64.go upgrade to latest dependencies (#1527) 2021-11-23 06:11:51 -08:00
ztypes_solaris_amd64.go upgrade to latest dependencies (#1466) 2021-09-30 04:18:45 -07:00
ztypes_zos_s390x.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00

README.md

Building sys/unix

The sys/unix package provides access to the raw system call interface of the underlying operating system. See: https://godoc.org/golang.org/x/sys/unix

Porting Go to a new architecture/OS combination or adding syscalls, types, or constants to an existing architecture/OS pair requires some manual effort; however, there are tools that automate much of the process.

Build Systems

There are currently two ways we generate the necessary files. We are currently migrating the build system to use containers so the builds are reproducible. This is being done on an OS-by-OS basis. Please update this documentation as components of the build system change.

Old Build System (currently for GOOS != "linux")

The old build system generates the Go files based on the C header files present on your system. This means that files for a given GOOS/GOARCH pair must be generated on a system with that OS and architecture. This also means that the generated code can differ from system to system, based on differences in the header files.

To avoid this, if you are using the old build system, only generate the Go files on an installation with unmodified header files. It is also important to keep track of which version of the OS the files were generated from (ex. Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes and have each OS upgrade correspond to a single change.

To build the files for your current OS and architecture, make sure GOOS and GOARCH are set correctly and run mkall.sh. This will generate the files for your specific system. Running mkall.sh -n shows the commands that will be run.

Requirements: bash, go

New Build System (currently for GOOS == "linux")

The new build system uses a Docker container to generate the go files directly from source checkouts of the kernel and various system libraries. This means that on any platform that supports Docker, all the files using the new build system can be generated at once, and generated files will not change based on what the person running the scripts has installed on their computer.

The OS specific files for the new build system are located in the ${GOOS} directory, and the build is coordinated by the ${GOOS}/mkall.go program. When the kernel or system library updates, modify the Dockerfile at ${GOOS}/Dockerfile to checkout the new release of the source.

To build all the files under the new build system, you must be on an amd64/Linux system and have your GOOS and GOARCH set accordingly. Running mkall.sh will then generate all of the files for all of the GOOS/GOARCH pairs in the new build system. Running mkall.sh -n shows the commands that will be run.

Requirements: bash, go, docker

Component files

This section describes the various files used in the code generation process. It also contains instructions on how to modify these files to add a new architecture/OS or to add additional syscalls, types, or constants. Note that if you are using the new build system, the scripts/programs cannot be called normally. They must be called from within the docker container.

asm files

The hand-written assembly file at asm_${GOOS}_${GOARCH}.s implements system call dispatch. There are three entry points:

  func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
  func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
  func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)

The first and second are the standard ones; they differ only in how many arguments can be passed to the kernel. The third is for low-level use by the ForkExec wrapper. Unlike the first two, it does not call into the scheduler to let it know that a system call is running.

When porting Go to a new architecture/OS, this file must be implemented for each GOOS/GOARCH pair.

mksysnum

Mksysnum is a Go program located at ${GOOS}/mksysnum.go (or mksysnum_${GOOS}.go for the old system). This program takes in a list of header files containing the syscall number declarations and parses them to produce the corresponding list of Go numeric constants. See zsysnum_${GOOS}_${GOARCH}.go for the generated constants.

Adding new syscall numbers is mostly done by running the build on a sufficiently new installation of the target OS (or updating the source checkouts for the new build system). However, depending on the OS, you may need to update the parsing in mksysnum.

mksyscall.go

The syscall.go, syscall_${GOOS}.go, syscall_${GOOS}_${GOARCH}.go are hand-written Go files which implement system calls (for unix, the specific OS, or the specific OS/Architecture pair respectively) that need special handling and list //sys comments giving prototypes for ones that can be generated.

The mksyscall.go program takes the //sys and //sysnb comments and converts them into syscalls. This requires the name of the prototype in the comment to match a syscall number in the zsysnum_${GOOS}_${GOARCH}.go file. The function prototype can be exported (capitalized) or not.

Adding a new syscall often just requires adding a new //sys function prototype with the desired arguments and a capitalized name so it is exported. However, if you want the interface to the syscall to be different, often one will make an unexported //sys prototype, and then write a custom wrapper in syscall_${GOOS}.go.

types files

For each OS, there is a hand-written Go file at ${GOOS}/types.go (or types_${GOOS}.go on the old system). This file includes standard C headers and creates Go type aliases to the corresponding C types. The file is then fed through godef to get the Go compatible definitions. Finally, the generated code is fed though mkpost.go to format the code correctly and remove any hidden or private identifiers. This cleaned-up code is written to ztypes_${GOOS}_${GOARCH}.go.

The hardest part about preparing this file is figuring out which headers to include and which symbols need to be #defined to get the actual data structures that pass through to the kernel system calls. Some C libraries preset alternate versions for binary compatibility and translate them on the way in and out of system calls, but there is almost always a #define that can get the real ones. See types_darwin.go and linux/types.go for examples.

To add a new type, add in the necessary include statement at the top of the file (if it is not already there) and add in a type alias line. Note that if your type is significantly different on different architectures, you may need some #if/#elif macros in your include statements.

mkerrors.sh

This script is used to generate the system's various constants. This doesn't just include the error numbers and error strings, but also the signal numbers and a wide variety of miscellaneous constants. The constants come from the list of include files in the includes_${uname} variable. A regex then picks out the desired #define statements, and generates the corresponding Go constants. The error numbers and strings are generated from #include <errno.h>, and the signal numbers and strings are generated from #include <signal.h>. All of these constants are written to zerrors_${GOOS}_${GOARCH}.go via a C program, _errors.c, which prints out all the constants.

To add a constant, add the header that includes it to the appropriate variable. Then, edit the regex (if necessary) to match the desired constant. Avoid making the regex too broad to avoid matching unintended constants.

internal/mkmerge

This program is used to extract duplicate const, func, and type declarations from the generated architecture-specific files listed below, and merge these into a common file for each OS.

The merge is performed in the following steps:

  1. Construct the set of common code that is idential in all architecture-specific files.
  2. Write this common code to the merged file.
  3. Remove the common code from all architecture-specific files.

Generated files

zerrors_${GOOS}_${GOARCH}.go

A file containing all of the system's generated error numbers, error strings, signal numbers, and constants. Generated by mkerrors.sh (see above).

zsyscall_${GOOS}_${GOARCH}.go

A file containing all the generated syscalls for a specific GOOS and GOARCH. Generated by mksyscall.go (see above).

zsysnum_${GOOS}_${GOARCH}.go

A list of numeric constants for all the syscall number of the specific GOOS and GOARCH. Generated by mksysnum (see above).

ztypes_${GOOS}_${GOARCH}.go

A file containing Go types for passing into (or returning from) syscalls. Generated by godefs and the types file (see above).