| @@ -18,8 +18,8 @@ package compression | |||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"bytes" | 	"bytes" | ||||||
| 	"crypto/rand" |  | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
|  | 	"math/rand" | ||||||
| 	"testing" | 	"testing" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -21,8 +21,13 @@ import ( | |||||||
| 	"os" | 	"os" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/cmd/containerd/command" | 	"github.com/containerd/containerd/cmd/containerd/command" | ||||||
|  | 	"github.com/containerd/containerd/pkg/seed" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | func init() { | ||||||
|  | 	seed.WithTimeAndRand() | ||||||
|  | } | ||||||
|  |  | ||||||
| func main() { | func main() { | ||||||
| 	app := command.App() | 	app := command.App() | ||||||
| 	if err := app.Run(os.Args); err != nil { | 	if err := app.Run(os.Args); err != nil { | ||||||
|   | |||||||
| @@ -21,11 +21,16 @@ import ( | |||||||
| 	"os" | 	"os" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/cmd/ctr/app" | 	"github.com/containerd/containerd/cmd/ctr/app" | ||||||
|  | 	"github.com/containerd/containerd/pkg/seed" | ||||||
| 	"github.com/urfave/cli" | 	"github.com/urfave/cli" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| var pluginCmds = []cli.Command{} | var pluginCmds = []cli.Command{} | ||||||
|  |  | ||||||
|  | func init() { | ||||||
|  | 	seed.WithTimeAndRand() | ||||||
|  | } | ||||||
|  |  | ||||||
| func main() { | func main() { | ||||||
| 	app := app.New() | 	app := app.New() | ||||||
| 	app.Commands = append(app.Commands, pluginCmds...) | 	app.Commands = append(app.Commands, pluginCmds...) | ||||||
|   | |||||||
| @@ -20,12 +20,11 @@ import ( | |||||||
| 	"bufio" | 	"bufio" | ||||||
| 	"bytes" | 	"bytes" | ||||||
| 	"context" | 	"context" | ||||||
| 	"crypto/rand" |  | ||||||
| 	_ "crypto/sha256" // required for digest package | 	_ "crypto/sha256" // required for digest package | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io" | 	"io" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	mrand "math/rand" | 	"math/rand" | ||||||
| 	"os" | 	"os" | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
| 	"reflect" | 	"reflect" | ||||||
| @@ -266,9 +265,9 @@ func generateBlobs(t checker, nblobs, maxsize int64) map[digest.Digest][]byte { | |||||||
| 	blobs := map[digest.Digest][]byte{} | 	blobs := map[digest.Digest][]byte{} | ||||||
|  |  | ||||||
| 	for i := int64(0); i < nblobs; i++ { | 	for i := int64(0); i < nblobs; i++ { | ||||||
| 		p := make([]byte, mrand.Int63n(maxsize)) | 		p := make([]byte, rand.Int63n(maxsize)) | ||||||
|  |  | ||||||
| 		if _, err := mrand.Read(p); err != nil { | 		if _, err := rand.Read(p); err != nil { | ||||||
| 			t.Fatal(err) | 			t.Fatal(err) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										38
									
								
								pkg/seed/seed.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								pkg/seed/seed.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | /* | ||||||
|  |    Copyright The containerd Authors. | ||||||
|  |  | ||||||
|  |    Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |    you may not use this file except in compliance with the License. | ||||||
|  |    You may obtain a copy of the License at | ||||||
|  |  | ||||||
|  |        http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
|  |    Unless required by applicable law or agreed to in writing, software | ||||||
|  |    distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |    See the License for the specific language governing permissions and | ||||||
|  |    limitations under the License. | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | package seed | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"math/rand" | ||||||
|  | 	"time" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // WithTimeAndRand seeds the global math rand generator with nanoseconds | ||||||
|  | // XOR'ed with a crypto component if available for uniqueness. | ||||||
|  | func WithTimeAndRand() { | ||||||
|  | 	var ( | ||||||
|  | 		b [4]byte | ||||||
|  | 		u int64 | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	tryReadRandom(b[:]) | ||||||
|  |  | ||||||
|  | 	// Set higher 32 bits, bottom 32 will be set with nanos | ||||||
|  | 	u |= (int64(b[0]) << 56) | (int64(b[1]) << 48) | (int64(b[2]) << 40) | (int64(b[3]) << 32) | ||||||
|  |  | ||||||
|  | 	rand.Seed(u ^ time.Now().UnixNano()) | ||||||
|  | } | ||||||
							
								
								
									
										24
									
								
								pkg/seed/seed_linux.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								pkg/seed/seed_linux.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | /* | ||||||
|  |    Copyright The containerd Authors. | ||||||
|  |  | ||||||
|  |    Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |    you may not use this file except in compliance with the License. | ||||||
|  |    You may obtain a copy of the License at | ||||||
|  |  | ||||||
|  |        http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
|  |    Unless required by applicable law or agreed to in writing, software | ||||||
|  |    distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |    See the License for the specific language governing permissions and | ||||||
|  |    limitations under the License. | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | package seed | ||||||
|  |  | ||||||
|  | import "golang.org/x/sys/unix" | ||||||
|  |  | ||||||
|  | func tryReadRandom(p []byte) { | ||||||
|  | 	// Ignore errors, just decreases uniqueness of seed | ||||||
|  | 	unix.Getrandom(p, unix.GRND_NONBLOCK) | ||||||
|  | } | ||||||
							
								
								
									
										28
									
								
								pkg/seed/seed_other.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								pkg/seed/seed_other.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | // +build !linux | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |    Copyright The containerd Authors. | ||||||
|  |  | ||||||
|  |    Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |    you may not use this file except in compliance with the License. | ||||||
|  |    You may obtain a copy of the License at | ||||||
|  |  | ||||||
|  |        http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
|  |    Unless required by applicable law or agreed to in writing, software | ||||||
|  |    distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |    See the License for the specific language governing permissions and | ||||||
|  |    limitations under the License. | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | package seed | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"crypto/rand" | ||||||
|  | 	"io" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func tryReadRandom(p []byte) { | ||||||
|  | 	io.ReadFull(rand.Reader, p) | ||||||
|  | } | ||||||
| @@ -27,7 +27,7 @@ golang.org/x/net b3756b4b77d7b13260a0a2ec658753cf48922eac | |||||||
| google.golang.org/grpc v1.12.0 | google.golang.org/grpc v1.12.0 | ||||||
| github.com/pkg/errors v0.8.0 | github.com/pkg/errors v0.8.0 | ||||||
| github.com/opencontainers/go-digest c9281466c8b2f606084ac71339773efd177436e7 | github.com/opencontainers/go-digest c9281466c8b2f606084ac71339773efd177436e7 | ||||||
| golang.org/x/sys 314a259e304ff91bd6985da2a7149bbf91237993 https://github.com/golang/sys | golang.org/x/sys 1b2967e3c290b7c545b3db0deeda16e9be4f98a2 https://github.com/golang/sys | ||||||
| github.com/opencontainers/image-spec v1.0.1 | github.com/opencontainers/image-spec v1.0.1 | ||||||
| golang.org/x/sync 450f422ab23cf9881c94e2db30cac0eb1b7cf80c | golang.org/x/sync 450f422ab23cf9881c94e2db30cac0eb1b7cf80c | ||||||
| github.com/BurntSushi/toml a368813c5e648fee92e5f6c30e3944ff9d5e8895 | github.com/BurntSushi/toml a368813c5e648fee92e5f6c30e3944ff9d5e8895 | ||||||
|   | |||||||
							
								
								
									
										38
									
								
								vendor/golang.org/x/sys/cpu/cpu.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								vendor/golang.org/x/sys/cpu/cpu.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // Package cpu implements processor feature detection for | ||||||
|  | // various CPU architectures. | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | // CacheLinePad is used to pad structs to avoid false sharing. | ||||||
|  | type CacheLinePad struct{ _ [cacheLineSize]byte } | ||||||
|  |  | ||||||
|  | // X86 contains the supported CPU features of the | ||||||
|  | // current X86/AMD64 platform. If the current platform | ||||||
|  | // is not X86/AMD64 then all feature flags are false. | ||||||
|  | // | ||||||
|  | // X86 is padded to avoid false sharing. Further the HasAVX | ||||||
|  | // and HasAVX2 are only set if the OS supports XMM and YMM | ||||||
|  | // registers in addition to the CPUID feature bit being set. | ||||||
|  | var X86 struct { | ||||||
|  | 	_            CacheLinePad | ||||||
|  | 	HasAES       bool // AES hardware implementation (AES NI) | ||||||
|  | 	HasADX       bool // Multi-precision add-carry instruction extensions | ||||||
|  | 	HasAVX       bool // Advanced vector extension | ||||||
|  | 	HasAVX2      bool // Advanced vector extension 2 | ||||||
|  | 	HasBMI1      bool // Bit manipulation instruction set 1 | ||||||
|  | 	HasBMI2      bool // Bit manipulation instruction set 2 | ||||||
|  | 	HasERMS      bool // Enhanced REP for MOVSB and STOSB | ||||||
|  | 	HasFMA       bool // Fused-multiply-add instructions | ||||||
|  | 	HasOSXSAVE   bool // OS supports XSAVE/XRESTOR for saving/restoring XMM registers. | ||||||
|  | 	HasPCLMULQDQ bool // PCLMULQDQ instruction - most often used for AES-GCM | ||||||
|  | 	HasPOPCNT    bool // Hamming weight instruction POPCNT. | ||||||
|  | 	HasSSE2      bool // Streaming SIMD extension 2 (always available on amd64) | ||||||
|  | 	HasSSE3      bool // Streaming SIMD extension 3 | ||||||
|  | 	HasSSSE3     bool // Supplemental streaming SIMD extension 3 | ||||||
|  | 	HasSSE41     bool // Streaming SIMD extension 4 and 4.1 | ||||||
|  | 	HasSSE42     bool // Streaming SIMD extension 4 and 4.2 | ||||||
|  | 	_            CacheLinePad | ||||||
|  | } | ||||||
							
								
								
									
										7
									
								
								vendor/golang.org/x/sys/cpu/cpu_arm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								vendor/golang.org/x/sys/cpu/cpu_arm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | const cacheLineSize = 32 | ||||||
							
								
								
									
										7
									
								
								vendor/golang.org/x/sys/cpu/cpu_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								vendor/golang.org/x/sys/cpu/cpu_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | const cacheLineSize = 64 | ||||||
							
								
								
									
										16
									
								
								vendor/golang.org/x/sys/cpu/cpu_gc_x86.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								vendor/golang.org/x/sys/cpu/cpu_gc_x86.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build 386 amd64 amd64p32 | ||||||
|  | // +build !gccgo | ||||||
|  |  | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | // cpuid is implemented in cpu_x86.s for gc compiler | ||||||
|  | // and in cpu_gccgo.c for gccgo. | ||||||
|  | func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) | ||||||
|  |  | ||||||
|  | // xgetbv with ecx = 0 is implemented in cpu_x86.s for gc compiler | ||||||
|  | // and in cpu_gccgo.c for gccgo. | ||||||
|  | func xgetbv() (eax, edx uint32) | ||||||
							
								
								
									
										43
									
								
								vendor/golang.org/x/sys/cpu/cpu_gccgo.c
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								vendor/golang.org/x/sys/cpu/cpu_gccgo.c
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build 386 amd64 amd64p32 | ||||||
|  | // +build gccgo | ||||||
|  |  | ||||||
|  | #include <cpuid.h> | ||||||
|  | #include <stdint.h> | ||||||
|  |  | ||||||
|  | // Need to wrap __get_cpuid_count because it's declared as static. | ||||||
|  | int | ||||||
|  | gccgoGetCpuidCount(uint32_t leaf, uint32_t subleaf, | ||||||
|  |                    uint32_t *eax, uint32_t *ebx, | ||||||
|  |                    uint32_t *ecx, uint32_t *edx) | ||||||
|  | { | ||||||
|  | 	return __get_cpuid_count(leaf, subleaf, eax, ebx, ecx, edx); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // xgetbv reads the contents of an XCR (Extended Control Register) | ||||||
|  | // specified in the ECX register into registers EDX:EAX. | ||||||
|  | // Currently, the only supported value for XCR is 0. | ||||||
|  | // | ||||||
|  | // TODO: Replace with a better alternative: | ||||||
|  | // | ||||||
|  | //     #include <xsaveintrin.h> | ||||||
|  | // | ||||||
|  | //     #pragma GCC target("xsave") | ||||||
|  | // | ||||||
|  | //     void gccgoXgetbv(uint32_t *eax, uint32_t *edx) { | ||||||
|  | //       unsigned long long x = _xgetbv(0); | ||||||
|  | //       *eax = x & 0xffffffff; | ||||||
|  | //       *edx = (x >> 32) & 0xffffffff; | ||||||
|  | //     } | ||||||
|  | // | ||||||
|  | // Note that _xgetbv is defined starting with GCC 8. | ||||||
|  | void | ||||||
|  | gccgoXgetbv(uint32_t *eax, uint32_t *edx) | ||||||
|  | { | ||||||
|  | 	__asm("  xorl %%ecx, %%ecx\n" | ||||||
|  | 	      "  xgetbv" | ||||||
|  | 	    : "=a"(*eax), "=d"(*edx)); | ||||||
|  | } | ||||||
							
								
								
									
										26
									
								
								vendor/golang.org/x/sys/cpu/cpu_gccgo.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								vendor/golang.org/x/sys/cpu/cpu_gccgo.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build 386 amd64 amd64p32 | ||||||
|  | // +build gccgo | ||||||
|  |  | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | //extern gccgoGetCpuidCount | ||||||
|  | func gccgoGetCpuidCount(eaxArg, ecxArg uint32, eax, ebx, ecx, edx *uint32) | ||||||
|  |  | ||||||
|  | func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) { | ||||||
|  | 	var a, b, c, d uint32 | ||||||
|  | 	gccgoGetCpuidCount(eaxArg, ecxArg, &a, &b, &c, &d) | ||||||
|  | 	return a, b, c, d | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //extern gccgoXgetbv | ||||||
|  | func gccgoXgetbv(eax, edx *uint32) | ||||||
|  |  | ||||||
|  | func xgetbv() (eax, edx uint32) { | ||||||
|  | 	var a, d uint32 | ||||||
|  | 	gccgoXgetbv(&a, &d) | ||||||
|  | 	return a, d | ||||||
|  | } | ||||||
							
								
								
									
										9
									
								
								vendor/golang.org/x/sys/cpu/cpu_mips64x.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								vendor/golang.org/x/sys/cpu/cpu_mips64x.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build mips64 mips64le | ||||||
|  |  | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | const cacheLineSize = 32 | ||||||
							
								
								
									
										9
									
								
								vendor/golang.org/x/sys/cpu/cpu_mipsx.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								vendor/golang.org/x/sys/cpu/cpu_mipsx.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build mips mipsle | ||||||
|  |  | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | const cacheLineSize = 32 | ||||||
							
								
								
									
										9
									
								
								vendor/golang.org/x/sys/cpu/cpu_ppc64x.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								vendor/golang.org/x/sys/cpu/cpu_ppc64x.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build ppc64 ppc64le | ||||||
|  |  | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | const cacheLineSize = 128 | ||||||
							
								
								
									
										7
									
								
								vendor/golang.org/x/sys/cpu/cpu_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								vendor/golang.org/x/sys/cpu/cpu_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | const cacheLineSize = 256 | ||||||
							
								
								
									
										55
									
								
								vendor/golang.org/x/sys/cpu/cpu_x86.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								vendor/golang.org/x/sys/cpu/cpu_x86.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build 386 amd64 amd64p32 | ||||||
|  |  | ||||||
|  | package cpu | ||||||
|  |  | ||||||
|  | const cacheLineSize = 64 | ||||||
|  |  | ||||||
|  | func init() { | ||||||
|  | 	maxID, _, _, _ := cpuid(0, 0) | ||||||
|  |  | ||||||
|  | 	if maxID < 1 { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	_, _, ecx1, edx1 := cpuid(1, 0) | ||||||
|  | 	X86.HasSSE2 = isSet(26, edx1) | ||||||
|  |  | ||||||
|  | 	X86.HasSSE3 = isSet(0, ecx1) | ||||||
|  | 	X86.HasPCLMULQDQ = isSet(1, ecx1) | ||||||
|  | 	X86.HasSSSE3 = isSet(9, ecx1) | ||||||
|  | 	X86.HasFMA = isSet(12, ecx1) | ||||||
|  | 	X86.HasSSE41 = isSet(19, ecx1) | ||||||
|  | 	X86.HasSSE42 = isSet(20, ecx1) | ||||||
|  | 	X86.HasPOPCNT = isSet(23, ecx1) | ||||||
|  | 	X86.HasAES = isSet(25, ecx1) | ||||||
|  | 	X86.HasOSXSAVE = isSet(27, ecx1) | ||||||
|  |  | ||||||
|  | 	osSupportsAVX := false | ||||||
|  | 	// For XGETBV, OSXSAVE bit is required and sufficient. | ||||||
|  | 	if X86.HasOSXSAVE { | ||||||
|  | 		eax, _ := xgetbv() | ||||||
|  | 		// Check if XMM and YMM registers have OS support. | ||||||
|  | 		osSupportsAVX = isSet(1, eax) && isSet(2, eax) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	X86.HasAVX = isSet(28, ecx1) && osSupportsAVX | ||||||
|  |  | ||||||
|  | 	if maxID < 7 { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	_, ebx7, _, _ := cpuid(7, 0) | ||||||
|  | 	X86.HasBMI1 = isSet(3, ebx7) | ||||||
|  | 	X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX | ||||||
|  | 	X86.HasBMI2 = isSet(8, ebx7) | ||||||
|  | 	X86.HasERMS = isSet(9, ebx7) | ||||||
|  | 	X86.HasADX = isSet(19, ebx7) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func isSet(bitpos uint, value uint32) bool { | ||||||
|  | 	return value&(1<<bitpos) != 0 | ||||||
|  | } | ||||||
							
								
								
									
										27
									
								
								vendor/golang.org/x/sys/cpu/cpu_x86.s
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								vendor/golang.org/x/sys/cpu/cpu_x86.s
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build 386 amd64 amd64p32 | ||||||
|  | // +build !gccgo | ||||||
|  |  | ||||||
|  | #include "textflag.h" | ||||||
|  |  | ||||||
|  | // func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) | ||||||
|  | TEXT ·cpuid(SB), NOSPLIT, $0-24 | ||||||
|  | 	MOVL eaxArg+0(FP), AX | ||||||
|  | 	MOVL ecxArg+4(FP), CX | ||||||
|  | 	CPUID | ||||||
|  | 	MOVL AX, eax+8(FP) | ||||||
|  | 	MOVL BX, ebx+12(FP) | ||||||
|  | 	MOVL CX, ecx+16(FP) | ||||||
|  | 	MOVL DX, edx+20(FP) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
|  | // func xgetbv() (eax, edx uint32) | ||||||
|  | TEXT ·xgetbv(SB),NOSPLIT,$0-8 | ||||||
|  | 	MOVL $0, CX | ||||||
|  | 	XGETBV | ||||||
|  | 	MOVL AX, eax+0(FP) | ||||||
|  | 	MOVL DX, edx+4(FP) | ||||||
|  | 	RET | ||||||
							
								
								
									
										124
									
								
								vendor/golang.org/x/sys/unix/affinity_linux.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								vendor/golang.org/x/sys/unix/affinity_linux.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,124 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // CPU affinity functions | ||||||
|  |  | ||||||
|  | package unix | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"unsafe" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | const cpuSetSize = _CPU_SETSIZE / _NCPUBITS | ||||||
|  |  | ||||||
|  | // CPUSet represents a CPU affinity mask. | ||||||
|  | type CPUSet [cpuSetSize]cpuMask | ||||||
|  |  | ||||||
|  | func schedAffinity(trap uintptr, pid int, set *CPUSet) error { | ||||||
|  | 	_, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set))) | ||||||
|  | 	if e != 0 { | ||||||
|  | 		return errnoErr(e) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SchedGetaffinity gets the CPU affinity mask of the thread specified by pid. | ||||||
|  | // If pid is 0 the calling thread is used. | ||||||
|  | func SchedGetaffinity(pid int, set *CPUSet) error { | ||||||
|  | 	return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SchedSetaffinity sets the CPU affinity mask of the thread specified by pid. | ||||||
|  | // If pid is 0 the calling thread is used. | ||||||
|  | func SchedSetaffinity(pid int, set *CPUSet) error { | ||||||
|  | 	return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Zero clears the set s, so that it contains no CPUs. | ||||||
|  | func (s *CPUSet) Zero() { | ||||||
|  | 	for i := range s { | ||||||
|  | 		s[i] = 0 | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func cpuBitsIndex(cpu int) int { | ||||||
|  | 	return cpu / _NCPUBITS | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func cpuBitsMask(cpu int) cpuMask { | ||||||
|  | 	return cpuMask(1 << (uint(cpu) % _NCPUBITS)) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Set adds cpu to the set s. | ||||||
|  | func (s *CPUSet) Set(cpu int) { | ||||||
|  | 	i := cpuBitsIndex(cpu) | ||||||
|  | 	if i < len(s) { | ||||||
|  | 		s[i] |= cpuBitsMask(cpu) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Clear removes cpu from the set s. | ||||||
|  | func (s *CPUSet) Clear(cpu int) { | ||||||
|  | 	i := cpuBitsIndex(cpu) | ||||||
|  | 	if i < len(s) { | ||||||
|  | 		s[i] &^= cpuBitsMask(cpu) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // IsSet reports whether cpu is in the set s. | ||||||
|  | func (s *CPUSet) IsSet(cpu int) bool { | ||||||
|  | 	i := cpuBitsIndex(cpu) | ||||||
|  | 	if i < len(s) { | ||||||
|  | 		return s[i]&cpuBitsMask(cpu) != 0 | ||||||
|  | 	} | ||||||
|  | 	return false | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Count returns the number of CPUs in the set s. | ||||||
|  | func (s *CPUSet) Count() int { | ||||||
|  | 	c := 0 | ||||||
|  | 	for _, b := range s { | ||||||
|  | 		c += onesCount64(uint64(b)) | ||||||
|  | 	} | ||||||
|  | 	return c | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // onesCount64 is a copy of Go 1.9's math/bits.OnesCount64. | ||||||
|  | // Once this package can require Go 1.9, we can delete this | ||||||
|  | // and update the caller to use bits.OnesCount64. | ||||||
|  | func onesCount64(x uint64) int { | ||||||
|  | 	const m0 = 0x5555555555555555 // 01010101 ... | ||||||
|  | 	const m1 = 0x3333333333333333 // 00110011 ... | ||||||
|  | 	const m2 = 0x0f0f0f0f0f0f0f0f // 00001111 ... | ||||||
|  | 	const m3 = 0x00ff00ff00ff00ff // etc. | ||||||
|  | 	const m4 = 0x0000ffff0000ffff | ||||||
|  |  | ||||||
|  | 	// Implementation: Parallel summing of adjacent bits. | ||||||
|  | 	// See "Hacker's Delight", Chap. 5: Counting Bits. | ||||||
|  | 	// The following pattern shows the general approach: | ||||||
|  | 	// | ||||||
|  | 	//   x = x>>1&(m0&m) + x&(m0&m) | ||||||
|  | 	//   x = x>>2&(m1&m) + x&(m1&m) | ||||||
|  | 	//   x = x>>4&(m2&m) + x&(m2&m) | ||||||
|  | 	//   x = x>>8&(m3&m) + x&(m3&m) | ||||||
|  | 	//   x = x>>16&(m4&m) + x&(m4&m) | ||||||
|  | 	//   x = x>>32&(m5&m) + x&(m5&m) | ||||||
|  | 	//   return int(x) | ||||||
|  | 	// | ||||||
|  | 	// Masking (& operations) can be left away when there's no | ||||||
|  | 	// danger that a field's sum will carry over into the next | ||||||
|  | 	// field: Since the result cannot be > 64, 8 bits is enough | ||||||
|  | 	// and we can ignore the masks for the shifts by 8 and up. | ||||||
|  | 	// Per "Hacker's Delight", the first line can be simplified | ||||||
|  | 	// more, but it saves at best one instruction, so we leave | ||||||
|  | 	// it alone for clarity. | ||||||
|  | 	const m = 1<<64 - 1 | ||||||
|  | 	x = x>>1&(m0&m) + x&(m0&m) | ||||||
|  | 	x = x>>2&(m1&m) + x&(m1&m) | ||||||
|  | 	x = (x>>4 + x) & (m2 & m) | ||||||
|  | 	x += x >> 8 | ||||||
|  | 	x += x >> 16 | ||||||
|  | 	x += x >> 32 | ||||||
|  | 	return int(x) & (1<<7 - 1) | ||||||
|  | } | ||||||
							
								
								
									
										10
									
								
								vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,17 +13,17 @@ | |||||||
| // Just jump to package syscall's implementation for all these functions. | // Just jump to package syscall's implementation for all these functions. | ||||||
| // The runtime may know about them. | // The runtime may know about them. | ||||||
|  |  | ||||||
| TEXT	·Syscall(SB),NOSPLIT,$0-64 | TEXT	·Syscall(SB),NOSPLIT,$0-56 | ||||||
| 	JMP	syscall·Syscall(SB) | 	JMP	syscall·Syscall(SB) | ||||||
|  |  | ||||||
| TEXT	·Syscall6(SB),NOSPLIT,$0-88 | TEXT	·Syscall6(SB),NOSPLIT,$0-80 | ||||||
| 	JMP	syscall·Syscall6(SB) | 	JMP	syscall·Syscall6(SB) | ||||||
|  |  | ||||||
| TEXT	·Syscall9(SB),NOSPLIT,$0-112 | TEXT	·Syscall9(SB),NOSPLIT,$0-104 | ||||||
| 	JMP	syscall·Syscall9(SB) | 	JMP	syscall·Syscall9(SB) | ||||||
|  |  | ||||||
| TEXT ·RawSyscall(SB),NOSPLIT,$0-64 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | ||||||
| 	JMP	syscall·RawSyscall(SB) | 	JMP	syscall·RawSyscall(SB) | ||||||
|  |  | ||||||
| TEXT	·RawSyscall6(SB),NOSPLIT,$0-88 | TEXT	·RawSyscall6(SB),NOSPLIT,$0-80 | ||||||
| 	JMP	syscall·RawSyscall6(SB) | 	JMP	syscall·RawSyscall6(SB) | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								vendor/golang.org/x/sys/unix/asm_linux_386.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/golang.org/x/sys/unix/asm_linux_386.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -10,21 +10,51 @@ | |||||||
| // System calls for 386, Linux | // System calls for 386, Linux | ||||||
| // | // | ||||||
|  |  | ||||||
|  | // See ../runtime/sys_linux_386.s for the reason why we always use int 0x80 | ||||||
|  | // instead of the glibc-specific "CALL 0x10(GS)". | ||||||
|  | #define INVOKE_SYSCALL	INT	$0x80 | ||||||
|  |  | ||||||
| // Just jump to package syscall's implementation for all these functions. | // Just jump to package syscall's implementation for all these functions. | ||||||
| // The runtime may know about them. | // The runtime may know about them. | ||||||
|  |  | ||||||
| TEXT	·Syscall(SB),NOSPLIT,$0-28 | TEXT ·Syscall(SB),NOSPLIT,$0-28 | ||||||
| 	JMP	syscall·Syscall(SB) | 	JMP	syscall·Syscall(SB) | ||||||
|  |  | ||||||
| TEXT	·Syscall6(SB),NOSPLIT,$0-40 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 | ||||||
| 	JMP	syscall·Syscall6(SB) | 	JMP	syscall·Syscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 | ||||||
|  | 	CALL	runtime·entersyscall(SB) | ||||||
|  | 	MOVL	trap+0(FP), AX  // syscall entry | ||||||
|  | 	MOVL	a1+4(FP), BX | ||||||
|  | 	MOVL	a2+8(FP), CX | ||||||
|  | 	MOVL	a3+12(FP), DX | ||||||
|  | 	MOVL	$0, SI | ||||||
|  | 	MOVL	$0, DI | ||||||
|  | 	INVOKE_SYSCALL | ||||||
|  | 	MOVL	AX, r1+16(FP) | ||||||
|  | 	MOVL	DX, r2+20(FP) | ||||||
|  | 	CALL	runtime·exitsyscall(SB) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
| TEXT ·RawSyscall(SB),NOSPLIT,$0-28 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 | ||||||
| 	JMP	syscall·RawSyscall(SB) | 	JMP	syscall·RawSyscall(SB) | ||||||
|  |  | ||||||
| TEXT	·RawSyscall6(SB),NOSPLIT,$0-40 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 | ||||||
| 	JMP	syscall·RawSyscall6(SB) | 	JMP	syscall·RawSyscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 | ||||||
|  | 	MOVL	trap+0(FP), AX  // syscall entry | ||||||
|  | 	MOVL	a1+4(FP), BX | ||||||
|  | 	MOVL	a2+8(FP), CX | ||||||
|  | 	MOVL	a3+12(FP), DX | ||||||
|  | 	MOVL	$0, SI | ||||||
|  | 	MOVL	$0, DI | ||||||
|  | 	INVOKE_SYSCALL | ||||||
|  | 	MOVL	AX, r1+16(FP) | ||||||
|  | 	MOVL	DX, r2+20(FP) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
| TEXT ·socketcall(SB),NOSPLIT,$0-36 | TEXT ·socketcall(SB),NOSPLIT,$0-36 | ||||||
| 	JMP	syscall·socketcall(SB) | 	JMP	syscall·socketcall(SB) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								vendor/golang.org/x/sys/unix/asm_linux_amd64.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/golang.org/x/sys/unix/asm_linux_amd64.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,17 +13,45 @@ | |||||||
| // Just jump to package syscall's implementation for all these functions. | // Just jump to package syscall's implementation for all these functions. | ||||||
| // The runtime may know about them. | // The runtime may know about them. | ||||||
|  |  | ||||||
| TEXT	·Syscall(SB),NOSPLIT,$0-56 | TEXT ·Syscall(SB),NOSPLIT,$0-56 | ||||||
| 	JMP	syscall·Syscall(SB) | 	JMP	syscall·Syscall(SB) | ||||||
|  |  | ||||||
| TEXT ·Syscall6(SB),NOSPLIT,$0-80 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 | ||||||
| 	JMP	syscall·Syscall6(SB) | 	JMP	syscall·Syscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	CALL	runtime·entersyscall(SB) | ||||||
|  | 	MOVQ	a1+8(FP), DI | ||||||
|  | 	MOVQ	a2+16(FP), SI | ||||||
|  | 	MOVQ	a3+24(FP), DX | ||||||
|  | 	MOVQ	$0, R10 | ||||||
|  | 	MOVQ	$0, R8 | ||||||
|  | 	MOVQ	$0, R9 | ||||||
|  | 	MOVQ	trap+0(FP), AX	// syscall entry | ||||||
|  | 	SYSCALL | ||||||
|  | 	MOVQ	AX, r1+32(FP) | ||||||
|  | 	MOVQ	DX, r2+40(FP) | ||||||
|  | 	CALL	runtime·exitsyscall(SB) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
| TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | ||||||
| 	JMP	syscall·RawSyscall(SB) | 	JMP	syscall·RawSyscall(SB) | ||||||
|  |  | ||||||
| TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | ||||||
| 	JMP	syscall·RawSyscall6(SB) | 	JMP	syscall·RawSyscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	MOVQ	a1+8(FP), DI | ||||||
|  | 	MOVQ	a2+16(FP), SI | ||||||
|  | 	MOVQ	a3+24(FP), DX | ||||||
|  | 	MOVQ	$0, R10 | ||||||
|  | 	MOVQ	$0, R8 | ||||||
|  | 	MOVQ	$0, R9 | ||||||
|  | 	MOVQ	trap+0(FP), AX	// syscall entry | ||||||
|  | 	SYSCALL | ||||||
|  | 	MOVQ	AX, r1+32(FP) | ||||||
|  | 	MOVQ	DX, r2+40(FP) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
| TEXT ·gettimeofday(SB),NOSPLIT,$0-16 | TEXT ·gettimeofday(SB),NOSPLIT,$0-16 | ||||||
| 	JMP	syscall·gettimeofday(SB) | 	JMP	syscall·gettimeofday(SB) | ||||||
|   | |||||||
							
								
								
									
										35
									
								
								vendor/golang.org/x/sys/unix/asm_linux_arm.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								vendor/golang.org/x/sys/unix/asm_linux_arm.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,17 +13,44 @@ | |||||||
| // Just jump to package syscall's implementation for all these functions. | // Just jump to package syscall's implementation for all these functions. | ||||||
| // The runtime may know about them. | // The runtime may know about them. | ||||||
|  |  | ||||||
| TEXT	·Syscall(SB),NOSPLIT,$0-28 | TEXT ·Syscall(SB),NOSPLIT,$0-28 | ||||||
| 	B	syscall·Syscall(SB) | 	B	syscall·Syscall(SB) | ||||||
|  |  | ||||||
| TEXT	·Syscall6(SB),NOSPLIT,$0-40 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 | ||||||
| 	B	syscall·Syscall6(SB) | 	B	syscall·Syscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 | ||||||
|  | 	BL	runtime·entersyscall(SB) | ||||||
|  | 	MOVW	trap+0(FP), R7 | ||||||
|  | 	MOVW	a1+4(FP), R0 | ||||||
|  | 	MOVW	a2+8(FP), R1 | ||||||
|  | 	MOVW	a3+12(FP), R2 | ||||||
|  | 	MOVW	$0, R3 | ||||||
|  | 	MOVW	$0, R4 | ||||||
|  | 	MOVW	$0, R5 | ||||||
|  | 	SWI	$0 | ||||||
|  | 	MOVW	R0, r1+16(FP) | ||||||
|  | 	MOVW	$0, R0 | ||||||
|  | 	MOVW	R0, r2+20(FP) | ||||||
|  | 	BL	runtime·exitsyscall(SB) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
| TEXT ·RawSyscall(SB),NOSPLIT,$0-28 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 | ||||||
| 	B	syscall·RawSyscall(SB) | 	B	syscall·RawSyscall(SB) | ||||||
|  |  | ||||||
| TEXT	·RawSyscall6(SB),NOSPLIT,$0-40 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 | ||||||
| 	B	syscall·RawSyscall6(SB) | 	B	syscall·RawSyscall6(SB) | ||||||
|  |  | ||||||
| TEXT ·seek(SB),NOSPLIT,$0-32 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 | ||||||
|  | 	MOVW	trap+0(FP), R7	// syscall entry | ||||||
|  | 	MOVW	a1+4(FP), R0 | ||||||
|  | 	MOVW	a2+8(FP), R1 | ||||||
|  | 	MOVW	a3+12(FP), R2 | ||||||
|  | 	SWI	$0 | ||||||
|  | 	MOVW	R0, r1+16(FP) | ||||||
|  | 	MOVW	$0, R0 | ||||||
|  | 	MOVW	R0, r2+20(FP) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
|  | TEXT ·seek(SB),NOSPLIT,$0-28 | ||||||
| 	B	syscall·seek(SB) | 	B	syscall·seek(SB) | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								vendor/golang.org/x/sys/unix/asm_linux_arm64.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/golang.org/x/sys/unix/asm_linux_arm64.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,14 +11,42 @@ | |||||||
| // Just jump to package syscall's implementation for all these functions. | // Just jump to package syscall's implementation for all these functions. | ||||||
| // The runtime may know about them. | // The runtime may know about them. | ||||||
|  |  | ||||||
| TEXT	·Syscall(SB),NOSPLIT,$0-56 | TEXT ·Syscall(SB),NOSPLIT,$0-56 | ||||||
| 	B	syscall·Syscall(SB) | 	B	syscall·Syscall(SB) | ||||||
|  |  | ||||||
| TEXT ·Syscall6(SB),NOSPLIT,$0-80 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 | ||||||
| 	B	syscall·Syscall6(SB) | 	B	syscall·Syscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	BL	runtime·entersyscall(SB) | ||||||
|  | 	MOVD	a1+8(FP), R0 | ||||||
|  | 	MOVD	a2+16(FP), R1 | ||||||
|  | 	MOVD	a3+24(FP), R2 | ||||||
|  | 	MOVD	$0, R3 | ||||||
|  | 	MOVD	$0, R4 | ||||||
|  | 	MOVD	$0, R5 | ||||||
|  | 	MOVD	trap+0(FP), R8	// syscall entry | ||||||
|  | 	SVC | ||||||
|  | 	MOVD	R0, r1+32(FP)	// r1 | ||||||
|  | 	MOVD	R1, r2+40(FP)	// r2 | ||||||
|  | 	BL	runtime·exitsyscall(SB) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
| TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | ||||||
| 	B	syscall·RawSyscall(SB) | 	B	syscall·RawSyscall(SB) | ||||||
|  |  | ||||||
| TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | ||||||
| 	B	syscall·RawSyscall6(SB) | 	B	syscall·RawSyscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	MOVD	a1+8(FP), R0 | ||||||
|  | 	MOVD	a2+16(FP), R1 | ||||||
|  | 	MOVD	a3+24(FP), R2 | ||||||
|  | 	MOVD	$0, R3 | ||||||
|  | 	MOVD	$0, R4 | ||||||
|  | 	MOVD	$0, R5 | ||||||
|  | 	MOVD	trap+0(FP), R8	// syscall entry | ||||||
|  | 	SVC | ||||||
|  | 	MOVD	R0, r1+32(FP) | ||||||
|  | 	MOVD	R1, r2+40(FP) | ||||||
|  | 	RET | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -15,14 +15,42 @@ | |||||||
| // Just jump to package syscall's implementation for all these functions. | // Just jump to package syscall's implementation for all these functions. | ||||||
| // The runtime may know about them. | // The runtime may know about them. | ||||||
|  |  | ||||||
| TEXT	·Syscall(SB),NOSPLIT,$0-56 | TEXT ·Syscall(SB),NOSPLIT,$0-56 | ||||||
| 	JMP	syscall·Syscall(SB) | 	JMP	syscall·Syscall(SB) | ||||||
|  |  | ||||||
| TEXT	·Syscall6(SB),NOSPLIT,$0-80 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 | ||||||
| 	JMP	syscall·Syscall6(SB) | 	JMP	syscall·Syscall6(SB) | ||||||
|  |  | ||||||
| TEXT	·RawSyscall(SB),NOSPLIT,$0-56 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	JAL	runtime·entersyscall(SB) | ||||||
|  | 	MOVV	a1+8(FP), R4 | ||||||
|  | 	MOVV	a2+16(FP), R5 | ||||||
|  | 	MOVV	a3+24(FP), R6 | ||||||
|  | 	MOVV	R0, R7 | ||||||
|  | 	MOVV	R0, R8 | ||||||
|  | 	MOVV	R0, R9 | ||||||
|  | 	MOVV	trap+0(FP), R2	// syscall entry | ||||||
|  | 	SYSCALL | ||||||
|  | 	MOVV	R2, r1+32(FP) | ||||||
|  | 	MOVV	R3, r2+40(FP) | ||||||
|  | 	JAL	runtime·exitsyscall(SB) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
|  | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | ||||||
| 	JMP	syscall·RawSyscall(SB) | 	JMP	syscall·RawSyscall(SB) | ||||||
|  |  | ||||||
| TEXT	·RawSyscall6(SB),NOSPLIT,$0-80 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | ||||||
| 	JMP	syscall·RawSyscall6(SB) | 	JMP	syscall·RawSyscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	MOVV	a1+8(FP), R4 | ||||||
|  | 	MOVV	a2+16(FP), R5 | ||||||
|  | 	MOVV	a3+24(FP), R6 | ||||||
|  | 	MOVV	R0, R7 | ||||||
|  | 	MOVV	R0, R8 | ||||||
|  | 	MOVV	R0, R9 | ||||||
|  | 	MOVV	trap+0(FP), R2	// syscall entry | ||||||
|  | 	SYSCALL | ||||||
|  | 	MOVV	R2, r1+32(FP) | ||||||
|  | 	MOVV	R3, r2+40(FP) | ||||||
|  | 	RET | ||||||
|   | |||||||
							
								
								
									
										33
									
								
								vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -15,17 +15,40 @@ | |||||||
| // Just jump to package syscall's implementation for all these functions. | // Just jump to package syscall's implementation for all these functions. | ||||||
| // The runtime may know about them. | // The runtime may know about them. | ||||||
|  |  | ||||||
| TEXT	·Syscall(SB),NOSPLIT,$0-28 | TEXT ·Syscall(SB),NOSPLIT,$0-28 | ||||||
| 	JMP syscall·Syscall(SB) | 	JMP syscall·Syscall(SB) | ||||||
|  |  | ||||||
| TEXT	·Syscall6(SB),NOSPLIT,$0-40 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 | ||||||
| 	JMP syscall·Syscall6(SB) | 	JMP syscall·Syscall6(SB) | ||||||
|  |  | ||||||
| TEXT	·Syscall9(SB),NOSPLIT,$0-52 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 | ||||||
| 	JMP syscall·Syscall9(SB) | 	JMP syscall·Syscall9(SB) | ||||||
|  |  | ||||||
| TEXT	·RawSyscall(SB),NOSPLIT,$0-28 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 | ||||||
|  | 	JAL	runtime·entersyscall(SB) | ||||||
|  | 	MOVW	a1+4(FP), R4 | ||||||
|  | 	MOVW	a2+8(FP), R5 | ||||||
|  | 	MOVW	a3+12(FP), R6 | ||||||
|  | 	MOVW	R0, R7 | ||||||
|  | 	MOVW	trap+0(FP), R2	// syscall entry | ||||||
|  | 	SYSCALL | ||||||
|  | 	MOVW	R2, r1+16(FP)	// r1 | ||||||
|  | 	MOVW	R3, r2+20(FP)	// r2 | ||||||
|  | 	JAL	runtime·exitsyscall(SB) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
|  | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 | ||||||
| 	JMP syscall·RawSyscall(SB) | 	JMP syscall·RawSyscall(SB) | ||||||
|  |  | ||||||
| TEXT	·RawSyscall6(SB),NOSPLIT,$0-40 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 | ||||||
| 	JMP syscall·RawSyscall6(SB) | 	JMP syscall·RawSyscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 | ||||||
|  | 	MOVW	a1+4(FP), R4 | ||||||
|  | 	MOVW	a2+8(FP), R5 | ||||||
|  | 	MOVW	a3+12(FP), R6 | ||||||
|  | 	MOVW	trap+0(FP), R2	// syscall entry | ||||||
|  | 	SYSCALL | ||||||
|  | 	MOVW	R2, r1+16(FP) | ||||||
|  | 	MOVW	R3, r2+20(FP) | ||||||
|  | 	RET | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -15,14 +15,42 @@ | |||||||
| // Just jump to package syscall's implementation for all these functions. | // Just jump to package syscall's implementation for all these functions. | ||||||
| // The runtime may know about them. | // The runtime may know about them. | ||||||
|  |  | ||||||
| TEXT	·Syscall(SB),NOSPLIT,$0-56 | TEXT ·Syscall(SB),NOSPLIT,$0-56 | ||||||
| 	BR	syscall·Syscall(SB) | 	BR	syscall·Syscall(SB) | ||||||
|  |  | ||||||
| TEXT ·Syscall6(SB),NOSPLIT,$0-80 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 | ||||||
| 	BR	syscall·Syscall6(SB) | 	BR	syscall·Syscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	BL	runtime·entersyscall(SB) | ||||||
|  | 	MOVD	a1+8(FP), R3 | ||||||
|  | 	MOVD	a2+16(FP), R4 | ||||||
|  | 	MOVD	a3+24(FP), R5 | ||||||
|  | 	MOVD	R0, R6 | ||||||
|  | 	MOVD	R0, R7 | ||||||
|  | 	MOVD	R0, R8 | ||||||
|  | 	MOVD	trap+0(FP), R9	// syscall entry | ||||||
|  | 	SYSCALL R9 | ||||||
|  | 	MOVD	R3, r1+32(FP) | ||||||
|  | 	MOVD	R4, r2+40(FP) | ||||||
|  | 	BL	runtime·exitsyscall(SB) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
| TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | ||||||
| 	BR	syscall·RawSyscall(SB) | 	BR	syscall·RawSyscall(SB) | ||||||
|  |  | ||||||
| TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | ||||||
| 	BR	syscall·RawSyscall6(SB) | 	BR	syscall·RawSyscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	MOVD	a1+8(FP), R3 | ||||||
|  | 	MOVD	a2+16(FP), R4 | ||||||
|  | 	MOVD	a3+24(FP), R5 | ||||||
|  | 	MOVD	R0, R6 | ||||||
|  | 	MOVD	R0, R7 | ||||||
|  | 	MOVD	R0, R8 | ||||||
|  | 	MOVD	trap+0(FP), R9	// syscall entry | ||||||
|  | 	SYSCALL R9 | ||||||
|  | 	MOVD	R3, r1+32(FP) | ||||||
|  | 	MOVD	R4, r2+40(FP) | ||||||
|  | 	RET | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								vendor/golang.org/x/sys/unix/asm_linux_s390x.s
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/golang.org/x/sys/unix/asm_linux_s390x.s
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -21,8 +21,36 @@ TEXT ·Syscall(SB),NOSPLIT,$0-56 | |||||||
| TEXT ·Syscall6(SB),NOSPLIT,$0-80 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 | ||||||
| 	BR	syscall·Syscall6(SB) | 	BR	syscall·Syscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	BL	runtime·entersyscall(SB) | ||||||
|  | 	MOVD	a1+8(FP), R2 | ||||||
|  | 	MOVD	a2+16(FP), R3 | ||||||
|  | 	MOVD	a3+24(FP), R4 | ||||||
|  | 	MOVD	$0, R5 | ||||||
|  | 	MOVD	$0, R6 | ||||||
|  | 	MOVD	$0, R7 | ||||||
|  | 	MOVD	trap+0(FP), R1	// syscall entry | ||||||
|  | 	SYSCALL | ||||||
|  | 	MOVD	R2, r1+32(FP) | ||||||
|  | 	MOVD	R3, r2+40(FP) | ||||||
|  | 	BL	runtime·exitsyscall(SB) | ||||||
|  | 	RET | ||||||
|  |  | ||||||
| TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | ||||||
| 	BR	syscall·RawSyscall(SB) | 	BR	syscall·RawSyscall(SB) | ||||||
|  |  | ||||||
| TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | ||||||
| 	BR	syscall·RawSyscall6(SB) | 	BR	syscall·RawSyscall6(SB) | ||||||
|  |  | ||||||
|  | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 | ||||||
|  | 	MOVD	a1+8(FP), R2 | ||||||
|  | 	MOVD	a2+16(FP), R3 | ||||||
|  | 	MOVD	a3+24(FP), R4 | ||||||
|  | 	MOVD	$0, R5 | ||||||
|  | 	MOVD	$0, R6 | ||||||
|  | 	MOVD	$0, R7 | ||||||
|  | 	MOVD	trap+0(FP), R1	// syscall entry | ||||||
|  | 	SYSCALL | ||||||
|  | 	MOVD	R2, r1+32(FP) | ||||||
|  | 	MOVD	R3, r2+40(FP) | ||||||
|  | 	RET | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								vendor/golang.org/x/sys/unix/cap_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/golang.org/x/sys/unix/cap_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,7 +7,7 @@ | |||||||
| package unix | package unix | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	errorspkg "errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -60,26 +60,26 @@ func CapRightsSet(rights *CapRights, setrights []uint64) error { | |||||||
|  |  | ||||||
| 	n := caparsize(rights) | 	n := caparsize(rights) | ||||||
| 	if n < capArSizeMin || n > capArSizeMax { | 	if n < capArSizeMin || n > capArSizeMax { | ||||||
| 		return errorspkg.New("bad rights size") | 		return errors.New("bad rights size") | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for _, right := range setrights { | 	for _, right := range setrights { | ||||||
| 		if caprver(right) != CAP_RIGHTS_VERSION_00 { | 		if caprver(right) != CAP_RIGHTS_VERSION_00 { | ||||||
| 			return errorspkg.New("bad right version") | 			return errors.New("bad right version") | ||||||
| 		} | 		} | ||||||
| 		i, err := rightToIndex(right) | 		i, err := rightToIndex(right) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		if i >= n { | 		if i >= n { | ||||||
| 			return errorspkg.New("index overflow") | 			return errors.New("index overflow") | ||||||
| 		} | 		} | ||||||
| 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | ||||||
| 			return errorspkg.New("index mismatch") | 			return errors.New("index mismatch") | ||||||
| 		} | 		} | ||||||
| 		rights.Rights[i] |= right | 		rights.Rights[i] |= right | ||||||
| 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | ||||||
| 			return errorspkg.New("index mismatch (after assign)") | 			return errors.New("index mismatch (after assign)") | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -95,26 +95,26 @@ func CapRightsClear(rights *CapRights, clearrights []uint64) error { | |||||||
|  |  | ||||||
| 	n := caparsize(rights) | 	n := caparsize(rights) | ||||||
| 	if n < capArSizeMin || n > capArSizeMax { | 	if n < capArSizeMin || n > capArSizeMax { | ||||||
| 		return errorspkg.New("bad rights size") | 		return errors.New("bad rights size") | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for _, right := range clearrights { | 	for _, right := range clearrights { | ||||||
| 		if caprver(right) != CAP_RIGHTS_VERSION_00 { | 		if caprver(right) != CAP_RIGHTS_VERSION_00 { | ||||||
| 			return errorspkg.New("bad right version") | 			return errors.New("bad right version") | ||||||
| 		} | 		} | ||||||
| 		i, err := rightToIndex(right) | 		i, err := rightToIndex(right) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		if i >= n { | 		if i >= n { | ||||||
| 			return errorspkg.New("index overflow") | 			return errors.New("index overflow") | ||||||
| 		} | 		} | ||||||
| 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | ||||||
| 			return errorspkg.New("index mismatch") | 			return errors.New("index mismatch") | ||||||
| 		} | 		} | ||||||
| 		rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF) | 		rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF) | ||||||
| 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | ||||||
| 			return errorspkg.New("index mismatch (after assign)") | 			return errors.New("index mismatch (after assign)") | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -130,22 +130,22 @@ func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) { | |||||||
|  |  | ||||||
| 	n := caparsize(rights) | 	n := caparsize(rights) | ||||||
| 	if n < capArSizeMin || n > capArSizeMax { | 	if n < capArSizeMin || n > capArSizeMax { | ||||||
| 		return false, errorspkg.New("bad rights size") | 		return false, errors.New("bad rights size") | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for _, right := range setrights { | 	for _, right := range setrights { | ||||||
| 		if caprver(right) != CAP_RIGHTS_VERSION_00 { | 		if caprver(right) != CAP_RIGHTS_VERSION_00 { | ||||||
| 			return false, errorspkg.New("bad right version") | 			return false, errors.New("bad right version") | ||||||
| 		} | 		} | ||||||
| 		i, err := rightToIndex(right) | 		i, err := rightToIndex(right) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return false, err | 			return false, err | ||||||
| 		} | 		} | ||||||
| 		if i >= n { | 		if i >= n { | ||||||
| 			return false, errorspkg.New("index overflow") | 			return false, errors.New("index overflow") | ||||||
| 		} | 		} | ||||||
| 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | 		if capidxbit(rights.Rights[i]) != capidxbit(right) { | ||||||
| 			return false, errorspkg.New("index mismatch") | 			return false, errors.New("index mismatch") | ||||||
| 		} | 		} | ||||||
| 		if (rights.Rights[i] & right) != right { | 		if (rights.Rights[i] & right) != right { | ||||||
| 			return false, nil | 			return false, nil | ||||||
|   | |||||||
							
								
								
									
										89
									
								
								vendor/golang.org/x/sys/unix/dirent.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										89
									
								
								vendor/golang.org/x/sys/unix/dirent.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,97 +6,12 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| import "unsafe" | import "syscall" | ||||||
|  |  | ||||||
| // readInt returns the size-bytes unsigned integer in native byte order at offset off. |  | ||||||
| func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { |  | ||||||
| 	if len(b) < int(off+size) { |  | ||||||
| 		return 0, false |  | ||||||
| 	} |  | ||||||
| 	if isBigEndian { |  | ||||||
| 		return readIntBE(b[off:], size), true |  | ||||||
| 	} |  | ||||||
| 	return readIntLE(b[off:], size), true |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func readIntBE(b []byte, size uintptr) uint64 { |  | ||||||
| 	switch size { |  | ||||||
| 	case 1: |  | ||||||
| 		return uint64(b[0]) |  | ||||||
| 	case 2: |  | ||||||
| 		_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 |  | ||||||
| 		return uint64(b[1]) | uint64(b[0])<<8 |  | ||||||
| 	case 4: |  | ||||||
| 		_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 |  | ||||||
| 		return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 |  | ||||||
| 	case 8: |  | ||||||
| 		_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 |  | ||||||
| 		return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | |  | ||||||
| 			uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 |  | ||||||
| 	default: |  | ||||||
| 		panic("syscall: readInt with unsupported size") |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func readIntLE(b []byte, size uintptr) uint64 { |  | ||||||
| 	switch size { |  | ||||||
| 	case 1: |  | ||||||
| 		return uint64(b[0]) |  | ||||||
| 	case 2: |  | ||||||
| 		_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 |  | ||||||
| 		return uint64(b[0]) | uint64(b[1])<<8 |  | ||||||
| 	case 4: |  | ||||||
| 		_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 |  | ||||||
| 		return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |  | ||||||
| 	case 8: |  | ||||||
| 		_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 |  | ||||||
| 		return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | |  | ||||||
| 			uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 |  | ||||||
| 	default: |  | ||||||
| 		panic("syscall: readInt with unsupported size") |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // ParseDirent parses up to max directory entries in buf, | // ParseDirent parses up to max directory entries in buf, | ||||||
| // appending the names to names. It returns the number of | // appending the names to names. It returns the number of | ||||||
| // bytes consumed from buf, the number of entries added | // bytes consumed from buf, the number of entries added | ||||||
| // to names, and the new names slice. | // to names, and the new names slice. | ||||||
| func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { | func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { | ||||||
| 	origlen := len(buf) | 	return syscall.ParseDirent(buf, max, names) | ||||||
| 	count = 0 |  | ||||||
| 	for max != 0 && len(buf) > 0 { |  | ||||||
| 		reclen, ok := direntReclen(buf) |  | ||||||
| 		if !ok || reclen > uint64(len(buf)) { |  | ||||||
| 			return origlen, count, names |  | ||||||
| 		} |  | ||||||
| 		rec := buf[:reclen] |  | ||||||
| 		buf = buf[reclen:] |  | ||||||
| 		ino, ok := direntIno(rec) |  | ||||||
| 		if !ok { |  | ||||||
| 			break |  | ||||||
| 		} |  | ||||||
| 		if ino == 0 { // File absent in directory. |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		const namoff = uint64(unsafe.Offsetof(Dirent{}.Name)) |  | ||||||
| 		namlen, ok := direntNamlen(rec) |  | ||||||
| 		if !ok || namoff+namlen > uint64(len(rec)) { |  | ||||||
| 			break |  | ||||||
| 		} |  | ||||||
| 		name := rec[namoff : namoff+namlen] |  | ||||||
| 		for i, c := range name { |  | ||||||
| 			if c == 0 { |  | ||||||
| 				name = name[:i] |  | ||||||
| 				break |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 		// Check for useless names before allocating a string. |  | ||||||
| 		if string(name) == "." || string(name) == ".." { |  | ||||||
| 			continue |  | ||||||
| 		} |  | ||||||
| 		max-- |  | ||||||
| 		count++ |  | ||||||
| 		names = append(names, string(name)) |  | ||||||
| 	} |  | ||||||
| 	return origlen - len(buf), count, names |  | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								vendor/golang.org/x/sys/unix/env_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/golang.org/x/sys/unix/env_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| // Copyright 2010 The Go Authors.  All rights reserved. | // Copyright 2010 The Go Authors. All rights reserved. | ||||||
| // Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | ||||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
| @@ -25,3 +25,7 @@ func Clearenv() { | |||||||
| func Environ() []string { | func Environ() []string { | ||||||
| 	return syscall.Environ() | 	return syscall.Environ() | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func Unsetenv(key string) error { | ||||||
|  | 	return syscall.Unsetenv(key) | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								vendor/golang.org/x/sys/unix/env_unset.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/golang.org/x/sys/unix/env_unset.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,14 +0,0 @@ | |||||||
| // Copyright 2014 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 file. |  | ||||||
|  |  | ||||||
| // +build go1.4 |  | ||||||
|  |  | ||||||
| package unix |  | ||||||
|  |  | ||||||
| import "syscall" |  | ||||||
|  |  | ||||||
| func Unsetenv(key string) error { |  | ||||||
| 	// This was added in Go 1.4. |  | ||||||
| 	return syscall.Unsetenv(key) |  | ||||||
| } |  | ||||||
							
								
								
									
										10
									
								
								vendor/golang.org/x/sys/unix/flock.go → vendor/golang.org/x/sys/unix/fcntl.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/golang.org/x/sys/unix/flock.go → vendor/golang.org/x/sys/unix/fcntl.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -12,6 +12,16 @@ import "unsafe" | |||||||
| // systems by flock_linux_32bit.go to be SYS_FCNTL64. | // systems by flock_linux_32bit.go to be SYS_FCNTL64. | ||||||
| var fcntl64Syscall uintptr = SYS_FCNTL | var fcntl64Syscall uintptr = SYS_FCNTL | ||||||
| 
 | 
 | ||||||
|  | // FcntlInt performs a fcntl syscall on fd with the provided command and argument. | ||||||
|  | func FcntlInt(fd uintptr, cmd, arg int) (int, error) { | ||||||
|  | 	valptr, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(arg)) | ||||||
|  | 	var err error | ||||||
|  | 	if errno != 0 { | ||||||
|  | 		err = errno | ||||||
|  | 	} | ||||||
|  | 	return int(valptr), err | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. | ||||||
| func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { | ||||||
| 	_, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) | 	_, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) | ||||||
							
								
								
									
										27
									
								
								vendor/golang.org/x/sys/unix/file_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/golang.org/x/sys/unix/file_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,27 +0,0 @@ | |||||||
| // Copyright 2017 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 file. |  | ||||||
|  |  | ||||||
| package unix |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"os" |  | ||||||
| 	"syscall" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| // FIXME: unexported function from os |  | ||||||
| // syscallMode returns the syscall-specific mode bits from Go's portable mode bits. |  | ||||||
| func syscallMode(i os.FileMode) (o uint32) { |  | ||||||
| 	o |= uint32(i.Perm()) |  | ||||||
| 	if i&os.ModeSetuid != 0 { |  | ||||||
| 		o |= syscall.S_ISUID |  | ||||||
| 	} |  | ||||||
| 	if i&os.ModeSetgid != 0 { |  | ||||||
| 		o |= syscall.S_ISGID |  | ||||||
| 	} |  | ||||||
| 	if i&os.ModeSticky != 0 { |  | ||||||
| 		o |= syscall.S_ISVTX |  | ||||||
| 	} |  | ||||||
| 	// No mapping for Go's ModeTemporary (plan9 only). |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
							
								
								
									
										19
									
								
								vendor/golang.org/x/sys/unix/gccgo.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/golang.org/x/sys/unix/gccgo.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| // Copyright 2015 The Go Authors.  All rights reserved. | // Copyright 2015 The Go Authors. All rights reserved. | ||||||
| // Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | ||||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
| @@ -8,12 +8,22 @@ package unix | |||||||
|  |  | ||||||
| import "syscall" | import "syscall" | ||||||
|  |  | ||||||
| // We can't use the gc-syntax .s files for gccgo.  On the plus side | // We can't use the gc-syntax .s files for gccgo. On the plus side | ||||||
| // much of the functionality can be written directly in Go. | // much of the functionality can be written directly in Go. | ||||||
|  |  | ||||||
|  | //extern gccgoRealSyscallNoError | ||||||
|  | func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr) | ||||||
|  |  | ||||||
| //extern gccgoRealSyscall | //extern gccgoRealSyscall | ||||||
| func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) | func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) | ||||||
|  |  | ||||||
|  | func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { | ||||||
|  | 	syscall.Entersyscall() | ||||||
|  | 	r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) | ||||||
|  | 	syscall.Exitsyscall() | ||||||
|  | 	return r, 0 | ||||||
|  | } | ||||||
|  |  | ||||||
| func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { | ||||||
| 	syscall.Entersyscall() | 	syscall.Entersyscall() | ||||||
| 	r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) | 	r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) | ||||||
| @@ -35,6 +45,11 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, | |||||||
| 	return r, 0, syscall.Errno(errno) | 	return r, 0, syscall.Errno(errno) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { | ||||||
|  | 	r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) | ||||||
|  | 	return r, 0 | ||||||
|  | } | ||||||
|  |  | ||||||
| func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { | ||||||
| 	r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) | 	r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) | ||||||
| 	return r, 0, syscall.Errno(errno) | 	return r, 0, syscall.Errno(errno) | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								vendor/golang.org/x/sys/unix/gccgo_c.c
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/golang.org/x/sys/unix/gccgo_c.c
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| // Copyright 2015 The Go Authors.  All rights reserved. | // Copyright 2015 The Go Authors. All rights reserved. | ||||||
| // Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | ||||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
| @@ -31,11 +31,8 @@ gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintp | |||||||
| 	return r; | 	return r; | ||||||
| } | } | ||||||
|  |  | ||||||
| // Define the use function in C so that it is not inlined. | uintptr_t | ||||||
|  | gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) | ||||||
| extern void use(void *) __asm__ (GOSYM_PREFIX GOPKGPATH ".use") __attribute__((noinline)); |  | ||||||
|  |  | ||||||
| void |  | ||||||
| use(void *p __attribute__ ((unused))) |  | ||||||
| { | { | ||||||
|  | 	return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| // Copyright 2015 The Go Authors.  All rights reserved. | // Copyright 2015 The Go Authors. All rights reserved. | ||||||
| // Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | ||||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/golang.org/x/sys/unix/openbsd_pledge.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/golang.org/x/sys/unix/openbsd_pledge.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,7 +13,7 @@ import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| 	SYS_PLEDGE = 108 | 	_SYS_PLEDGE = 108 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Pledge implements the pledge syscall. For more information see pledge(2). | // Pledge implements the pledge syscall. For more information see pledge(2). | ||||||
| @@ -30,7 +30,7 @@ func Pledge(promises string, paths []string) error { | |||||||
| 		} | 		} | ||||||
| 		pathsUnsafe = unsafe.Pointer(&pathsPtr[0]) | 		pathsUnsafe = unsafe.Pointer(&pathsPtr[0]) | ||||||
| 	} | 	} | ||||||
| 	_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(promisesUnsafe), uintptr(pathsUnsafe), 0) | 	_, _, e := syscall.Syscall(_SYS_PLEDGE, uintptr(promisesUnsafe), uintptr(pathsUnsafe), 0) | ||||||
| 	if e != 0 { | 	if e != 0 { | ||||||
| 		return e | 		return e | ||||||
| 	} | 	} | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/pagesize_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/pagesize_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| // Copyright 2017 The Go Authors.  All rights reserved. | // Copyright 2017 The Go Authors. All rights reserved. | ||||||
| // Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | ||||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/race.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/race.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| // Copyright 2012 The Go Authors.  All rights reserved. | // Copyright 2012 The Go Authors. All rights reserved. | ||||||
| // Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | ||||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/race0.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/race0.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| // Copyright 2012 The Go Authors.  All rights reserved. | // Copyright 2012 The Go Authors. All rights reserved. | ||||||
| // Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | ||||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/unix/sockcmsg_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/unix/sockcmsg_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| // Copyright 2011 The Go Authors.  All rights reserved. | // Copyright 2011 The Go Authors. All rights reserved. | ||||||
| // Use of this source code is governed by a BSD-style | // Use of this source code is governed by a BSD-style | ||||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										35
									
								
								vendor/golang.org/x/sys/unix/syscall.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								vendor/golang.org/x/sys/unix/syscall.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -5,30 +5,33 @@ | |||||||
| // +build darwin dragonfly freebsd linux netbsd openbsd solaris | // +build darwin dragonfly freebsd linux netbsd openbsd solaris | ||||||
|  |  | ||||||
| // Package unix contains an interface to the low-level operating system | // Package unix contains an interface to the low-level operating system | ||||||
| // primitives.  OS details vary depending on the underlying system, and | // primitives. OS details vary depending on the underlying system, and | ||||||
| // by default, godoc will display OS-specific documentation for the current | // by default, godoc will display OS-specific documentation for the current | ||||||
| // system.  If you want godoc to display OS documentation for another | // system. If you want godoc to display OS documentation for another | ||||||
| // system, set $GOOS and $GOARCH to the desired system.  For example, if | // system, set $GOOS and $GOARCH to the desired system. For example, if | ||||||
| // you want to view documentation for freebsd/arm on linux/amd64, set $GOOS | // you want to view documentation for freebsd/arm on linux/amd64, set $GOOS | ||||||
| // to freebsd and $GOARCH to arm. | // to freebsd and $GOARCH to arm. | ||||||
|  | // | ||||||
| // The primary use of this package is inside other packages that provide a more | // The primary use of this package is inside other packages that provide a more | ||||||
| // portable interface to the system, such as "os", "time" and "net".  Use | // portable interface to the system, such as "os", "time" and "net".  Use | ||||||
| // those packages rather than this one if you can. | // those packages rather than this one if you can. | ||||||
|  | // | ||||||
| // For details of the functions and data types in this package consult | // For details of the functions and data types in this package consult | ||||||
| // the manuals for the appropriate operating system. | // the manuals for the appropriate operating system. | ||||||
|  | // | ||||||
| // These calls return err == nil to indicate success; otherwise | // These calls return err == nil to indicate success; otherwise | ||||||
| // err represents an operating system error describing the failure and | // err represents an operating system error describing the failure and | ||||||
| // holds a value of type syscall.Errno. | // holds a value of type syscall.Errno. | ||||||
| package unix // import "golang.org/x/sys/unix" | package unix // import "golang.org/x/sys/unix" | ||||||
|  |  | ||||||
|  | import "strings" | ||||||
|  |  | ||||||
| // ByteSliceFromString returns a NUL-terminated slice of bytes | // ByteSliceFromString returns a NUL-terminated slice of bytes | ||||||
| // containing the text of s. If s contains a NUL byte at any | // containing the text of s. If s contains a NUL byte at any | ||||||
| // location, it returns (nil, EINVAL). | // location, it returns (nil, EINVAL). | ||||||
| func ByteSliceFromString(s string) ([]byte, error) { | func ByteSliceFromString(s string) ([]byte, error) { | ||||||
| 	for i := 0; i < len(s); i++ { | 	if strings.IndexByte(s, 0) != -1 { | ||||||
| 		if s[i] == 0 { | 		return nil, EINVAL | ||||||
| 			return nil, EINVAL |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 	a := make([]byte, len(s)+1) | 	a := make([]byte, len(s)+1) | ||||||
| 	copy(a, s) | 	copy(a, s) | ||||||
| @@ -49,21 +52,3 @@ func BytePtrFromString(s string) (*byte, error) { | |||||||
| // Single-word zero for use when we need a valid pointer to 0 bytes. | // Single-word zero for use when we need a valid pointer to 0 bytes. | ||||||
| // See mkunix.pl. | // See mkunix.pl. | ||||||
| var _zero uintptr | var _zero uintptr | ||||||
|  |  | ||||||
| func (ts *Timespec) Unix() (sec int64, nsec int64) { |  | ||||||
| 	return int64(ts.Sec), int64(ts.Nsec) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (tv *Timeval) Unix() (sec int64, nsec int64) { |  | ||||||
| 	return int64(tv.Sec), int64(tv.Usec) * 1000 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (ts *Timespec) Nano() int64 { |  | ||||||
| 	return int64(ts.Sec)*1e9 + int64(ts.Nsec) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (tv *Timeval) Nano() int64 { |  | ||||||
| 	return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } |  | ||||||
|   | |||||||
							
								
								
									
										79
									
								
								vendor/golang.org/x/sys/unix/syscall_bsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										79
									
								
								vendor/golang.org/x/sys/unix/syscall_bsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -34,7 +34,7 @@ func Getgroups() (gids []int, err error) { | |||||||
| 		return nil, nil | 		return nil, nil | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Sanity check group count.  Max is 16 on BSD. | 	// Sanity check group count. Max is 16 on BSD. | ||||||
| 	if n < 0 || n > 1000 { | 	if n < 0 || n > 1000 { | ||||||
| 		return nil, EINVAL | 		return nil, EINVAL | ||||||
| 	} | 	} | ||||||
| @@ -206,7 +206,7 @@ func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||||||
| 	return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil | 	return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { | func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { | ||||||
| 	switch rsa.Addr.Family { | 	switch rsa.Addr.Family { | ||||||
| 	case AF_LINK: | 	case AF_LINK: | ||||||
| 		pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) | 		pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) | ||||||
| @@ -286,7 +286,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { | |||||||
| 		Close(nfd) | 		Close(nfd) | ||||||
| 		return 0, nil, ECONNABORTED | 		return 0, nil, ECONNABORTED | ||||||
| 	} | 	} | ||||||
| 	sa, err = anyToSockaddr(&rsa) | 	sa, err = anyToSockaddr(fd, &rsa) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		Close(nfd) | 		Close(nfd) | ||||||
| 		nfd = 0 | 		nfd = 0 | ||||||
| @@ -306,50 +306,21 @@ func Getsockname(fd int) (sa Sockaddr, err error) { | |||||||
| 		rsa.Addr.Family = AF_UNIX | 		rsa.Addr.Family = AF_UNIX | ||||||
| 		rsa.Addr.Len = SizeofSockaddrUnix | 		rsa.Addr.Len = SizeofSockaddrUnix | ||||||
| 	} | 	} | ||||||
| 	return anyToSockaddr(&rsa) | 	return anyToSockaddr(fd, &rsa) | ||||||
| } | } | ||||||
|  |  | ||||||
| //sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) | //sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) | ||||||
|  |  | ||||||
| func GetsockoptByte(fd, level, opt int) (value byte, err error) { | // GetsockoptString returns the string value of the socket option opt for the | ||||||
| 	var n byte | // socket associated with fd at the given socket level. | ||||||
| 	vallen := _Socklen(1) | func GetsockoptString(fd, level, opt int) (string, error) { | ||||||
| 	err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) | 	buf := make([]byte, 256) | ||||||
| 	return n, err | 	vallen := _Socklen(len(buf)) | ||||||
| } | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) | ||||||
|  | 	if err != nil { | ||||||
| func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { | 		return "", err | ||||||
| 	vallen := _Socklen(4) | 	} | ||||||
| 	err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) | 	return string(buf[:vallen-1]), nil | ||||||
| 	return value, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { |  | ||||||
| 	var value IPMreq |  | ||||||
| 	vallen := _Socklen(SizeofIPMreq) |  | ||||||
| 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) |  | ||||||
| 	return &value, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { |  | ||||||
| 	var value IPv6Mreq |  | ||||||
| 	vallen := _Socklen(SizeofIPv6Mreq) |  | ||||||
| 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) |  | ||||||
| 	return &value, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { |  | ||||||
| 	var value IPv6MTUInfo |  | ||||||
| 	vallen := _Socklen(SizeofIPv6MTUInfo) |  | ||||||
| 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) |  | ||||||
| 	return &value, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { |  | ||||||
| 	var value ICMPv6Filter |  | ||||||
| 	vallen := _Socklen(SizeofICMPv6Filter) |  | ||||||
| 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) |  | ||||||
| 	return &value, err |  | ||||||
| } | } | ||||||
|  |  | ||||||
| //sys   recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) | //sys   recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) | ||||||
| @@ -385,7 +356,7 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from | |||||||
| 	recvflags = int(msg.Flags) | 	recvflags = int(msg.Flags) | ||||||
| 	// source address is only specified if the socket is unconnected | 	// source address is only specified if the socket is unconnected | ||||||
| 	if rsa.Addr.Family != AF_UNSPEC { | 	if rsa.Addr.Family != AF_UNSPEC { | ||||||
| 		from, err = anyToSockaddr(&rsa) | 		from, err = anyToSockaddr(fd, &rsa) | ||||||
| 	} | 	} | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
| @@ -570,7 +541,12 @@ func UtimesNano(path string, ts []Timespec) error { | |||||||
| 	if len(ts) != 2 { | 	if len(ts) != 2 { | ||||||
| 		return EINVAL | 		return EINVAL | ||||||
| 	} | 	} | ||||||
| 	err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) | 	// Darwin setattrlist can set nanosecond timestamps | ||||||
|  | 	err := setattrlistTimes(path, ts, 0) | ||||||
|  | 	if err != ENOSYS { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	err = utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) | ||||||
| 	if err != ENOSYS { | 	if err != ENOSYS { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| @@ -590,6 +566,10 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { | |||||||
| 	if len(ts) != 2 { | 	if len(ts) != 2 { | ||||||
| 		return EINVAL | 		return EINVAL | ||||||
| 	} | 	} | ||||||
|  | 	err := setattrlistTimes(path, ts, flags) | ||||||
|  | 	if err != ENOSYS { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
| 	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) | 	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -607,6 +587,15 @@ func Futimes(fd int, tv []Timeval) error { | |||||||
|  |  | ||||||
| //sys	fcntl(fd int, cmd int, arg int) (val int, err error) | //sys	fcntl(fd int, cmd int, arg int) (val int, err error) | ||||||
|  |  | ||||||
|  | //sys   poll(fds *PollFd, nfds int, timeout int) (n int, err error) | ||||||
|  |  | ||||||
|  | func Poll(fds []PollFd, timeout int) (n int, err error) { | ||||||
|  | 	if len(fds) == 0 { | ||||||
|  | 		return poll(nil, 0, timeout) | ||||||
|  | 	} | ||||||
|  | 	return poll(&fds[0], len(fds), timeout) | ||||||
|  | } | ||||||
|  |  | ||||||
| // TODO: wrap | // TODO: wrap | ||||||
| //	Acct(name nil-string) (err error) | //	Acct(name nil-string) (err error) | ||||||
| //	Gethostuuid(uuid *byte, timeout *Timespec) (err error) | //	Gethostuuid(uuid *byte, timeout *Timespec) (err error) | ||||||
|   | |||||||
							
								
								
									
										188
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										188
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,7 +13,7 @@ | |||||||
| package unix | package unix | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	errorspkg "errors" | 	"errors" | ||||||
| 	"syscall" | 	"syscall" | ||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
| @@ -36,6 +36,7 @@ func Getwd() (string, error) { | |||||||
| 	return "", ENOTSUP | 	return "", ENOTSUP | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. | ||||||
| type SockaddrDatalink struct { | type SockaddrDatalink struct { | ||||||
| 	Len    uint8 | 	Len    uint8 | ||||||
| 	Family uint8 | 	Family uint8 | ||||||
| @@ -54,7 +55,7 @@ func nametomib(name string) (mib []_C_int, err error) { | |||||||
|  |  | ||||||
| 	// NOTE(rsc): It seems strange to set the buffer to have | 	// NOTE(rsc): It seems strange to set the buffer to have | ||||||
| 	// size CTL_MAXNAME+2 but use only CTL_MAXNAME | 	// size CTL_MAXNAME+2 but use only CTL_MAXNAME | ||||||
| 	// as the size.  I don't know why the +2 is here, but the | 	// as the size. I don't know why the +2 is here, but the | ||||||
| 	// kernel uses +2 for its own implementation of this function. | 	// kernel uses +2 for its own implementation of this function. | ||||||
| 	// I am scared that if we don't include the +2 here, the kernel | 	// I am scared that if we don't include the +2 here, the kernel | ||||||
| 	// will silently write 2 words farther than we specify | 	// will silently write 2 words farther than we specify | ||||||
| @@ -76,18 +77,6 @@ func nametomib(name string) (mib []_C_int, err error) { | |||||||
| 	return buf[0 : n/siz], nil | 	return buf[0 : n/siz], nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func direntIno(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntReclen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntNamlen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| //sys   ptrace(request int, pid int, addr uintptr, data uintptr) (err error) | //sys   ptrace(request int, pid int, addr uintptr, data uintptr) (err error) | ||||||
| func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } | func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } | ||||||
| func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } | func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } | ||||||
| @@ -109,7 +98,7 @@ type attrList struct { | |||||||
|  |  | ||||||
| func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) { | func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) { | ||||||
| 	if len(attrBuf) < 4 { | 	if len(attrBuf) < 4 { | ||||||
| 		return nil, errorspkg.New("attrBuf too small") | 		return nil, errors.New("attrBuf too small") | ||||||
| 	} | 	} | ||||||
| 	attrList.bitmapCount = attrBitMapCount | 	attrList.bitmapCount = attrBitMapCount | ||||||
|  |  | ||||||
| @@ -145,12 +134,12 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) ( | |||||||
| 	for i := uint32(0); int(i) < len(dat); { | 	for i := uint32(0); int(i) < len(dat); { | ||||||
| 		header := dat[i:] | 		header := dat[i:] | ||||||
| 		if len(header) < 8 { | 		if len(header) < 8 { | ||||||
| 			return attrs, errorspkg.New("truncated attribute header") | 			return attrs, errors.New("truncated attribute header") | ||||||
| 		} | 		} | ||||||
| 		datOff := *(*int32)(unsafe.Pointer(&header[0])) | 		datOff := *(*int32)(unsafe.Pointer(&header[0])) | ||||||
| 		attrLen := *(*uint32)(unsafe.Pointer(&header[4])) | 		attrLen := *(*uint32)(unsafe.Pointer(&header[4])) | ||||||
| 		if datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) { | 		if datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) { | ||||||
| 			return attrs, errorspkg.New("truncated results; attrBuf too small") | 			return attrs, errors.New("truncated results; attrBuf too small") | ||||||
| 		} | 		} | ||||||
| 		end := uint32(datOff) + attrLen | 		end := uint32(datOff) + attrLen | ||||||
| 		attrs = append(attrs, dat[datOff:end]) | 		attrs = append(attrs, dat[datOff:end]) | ||||||
| @@ -187,6 +176,119 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func xattrPointer(dest []byte) *byte { | ||||||
|  | 	// It's only when dest is set to NULL that the OS X implementations of | ||||||
|  | 	// getxattr() and listxattr() return the current sizes of the named attributes. | ||||||
|  | 	// An empty byte array is not sufficient. To maintain the same behaviour as the | ||||||
|  | 	// linux implementation, we wrap around the system calls and pass in NULL when | ||||||
|  | 	// dest is empty. | ||||||
|  | 	var destp *byte | ||||||
|  | 	if len(dest) > 0 { | ||||||
|  | 		destp = &dest[0] | ||||||
|  | 	} | ||||||
|  | 	return destp | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //sys	getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) | ||||||
|  |  | ||||||
|  | func Getxattr(path string, attr string, dest []byte) (sz int, err error) { | ||||||
|  | 	return getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { | ||||||
|  | 	return getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //sys  setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) | ||||||
|  |  | ||||||
|  | func Setxattr(path string, attr string, data []byte, flags int) (err error) { | ||||||
|  | 	// The parameters for the OS X implementation vary slightly compared to the | ||||||
|  | 	// linux system call, specifically the position parameter: | ||||||
|  | 	// | ||||||
|  | 	//  linux: | ||||||
|  | 	//      int setxattr( | ||||||
|  | 	//          const char *path, | ||||||
|  | 	//          const char *name, | ||||||
|  | 	//          const void *value, | ||||||
|  | 	//          size_t size, | ||||||
|  | 	//          int flags | ||||||
|  | 	//      ); | ||||||
|  | 	// | ||||||
|  | 	//  darwin: | ||||||
|  | 	//      int setxattr( | ||||||
|  | 	//          const char *path, | ||||||
|  | 	//          const char *name, | ||||||
|  | 	//          void *value, | ||||||
|  | 	//          size_t size, | ||||||
|  | 	//          u_int32_t position, | ||||||
|  | 	//          int options | ||||||
|  | 	//      ); | ||||||
|  | 	// | ||||||
|  | 	// position specifies the offset within the extended attribute. In the | ||||||
|  | 	// current implementation, only the resource fork extended attribute makes | ||||||
|  | 	// use of this argument. For all others, position is reserved. We simply | ||||||
|  | 	// default to setting it to zero. | ||||||
|  | 	return setxattr(path, attr, xattrPointer(data), len(data), 0, flags) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { | ||||||
|  | 	return setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //sys removexattr(path string, attr string, options int) (err error) | ||||||
|  |  | ||||||
|  | func Removexattr(path string, attr string) (err error) { | ||||||
|  | 	// We wrap around and explicitly zero out the options provided to the OS X | ||||||
|  | 	// implementation of removexattr, we do so for interoperability with the | ||||||
|  | 	// linux variant. | ||||||
|  | 	return removexattr(path, attr, 0) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Lremovexattr(link string, attr string) (err error) { | ||||||
|  | 	return removexattr(link, attr, XATTR_NOFOLLOW) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //sys	listxattr(path string, dest *byte, size int, options int) (sz int, err error) | ||||||
|  |  | ||||||
|  | func Listxattr(path string, dest []byte) (sz int, err error) { | ||||||
|  | 	return listxattr(path, xattrPointer(dest), len(dest), 0) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Llistxattr(link string, dest []byte) (sz int, err error) { | ||||||
|  | 	return listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||||
|  | 	_p0, err := BytePtrFromString(path) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var attrList attrList | ||||||
|  | 	attrList.bitmapCount = ATTR_BIT_MAP_COUNT | ||||||
|  | 	attrList.CommonAttr = ATTR_CMN_MODTIME | ATTR_CMN_ACCTIME | ||||||
|  |  | ||||||
|  | 	// order is mtime, atime: the opposite of Chtimes | ||||||
|  | 	attributes := [2]Timespec{times[1], times[0]} | ||||||
|  | 	options := 0 | ||||||
|  | 	if flags&AT_SYMLINK_NOFOLLOW != 0 { | ||||||
|  | 		options |= FSOPT_NOFOLLOW | ||||||
|  | 	} | ||||||
|  | 	_, _, e1 := Syscall6( | ||||||
|  | 		SYS_SETATTRLIST, | ||||||
|  | 		uintptr(unsafe.Pointer(_p0)), | ||||||
|  | 		uintptr(unsafe.Pointer(&attrList)), | ||||||
|  | 		uintptr(unsafe.Pointer(&attributes)), | ||||||
|  | 		uintptr(unsafe.Sizeof(attributes)), | ||||||
|  | 		uintptr(options), | ||||||
|  | 		0, | ||||||
|  | 	) | ||||||
|  | 	if e1 != 0 { | ||||||
|  | 		return e1 | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
| func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error { | func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error { | ||||||
| 	// Darwin doesn't support SYS_UTIMENSAT | 	// Darwin doesn't support SYS_UTIMENSAT | ||||||
| 	return ENOSYS | 	return ENOSYS | ||||||
| @@ -239,6 +341,52 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) { | |||||||
| 	return &value, err | 	return &value, err | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func Uname(uname *Utsname) error { | ||||||
|  | 	mib := []_C_int{CTL_KERN, KERN_OSTYPE} | ||||||
|  | 	n := unsafe.Sizeof(uname.Sysname) | ||||||
|  | 	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_HOSTNAME} | ||||||
|  | 	n = unsafe.Sizeof(uname.Nodename) | ||||||
|  | 	if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_OSRELEASE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Release) | ||||||
|  | 	if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_VERSION} | ||||||
|  | 	n = unsafe.Sizeof(uname.Version) | ||||||
|  | 	if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// The version might have newlines or tabs in it, convert them to | ||||||
|  | 	// spaces. | ||||||
|  | 	for i, b := range uname.Version { | ||||||
|  | 		if b == '\n' || b == '\t' { | ||||||
|  | 			if i == len(uname.Version)-1 { | ||||||
|  | 				uname.Version[i] = 0 | ||||||
|  | 			} else { | ||||||
|  | 				uname.Version[i] = ' ' | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_HW, HW_MACHINE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Machine) | ||||||
|  | 	if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Exposed directly |  * Exposed directly | ||||||
|  */ |  */ | ||||||
| @@ -264,6 +412,7 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) { | |||||||
| //sys	Flock(fd int, how int) (err error) | //sys	Flock(fd int, how int) (err error) | ||||||
| //sys	Fpathconf(fd int, name int) (val int, err error) | //sys	Fpathconf(fd int, name int) (val int, err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 | //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 | ||||||
|  | //sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 | ||||||
| //sys	Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 | //sys	Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 | ||||||
| //sys	Fsync(fd int) (err error) | //sys	Fsync(fd int) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
| @@ -377,17 +526,12 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) { | |||||||
| // Searchfs | // Searchfs | ||||||
| // Delete | // Delete | ||||||
| // Copyfile | // Copyfile | ||||||
| // Poll |  | ||||||
| // Watchevent | // Watchevent | ||||||
| // Waitevent | // Waitevent | ||||||
| // Modwatch | // Modwatch | ||||||
| // Getxattr |  | ||||||
| // Fgetxattr | // Fgetxattr | ||||||
| // Setxattr |  | ||||||
| // Fsetxattr | // Fsetxattr | ||||||
| // Removexattr |  | ||||||
| // Fremovexattr | // Fremovexattr | ||||||
| // Listxattr |  | ||||||
| // Flistxattr | // Flistxattr | ||||||
| // Fsctl | // Fsctl | ||||||
| // Initgroups | // Initgroups | ||||||
|   | |||||||
							
								
								
									
										17
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,25 +11,18 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: int32(sec), Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int32(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: int32(sec), Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int32(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| //sysnb	gettimeofday(tp *Timeval) (sec int32, usec int32, err error) | //sysnb	gettimeofday(tp *Timeval) (sec int32, usec int32, err error) | ||||||
| func Gettimeofday(tv *Timeval) (err error) { | func Gettimeofday(tv *Timeval) (err error) { | ||||||
| 	// The tv passed to gettimeofday must be non-nil | 	// The tv passed to gettimeofday must be non-nil | ||||||
| 	// but is otherwise unused.  The answers come back | 	// but is otherwise unused. The answers come back | ||||||
| 	// in the two registers. | 	// in the two registers. | ||||||
| 	sec, usec, err := gettimeofday(tv) | 	sec, usec, err := gettimeofday(tv) | ||||||
| 	tv.Sec = int32(sec) | 	tv.Sec = int32(sec) | ||||||
|   | |||||||
							
								
								
									
										17
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,25 +11,18 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| //sysnb	gettimeofday(tp *Timeval) (sec int64, usec int32, err error) | //sysnb	gettimeofday(tp *Timeval) (sec int64, usec int32, err error) | ||||||
| func Gettimeofday(tv *Timeval) (err error) { | func Gettimeofday(tv *Timeval) (err error) { | ||||||
| 	// The tv passed to gettimeofday must be non-nil | 	// The tv passed to gettimeofday must be non-nil | ||||||
| 	// but is otherwise unused.  The answers come back | 	// but is otherwise unused. The answers come back | ||||||
| 	// in the two registers. | 	// in the two registers. | ||||||
| 	sec, usec, err := gettimeofday(tv) | 	sec, usec, err := gettimeofday(tv) | ||||||
| 	tv.Sec = sec | 	tv.Sec = sec | ||||||
|   | |||||||
							
								
								
									
										21
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -9,25 +9,18 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: int32(sec), Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int32(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: int32(sec), Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int32(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| //sysnb	gettimeofday(tp *Timeval) (sec int32, usec int32, err error) | //sysnb	gettimeofday(tp *Timeval) (sec int32, usec int32, err error) | ||||||
| func Gettimeofday(tv *Timeval) (err error) { | func Gettimeofday(tv *Timeval) (err error) { | ||||||
| 	// The tv passed to gettimeofday must be non-nil | 	// The tv passed to gettimeofday must be non-nil | ||||||
| 	// but is otherwise unused.  The answers come back | 	// but is otherwise unused. The answers come back | ||||||
| 	// in the two registers. | 	// in the two registers. | ||||||
| 	sec, usec, err := gettimeofday(tv) | 	sec, usec, err := gettimeofday(tv) | ||||||
| 	tv.Sec = int32(sec) | 	tv.Sec = int32(sec) | ||||||
| @@ -67,3 +60,7 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||||||
| } | } | ||||||
|  |  | ||||||
| func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic | func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic | ||||||
|  |  | ||||||
|  | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions | ||||||
|  | // of darwin/arm the syscall is called sysctl instead of __sysctl. | ||||||
|  | const SYS___SYSCTL = SYS_SYSCTL | ||||||
|   | |||||||
							
								
								
									
										17
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,25 +11,18 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| //sysnb	gettimeofday(tp *Timeval) (sec int64, usec int32, err error) | //sysnb	gettimeofday(tp *Timeval) (sec int64, usec int32, err error) | ||||||
| func Gettimeofday(tv *Timeval) (err error) { | func Gettimeofday(tv *Timeval) (err error) { | ||||||
| 	// The tv passed to gettimeofday must be non-nil | 	// The tv passed to gettimeofday must be non-nil | ||||||
| 	// but is otherwise unused.  The answers come back | 	// but is otherwise unused. The answers come back | ||||||
| 	// in the two registers. | 	// in the two registers. | ||||||
| 	sec, usec, err := gettimeofday(tv) | 	sec, usec, err := gettimeofday(tv) | ||||||
| 	tv.Sec = sec | 	tv.Sec = sec | ||||||
|   | |||||||
							
								
								
									
										148
									
								
								vendor/golang.org/x/sys/unix/syscall_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										148
									
								
								vendor/golang.org/x/sys/unix/syscall_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -14,6 +14,7 @@ package unix | |||||||
|  |  | ||||||
| import "unsafe" | import "unsafe" | ||||||
|  |  | ||||||
|  | // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. | ||||||
| type SockaddrDatalink struct { | type SockaddrDatalink struct { | ||||||
| 	Len    uint8 | 	Len    uint8 | ||||||
| 	Family uint8 | 	Family uint8 | ||||||
| @@ -56,22 +57,6 @@ func nametomib(name string) (mib []_C_int, err error) { | |||||||
| 	return buf[0 : n/siz], nil | 	return buf[0 : n/siz], nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func direntIno(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntReclen(buf []byte) (uint64, bool) { |  | ||||||
| 	namlen, ok := direntNamlen(buf) |  | ||||||
| 	if !ok { |  | ||||||
| 		return 0, false |  | ||||||
| 	} |  | ||||||
| 	return (16 + namlen + 1 + 7) &^ 7, true |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntNamlen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| //sysnb pipe() (r int, w int, err error) | //sysnb pipe() (r int, w int, err error) | ||||||
|  |  | ||||||
| func Pipe(p []int) (err error) { | func Pipe(p []int) (err error) { | ||||||
| @@ -102,7 +87,7 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { | |||||||
| 	if len > SizeofSockaddrAny { | 	if len > SizeofSockaddrAny { | ||||||
| 		panic("RawSockaddrAny too small") | 		panic("RawSockaddrAny too small") | ||||||
| 	} | 	} | ||||||
| 	sa, err = anyToSockaddr(&rsa) | 	sa, err = anyToSockaddr(fd, &rsa) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		Close(nfd) | 		Close(nfd) | ||||||
| 		nfd = 0 | 		nfd = 0 | ||||||
| @@ -110,6 +95,23 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|  | const ImplementsGetwd = true | ||||||
|  |  | ||||||
|  | //sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD | ||||||
|  |  | ||||||
|  | func Getwd() (string, error) { | ||||||
|  | 	var buf [PathMax]byte | ||||||
|  | 	_, err := Getcwd(buf[0:]) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	n := clen(buf[:]) | ||||||
|  | 	if n < 1 { | ||||||
|  | 		return "", EINVAL | ||||||
|  | 	} | ||||||
|  | 	return string(buf[:n]), nil | ||||||
|  | } | ||||||
|  |  | ||||||
| func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | ||||||
| 	var _p0 unsafe.Pointer | 	var _p0 unsafe.Pointer | ||||||
| 	var bufsize uintptr | 	var bufsize uintptr | ||||||
| @@ -125,6 +127,113 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||||
|  | 	// used on Darwin for UtimesNano | ||||||
|  | 	return ENOSYS | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //sys	ioctl(fd int, req uint, arg uintptr) (err error) | ||||||
|  |  | ||||||
|  | // ioctl itself should not be exposed directly, but additional get/set | ||||||
|  | // functions for specific types are permissible. | ||||||
|  |  | ||||||
|  | // IoctlSetInt performs an ioctl operation which sets an integer value | ||||||
|  | // on fd, using the specified request number. | ||||||
|  | func IoctlSetInt(fd int, req uint, value int) error { | ||||||
|  | 	return ioctl(fd, req, uintptr(value)) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlSetWinsize(fd int, req uint, value *Winsize) error { | ||||||
|  | 	return ioctl(fd, req, uintptr(unsafe.Pointer(value))) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlSetTermios(fd int, req uint, value *Termios) error { | ||||||
|  | 	return ioctl(fd, req, uintptr(unsafe.Pointer(value))) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // IoctlGetInt performs an ioctl operation which gets an integer value | ||||||
|  | // from fd, using the specified request number. | ||||||
|  | func IoctlGetInt(fd int, req uint) (int, error) { | ||||||
|  | 	var value int | ||||||
|  | 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) | ||||||
|  | 	return value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { | ||||||
|  | 	var value Winsize | ||||||
|  | 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlGetTermios(fd int, req uint) (*Termios, error) { | ||||||
|  | 	var value Termios | ||||||
|  | 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error { | ||||||
|  | 	err := sysctl(mib, old, oldlen, nil, 0) | ||||||
|  | 	if err != nil { | ||||||
|  | 		// Utsname members on Dragonfly are only 32 bytes and | ||||||
|  | 		// the syscall returns ENOMEM in case the actual value | ||||||
|  | 		// is longer. | ||||||
|  | 		if err == ENOMEM { | ||||||
|  | 			err = nil | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Uname(uname *Utsname) error { | ||||||
|  | 	mib := []_C_int{CTL_KERN, KERN_OSTYPE} | ||||||
|  | 	n := unsafe.Sizeof(uname.Sysname) | ||||||
|  | 	if err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	uname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0 | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_HOSTNAME} | ||||||
|  | 	n = unsafe.Sizeof(uname.Nodename) | ||||||
|  | 	if err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	uname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0 | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_OSRELEASE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Release) | ||||||
|  | 	if err := sysctlUname(mib, &uname.Release[0], &n); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	uname.Release[unsafe.Sizeof(uname.Release)-1] = 0 | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_VERSION} | ||||||
|  | 	n = unsafe.Sizeof(uname.Version) | ||||||
|  | 	if err := sysctlUname(mib, &uname.Version[0], &n); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// The version might have newlines or tabs in it, convert them to | ||||||
|  | 	// spaces. | ||||||
|  | 	for i, b := range uname.Version { | ||||||
|  | 		if b == '\n' || b == '\t' { | ||||||
|  | 			if i == len(uname.Version)-1 { | ||||||
|  | 				uname.Version[i] = 0 | ||||||
|  | 			} else { | ||||||
|  | 				uname.Version[i] = ' ' | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_HW, HW_MACHINE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Machine) | ||||||
|  | 	if err := sysctlUname(mib, &uname.Machine[0], &n); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	uname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0 | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Exposed directly |  * Exposed directly | ||||||
|  */ |  */ | ||||||
| @@ -142,10 +251,12 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| //sys	Fchdir(fd int) (err error) | //sys	Fchdir(fd int) (err error) | ||||||
| //sys	Fchflags(fd int, flags int) (err error) | //sys	Fchflags(fd int, flags int) (err error) | ||||||
| //sys	Fchmod(fd int, mode uint32) (err error) | //sys	Fchmod(fd int, mode uint32) (err error) | ||||||
|  | //sys	Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Flock(fd int, how int) (err error) | //sys	Flock(fd int, how int) (err error) | ||||||
| //sys	Fpathconf(fd int, name int) (val int, err error) | //sys	Fpathconf(fd int, name int) (val int, err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
|  | //sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) | ||||||
| //sys	Fstatfs(fd int, stat *Statfs_t) (err error) | //sys	Fstatfs(fd int, stat *Statfs_t) (err error) | ||||||
| //sys	Fsync(fd int) (err error) | //sys	Fsync(fd int) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
| @@ -225,7 +336,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| // Getlogin | // Getlogin | ||||||
| // Sigpending | // Sigpending | ||||||
| // Sigaltstack | // Sigaltstack | ||||||
| // Ioctl |  | ||||||
| // Reboot | // Reboot | ||||||
| // Execve | // Execve | ||||||
| // Vfork | // Vfork | ||||||
| @@ -257,7 +367,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| // Searchfs | // Searchfs | ||||||
| // Delete | // Delete | ||||||
| // Copyfile | // Copyfile | ||||||
| // Poll |  | ||||||
| // Watchevent | // Watchevent | ||||||
| // Waitevent | // Waitevent | ||||||
| // Modwatch | // Modwatch | ||||||
| @@ -403,7 +512,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| // Pread_nocancel | // Pread_nocancel | ||||||
| // Pwrite_nocancel | // Pwrite_nocancel | ||||||
| // Waitid_nocancel | // Waitid_nocancel | ||||||
| // Poll_nocancel |  | ||||||
| // Msgsnd_nocancel | // Msgsnd_nocancel | ||||||
| // Msgrcv_nocancel | // Msgrcv_nocancel | ||||||
| // Sem_wait_nocancel | // Sem_wait_nocancel | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,19 +11,12 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: usec} | ||||||
| 	tv.Usec = nsec % 1e9 / 1e3 |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
|   | |||||||
							
								
								
									
										114
									
								
								vendor/golang.org/x/sys/unix/syscall_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										114
									
								
								vendor/golang.org/x/sys/unix/syscall_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -12,8 +12,12 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| import "unsafe" | import ( | ||||||
|  | 	"strings" | ||||||
|  | 	"unsafe" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. | ||||||
| type SockaddrDatalink struct { | type SockaddrDatalink struct { | ||||||
| 	Len    uint8 | 	Len    uint8 | ||||||
| 	Family uint8 | 	Family uint8 | ||||||
| @@ -32,7 +36,7 @@ func nametomib(name string) (mib []_C_int, err error) { | |||||||
|  |  | ||||||
| 	// NOTE(rsc): It seems strange to set the buffer to have | 	// NOTE(rsc): It seems strange to set the buffer to have | ||||||
| 	// size CTL_MAXNAME+2 but use only CTL_MAXNAME | 	// size CTL_MAXNAME+2 but use only CTL_MAXNAME | ||||||
| 	// as the size.  I don't know why the +2 is here, but the | 	// as the size. I don't know why the +2 is here, but the | ||||||
| 	// kernel uses +2 for its own implementation of this function. | 	// kernel uses +2 for its own implementation of this function. | ||||||
| 	// I am scared that if we don't include the +2 here, the kernel | 	// I am scared that if we don't include the +2 here, the kernel | ||||||
| 	// will silently write 2 words farther than we specify | 	// will silently write 2 words farther than we specify | ||||||
| @@ -54,18 +58,6 @@ func nametomib(name string) (mib []_C_int, err error) { | |||||||
| 	return buf[0 : n/siz], nil | 	return buf[0 : n/siz], nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func direntIno(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntReclen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntNamlen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| //sysnb pipe() (r int, w int, err error) | //sysnb pipe() (r int, w int, err error) | ||||||
|  |  | ||||||
| func Pipe(p []int) (err error) { | func Pipe(p []int) (err error) { | ||||||
| @@ -97,7 +89,7 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { | |||||||
| 	if len > SizeofSockaddrAny { | 	if len > SizeofSockaddrAny { | ||||||
| 		panic("RawSockaddrAny too small") | 		panic("RawSockaddrAny too small") | ||||||
| 	} | 	} | ||||||
| 	sa, err = anyToSockaddr(&rsa) | 	sa, err = anyToSockaddr(fd, &rsa) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		Close(nfd) | 		Close(nfd) | ||||||
| 		nfd = 0 | 		nfd = 0 | ||||||
| @@ -105,6 +97,23 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|  | const ImplementsGetwd = true | ||||||
|  |  | ||||||
|  | //sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD | ||||||
|  |  | ||||||
|  | func Getwd() (string, error) { | ||||||
|  | 	var buf [PathMax]byte | ||||||
|  | 	_, err := Getcwd(buf[0:]) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	n := clen(buf[:]) | ||||||
|  | 	if n < 1 { | ||||||
|  | 		return "", EINVAL | ||||||
|  | 	} | ||||||
|  | 	return string(buf[:n]), nil | ||||||
|  | } | ||||||
|  |  | ||||||
| func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | ||||||
| 	var _p0 unsafe.Pointer | 	var _p0 unsafe.Pointer | ||||||
| 	var bufsize uintptr | 	var bufsize uintptr | ||||||
| @@ -120,17 +129,15 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||||
|  | 	// used on Darwin for UtimesNano | ||||||
|  | 	return ENOSYS | ||||||
|  | } | ||||||
|  |  | ||||||
| // Derive extattr namespace and attribute name | // Derive extattr namespace and attribute name | ||||||
|  |  | ||||||
| func xattrnamespace(fullattr string) (ns int, attr string, err error) { | func xattrnamespace(fullattr string) (ns int, attr string, err error) { | ||||||
| 	s := -1 | 	s := strings.IndexByte(fullattr, '.') | ||||||
| 	for idx, val := range fullattr { |  | ||||||
| 		if val == '.' { |  | ||||||
| 			s = idx |  | ||||||
| 			break |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if s == -1 { | 	if s == -1 { | ||||||
| 		return -1, "", ENOATTR | 		return -1, "", ENOATTR | ||||||
| 	} | 	} | ||||||
| @@ -271,7 +278,6 @@ func Listxattr(file string, dest []byte) (sz int, err error) { | |||||||
|  |  | ||||||
| 	// FreeBSD won't allow you to list xattrs from multiple namespaces | 	// FreeBSD won't allow you to list xattrs from multiple namespaces | ||||||
| 	s := 0 | 	s := 0 | ||||||
| 	var e error |  | ||||||
| 	for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { | 	for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { | ||||||
| 		stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) | 		stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) | ||||||
|  |  | ||||||
| @@ -283,7 +289,6 @@ func Listxattr(file string, dest []byte) (sz int, err error) { | |||||||
| 		 * we don't have read permissions on, so don't ignore those errors | 		 * we don't have read permissions on, so don't ignore those errors | ||||||
| 		 */ | 		 */ | ||||||
| 		if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { | 		if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { | ||||||
| 			e = nil |  | ||||||
| 			continue | 			continue | ||||||
| 		} else if e != nil { | 		} else if e != nil { | ||||||
| 			return s, e | 			return s, e | ||||||
| @@ -297,7 +302,7 @@ func Listxattr(file string, dest []byte) (sz int, err error) { | |||||||
| 		d = initxattrdest(dest, s) | 		d = initxattrdest(dest, s) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return s, e | 	return s, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func Flistxattr(fd int, dest []byte) (sz int, err error) { | func Flistxattr(fd int, dest []byte) (sz int, err error) { | ||||||
| @@ -305,11 +310,9 @@ func Flistxattr(fd int, dest []byte) (sz int, err error) { | |||||||
| 	destsiz := len(dest) | 	destsiz := len(dest) | ||||||
|  |  | ||||||
| 	s := 0 | 	s := 0 | ||||||
| 	var e error |  | ||||||
| 	for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { | 	for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { | ||||||
| 		stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) | 		stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) | ||||||
| 		if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { | 		if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { | ||||||
| 			e = nil |  | ||||||
| 			continue | 			continue | ||||||
| 		} else if e != nil { | 		} else if e != nil { | ||||||
| 			return s, e | 			return s, e | ||||||
| @@ -323,7 +326,7 @@ func Flistxattr(fd int, dest []byte) (sz int, err error) { | |||||||
| 		d = initxattrdest(dest, s) | 		d = initxattrdest(dest, s) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return s, e | 	return s, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func Llistxattr(link string, dest []byte) (sz int, err error) { | func Llistxattr(link string, dest []byte) (sz int, err error) { | ||||||
| @@ -331,11 +334,9 @@ func Llistxattr(link string, dest []byte) (sz int, err error) { | |||||||
| 	destsiz := len(dest) | 	destsiz := len(dest) | ||||||
|  |  | ||||||
| 	s := 0 | 	s := 0 | ||||||
| 	var e error |  | ||||||
| 	for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { | 	for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { | ||||||
| 		stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) | 		stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) | ||||||
| 		if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { | 		if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { | ||||||
| 			e = nil |  | ||||||
| 			continue | 			continue | ||||||
| 		} else if e != nil { | 		} else if e != nil { | ||||||
| 			return s, e | 			return s, e | ||||||
| @@ -349,7 +350,7 @@ func Llistxattr(link string, dest []byte) (sz int, err error) { | |||||||
| 		d = initxattrdest(dest, s) | 		d = initxattrdest(dest, s) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return s, e | 	return s, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| //sys   ioctl(fd int, req uint, arg uintptr) (err error) | //sys   ioctl(fd int, req uint, arg uintptr) (err error) | ||||||
| @@ -391,6 +392,52 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) { | |||||||
| 	return &value, err | 	return &value, err | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func Uname(uname *Utsname) error { | ||||||
|  | 	mib := []_C_int{CTL_KERN, KERN_OSTYPE} | ||||||
|  | 	n := unsafe.Sizeof(uname.Sysname) | ||||||
|  | 	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_HOSTNAME} | ||||||
|  | 	n = unsafe.Sizeof(uname.Nodename) | ||||||
|  | 	if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_OSRELEASE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Release) | ||||||
|  | 	if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_VERSION} | ||||||
|  | 	n = unsafe.Sizeof(uname.Version) | ||||||
|  | 	if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// The version might have newlines or tabs in it, convert them to | ||||||
|  | 	// spaces. | ||||||
|  | 	for i, b := range uname.Version { | ||||||
|  | 		if b == '\n' || b == '\t' { | ||||||
|  | 			if i == len(uname.Version)-1 { | ||||||
|  | 				uname.Version[i] = 0 | ||||||
|  | 			} else { | ||||||
|  | 				uname.Version[i] = ' ' | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_HW, HW_MACHINE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Machine) | ||||||
|  | 	if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Exposed directly |  * Exposed directly | ||||||
|  */ |  */ | ||||||
| @@ -431,9 +478,11 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) { | |||||||
| //sys	Flock(fd int, how int) (err error) | //sys	Flock(fd int, how int) (err error) | ||||||
| //sys	Fpathconf(fd int, name int) (val int, err error) | //sys	Fpathconf(fd int, name int) (val int, err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
|  | //sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) | ||||||
| //sys	Fstatfs(fd int, stat *Statfs_t) (err error) | //sys	Fstatfs(fd int, stat *Statfs_t) (err error) | ||||||
| //sys	Fsync(fd int) (err error) | //sys	Fsync(fd int) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
|  | //sys	Getdents(fd int, buf []byte) (n int, err error) | ||||||
| //sys	Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) | //sys	Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) | ||||||
| //sys	Getdtablesize() (size int) | //sys	Getdtablesize() (size int) | ||||||
| //sysnb	Getegid() (egid int) | //sysnb	Getegid() (egid int) | ||||||
| @@ -550,7 +599,6 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) { | |||||||
| // Searchfs | // Searchfs | ||||||
| // Delete | // Delete | ||||||
| // Copyfile | // Copyfile | ||||||
| // Poll |  | ||||||
| // Watchevent | // Watchevent | ||||||
| // Waitevent | // Waitevent | ||||||
| // Modwatch | // Modwatch | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,19 +11,12 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: int32(sec), Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int32(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: int32(sec), Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int32(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,19 +11,12 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: usec} | ||||||
| 	tv.Usec = nsec % 1e9 / 1e3 |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,19 +11,12 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return ts.Sec*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = nsec / 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
|   | |||||||
							
								
								
									
										266
									
								
								vendor/golang.org/x/sys/unix/syscall_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										266
									
								
								vendor/golang.org/x/sys/unix/syscall_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -148,8 +148,6 @@ func Unlink(path string) error { | |||||||
|  |  | ||||||
| //sys	Unlinkat(dirfd int, path string, flags int) (err error) | //sys	Unlinkat(dirfd int, path string, flags int) (err error) | ||||||
|  |  | ||||||
| //sys	utimes(path string, times *[2]Timeval) (err error) |  | ||||||
|  |  | ||||||
| func Utimes(path string, tv []Timeval) error { | func Utimes(path string, tv []Timeval) error { | ||||||
| 	if tv == nil { | 	if tv == nil { | ||||||
| 		err := utimensat(AT_FDCWD, path, nil, 0) | 		err := utimensat(AT_FDCWD, path, nil, 0) | ||||||
| @@ -207,20 +205,14 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { | |||||||
| 	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) | 	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) | ||||||
| } | } | ||||||
|  |  | ||||||
| //sys	futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) |  | ||||||
|  |  | ||||||
| func Futimesat(dirfd int, path string, tv []Timeval) error { | func Futimesat(dirfd int, path string, tv []Timeval) error { | ||||||
| 	pathp, err := BytePtrFromString(path) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return err |  | ||||||
| 	} |  | ||||||
| 	if tv == nil { | 	if tv == nil { | ||||||
| 		return futimesat(dirfd, pathp, nil) | 		return futimesat(dirfd, path, nil) | ||||||
| 	} | 	} | ||||||
| 	if len(tv) != 2 { | 	if len(tv) != 2 { | ||||||
| 		return EINVAL | 		return EINVAL | ||||||
| 	} | 	} | ||||||
| 	return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) | 	return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) | ||||||
| } | } | ||||||
|  |  | ||||||
| func Futimes(fd int, tv []Timeval) (err error) { | func Futimes(fd int, tv []Timeval) (err error) { | ||||||
| @@ -255,7 +247,7 @@ func Getgroups() (gids []int, err error) { | |||||||
| 		return nil, nil | 		return nil, nil | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Sanity check group count.  Max is 1<<16 on Linux. | 	// Sanity check group count. Max is 1<<16 on Linux. | ||||||
| 	if n < 0 || n > 1<<20 { | 	if n < 0 || n > 1<<20 { | ||||||
| 		return nil, EINVAL | 		return nil, EINVAL | ||||||
| 	} | 	} | ||||||
| @@ -290,8 +282,8 @@ type WaitStatus uint32 | |||||||
| // 0x7F (stopped), or a signal number that caused an exit. | // 0x7F (stopped), or a signal number that caused an exit. | ||||||
| // The 0x80 bit is whether there was a core dump. | // The 0x80 bit is whether there was a core dump. | ||||||
| // An extra number (exit code, signal causing a stop) | // An extra number (exit code, signal causing a stop) | ||||||
| // is in the high bits.  At least that's the idea. | // is in the high bits. At least that's the idea. | ||||||
| // There are various irregularities.  For example, the | // There are various irregularities. For example, the | ||||||
| // "continued" status is 0xFFFF, distinguishing itself | // "continued" status is 0xFFFF, distinguishing itself | ||||||
| // from stopped via the core dump bit. | // from stopped via the core dump bit. | ||||||
|  |  | ||||||
| @@ -413,6 +405,7 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||||||
| 	return unsafe.Pointer(&sa.raw), sl, nil | 	return unsafe.Pointer(&sa.raw), sl, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets. | ||||||
| type SockaddrLinklayer struct { | type SockaddrLinklayer struct { | ||||||
| 	Protocol uint16 | 	Protocol uint16 | ||||||
| 	Ifindex  int | 	Ifindex  int | ||||||
| @@ -439,6 +432,7 @@ func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||||||
| 	return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil | 	return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets. | ||||||
| type SockaddrNetlink struct { | type SockaddrNetlink struct { | ||||||
| 	Family uint16 | 	Family uint16 | ||||||
| 	Pad    uint16 | 	Pad    uint16 | ||||||
| @@ -455,6 +449,8 @@ func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||||||
| 	return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil | 	return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets | ||||||
|  | // using the HCI protocol. | ||||||
| type SockaddrHCI struct { | type SockaddrHCI struct { | ||||||
| 	Dev     uint16 | 	Dev     uint16 | ||||||
| 	Channel uint16 | 	Channel uint16 | ||||||
| @@ -468,6 +464,72 @@ func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||||||
| 	return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil | 	return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets | ||||||
|  | // using the L2CAP protocol. | ||||||
|  | type SockaddrL2 struct { | ||||||
|  | 	PSM      uint16 | ||||||
|  | 	CID      uint16 | ||||||
|  | 	Addr     [6]uint8 | ||||||
|  | 	AddrType uint8 | ||||||
|  | 	raw      RawSockaddrL2 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) { | ||||||
|  | 	sa.raw.Family = AF_BLUETOOTH | ||||||
|  | 	psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm)) | ||||||
|  | 	psm[0] = byte(sa.PSM) | ||||||
|  | 	psm[1] = byte(sa.PSM >> 8) | ||||||
|  | 	for i := 0; i < len(sa.Addr); i++ { | ||||||
|  | 		sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i] | ||||||
|  | 	} | ||||||
|  | 	cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid)) | ||||||
|  | 	cid[0] = byte(sa.CID) | ||||||
|  | 	cid[1] = byte(sa.CID >> 8) | ||||||
|  | 	sa.raw.Bdaddr_type = sa.AddrType | ||||||
|  | 	return unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets | ||||||
|  | // using the RFCOMM protocol. | ||||||
|  | // | ||||||
|  | // Server example: | ||||||
|  | // | ||||||
|  | //      fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) | ||||||
|  | //      _ = unix.Bind(fd, &unix.SockaddrRFCOMM{ | ||||||
|  | //      	Channel: 1, | ||||||
|  | //      	Addr:    [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00 | ||||||
|  | //      }) | ||||||
|  | //      _ = Listen(fd, 1) | ||||||
|  | //      nfd, sa, _ := Accept(fd) | ||||||
|  | //      fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd) | ||||||
|  | //      Read(nfd, buf) | ||||||
|  | // | ||||||
|  | // Client example: | ||||||
|  | // | ||||||
|  | //      fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) | ||||||
|  | //      _ = Connect(fd, &SockaddrRFCOMM{ | ||||||
|  | //      	Channel: 1, | ||||||
|  | //      	Addr:    [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11 | ||||||
|  | //      }) | ||||||
|  | //      Write(fd, []byte(`hello`)) | ||||||
|  | type SockaddrRFCOMM struct { | ||||||
|  | 	// Addr represents a bluetooth address, byte ordering is little-endian. | ||||||
|  | 	Addr [6]uint8 | ||||||
|  |  | ||||||
|  | 	// Channel is a designated bluetooth channel, only 1-30 are available for use. | ||||||
|  | 	// Since Linux 2.6.7 and further zero value is the first available channel. | ||||||
|  | 	Channel uint8 | ||||||
|  |  | ||||||
|  | 	raw RawSockaddrRFCOMM | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) { | ||||||
|  | 	sa.raw.Family = AF_BLUETOOTH | ||||||
|  | 	sa.raw.Channel = sa.Channel | ||||||
|  | 	sa.raw.Bdaddr = sa.Addr | ||||||
|  | 	return unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil | ||||||
|  | } | ||||||
|  |  | ||||||
| // SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. | // SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. | ||||||
| // The RxID and TxID fields are used for transport protocol addressing in | // The RxID and TxID fields are used for transport protocol addressing in | ||||||
| // (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with | // (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with | ||||||
| @@ -630,7 +692,7 @@ func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||||||
| 	return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil | 	return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { | func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { | ||||||
| 	switch rsa.Addr.Family { | 	switch rsa.Addr.Family { | ||||||
| 	case AF_NETLINK: | 	case AF_NETLINK: | ||||||
| 		pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) | 		pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) | ||||||
| @@ -707,6 +769,30 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { | |||||||
| 			Port: pp.Port, | 			Port: pp.Port, | ||||||
| 		} | 		} | ||||||
| 		return sa, nil | 		return sa, nil | ||||||
|  | 	case AF_BLUETOOTH: | ||||||
|  | 		proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return nil, err | ||||||
|  | 		} | ||||||
|  | 		// only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections | ||||||
|  | 		switch proto { | ||||||
|  | 		case BTPROTO_L2CAP: | ||||||
|  | 			pp := (*RawSockaddrL2)(unsafe.Pointer(rsa)) | ||||||
|  | 			sa := &SockaddrL2{ | ||||||
|  | 				PSM:      pp.Psm, | ||||||
|  | 				CID:      pp.Cid, | ||||||
|  | 				Addr:     pp.Bdaddr, | ||||||
|  | 				AddrType: pp.Bdaddr_type, | ||||||
|  | 			} | ||||||
|  | 			return sa, nil | ||||||
|  | 		case BTPROTO_RFCOMM: | ||||||
|  | 			pp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa)) | ||||||
|  | 			sa := &SockaddrRFCOMM{ | ||||||
|  | 				Channel: pp.Channel, | ||||||
|  | 				Addr:    pp.Bdaddr, | ||||||
|  | 			} | ||||||
|  | 			return sa, nil | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 	return nil, EAFNOSUPPORT | 	return nil, EAFNOSUPPORT | ||||||
| } | } | ||||||
| @@ -718,7 +804,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	sa, err = anyToSockaddr(&rsa) | 	sa, err = anyToSockaddr(fd, &rsa) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		Close(nfd) | 		Close(nfd) | ||||||
| 		nfd = 0 | 		nfd = 0 | ||||||
| @@ -736,7 +822,7 @@ func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { | |||||||
| 	if len > SizeofSockaddrAny { | 	if len > SizeofSockaddrAny { | ||||||
| 		panic("RawSockaddrAny too small") | 		panic("RawSockaddrAny too small") | ||||||
| 	} | 	} | ||||||
| 	sa, err = anyToSockaddr(&rsa) | 	sa, err = anyToSockaddr(fd, &rsa) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		Close(nfd) | 		Close(nfd) | ||||||
| 		nfd = 0 | 		nfd = 0 | ||||||
| @@ -750,20 +836,7 @@ func Getsockname(fd int) (sa Sockaddr, err error) { | |||||||
| 	if err = getsockname(fd, &rsa, &len); err != nil { | 	if err = getsockname(fd, &rsa, &len); err != nil { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	return anyToSockaddr(&rsa) | 	return anyToSockaddr(fd, &rsa) | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { |  | ||||||
| 	vallen := _Socklen(4) |  | ||||||
| 	err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) |  | ||||||
| 	return value, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { |  | ||||||
| 	var value IPMreq |  | ||||||
| 	vallen := _Socklen(SizeofIPMreq) |  | ||||||
| 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) |  | ||||||
| 	return &value, err |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { | func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { | ||||||
| @@ -773,27 +846,6 @@ func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { | |||||||
| 	return &value, err | 	return &value, err | ||||||
| } | } | ||||||
|  |  | ||||||
| func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { |  | ||||||
| 	var value IPv6Mreq |  | ||||||
| 	vallen := _Socklen(SizeofIPv6Mreq) |  | ||||||
| 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) |  | ||||||
| 	return &value, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { |  | ||||||
| 	var value IPv6MTUInfo |  | ||||||
| 	vallen := _Socklen(SizeofIPv6MTUInfo) |  | ||||||
| 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) |  | ||||||
| 	return &value, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { |  | ||||||
| 	var value ICMPv6Filter |  | ||||||
| 	vallen := _Socklen(SizeofICMPv6Filter) |  | ||||||
| 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) |  | ||||||
| 	return &value, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { | func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { | ||||||
| 	var value Ucred | 	var value Ucred | ||||||
| 	vallen := _Socklen(SizeofUcred) | 	vallen := _Socklen(SizeofUcred) | ||||||
| @@ -808,6 +860,24 @@ func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { | |||||||
| 	return &value, err | 	return &value, err | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // GetsockoptString returns the string value of the socket option opt for the | ||||||
|  | // socket associated with fd at the given socket level. | ||||||
|  | func GetsockoptString(fd, level, opt int) (string, error) { | ||||||
|  | 	buf := make([]byte, 256) | ||||||
|  | 	vallen := _Socklen(len(buf)) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) | ||||||
|  | 	if err != nil { | ||||||
|  | 		if err == ERANGE { | ||||||
|  | 			buf = make([]byte, vallen) | ||||||
|  | 			err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) | ||||||
|  | 		} | ||||||
|  | 		if err != nil { | ||||||
|  | 			return "", err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return string(buf[:vallen-1]), nil | ||||||
|  | } | ||||||
|  |  | ||||||
| func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { | func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { | ||||||
| 	return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) | 	return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) | ||||||
| } | } | ||||||
| @@ -926,22 +996,24 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from | |||||||
| 	msg.Namelen = uint32(SizeofSockaddrAny) | 	msg.Namelen = uint32(SizeofSockaddrAny) | ||||||
| 	var iov Iovec | 	var iov Iovec | ||||||
| 	if len(p) > 0 { | 	if len(p) > 0 { | ||||||
| 		iov.Base = (*byte)(unsafe.Pointer(&p[0])) | 		iov.Base = &p[0] | ||||||
| 		iov.SetLen(len(p)) | 		iov.SetLen(len(p)) | ||||||
| 	} | 	} | ||||||
| 	var dummy byte | 	var dummy byte | ||||||
| 	if len(oob) > 0 { | 	if len(oob) > 0 { | ||||||
| 		var sockType int | 		if len(p) == 0 { | ||||||
| 		sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) | 			var sockType int | ||||||
| 		if err != nil { | 			sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) | ||||||
| 			return | 			if err != nil { | ||||||
|  | 				return | ||||||
|  | 			} | ||||||
|  | 			// receive at least one normal byte | ||||||
|  | 			if sockType != SOCK_DGRAM { | ||||||
|  | 				iov.Base = &dummy | ||||||
|  | 				iov.SetLen(1) | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 		// receive at least one normal byte | 		msg.Control = &oob[0] | ||||||
| 		if sockType != SOCK_DGRAM && len(p) == 0 { |  | ||||||
| 			iov.Base = &dummy |  | ||||||
| 			iov.SetLen(1) |  | ||||||
| 		} |  | ||||||
| 		msg.Control = (*byte)(unsafe.Pointer(&oob[0])) |  | ||||||
| 		msg.SetControllen(len(oob)) | 		msg.SetControllen(len(oob)) | ||||||
| 	} | 	} | ||||||
| 	msg.Iov = &iov | 	msg.Iov = &iov | ||||||
| @@ -953,7 +1025,7 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from | |||||||
| 	recvflags = int(msg.Flags) | 	recvflags = int(msg.Flags) | ||||||
| 	// source address is only specified if the socket is unconnected | 	// source address is only specified if the socket is unconnected | ||||||
| 	if rsa.Addr.Family != AF_UNSPEC { | 	if rsa.Addr.Family != AF_UNSPEC { | ||||||
| 		from, err = anyToSockaddr(&rsa) | 		from, err = anyToSockaddr(fd, &rsa) | ||||||
| 	} | 	} | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
| @@ -974,26 +1046,28 @@ func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	var msg Msghdr | 	var msg Msghdr | ||||||
| 	msg.Name = (*byte)(unsafe.Pointer(ptr)) | 	msg.Name = (*byte)(ptr) | ||||||
| 	msg.Namelen = uint32(salen) | 	msg.Namelen = uint32(salen) | ||||||
| 	var iov Iovec | 	var iov Iovec | ||||||
| 	if len(p) > 0 { | 	if len(p) > 0 { | ||||||
| 		iov.Base = (*byte)(unsafe.Pointer(&p[0])) | 		iov.Base = &p[0] | ||||||
| 		iov.SetLen(len(p)) | 		iov.SetLen(len(p)) | ||||||
| 	} | 	} | ||||||
| 	var dummy byte | 	var dummy byte | ||||||
| 	if len(oob) > 0 { | 	if len(oob) > 0 { | ||||||
| 		var sockType int | 		if len(p) == 0 { | ||||||
| 		sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) | 			var sockType int | ||||||
| 		if err != nil { | 			sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) | ||||||
| 			return 0, err | 			if err != nil { | ||||||
|  | 				return 0, err | ||||||
|  | 			} | ||||||
|  | 			// send at least one normal byte | ||||||
|  | 			if sockType != SOCK_DGRAM { | ||||||
|  | 				iov.Base = &dummy | ||||||
|  | 				iov.SetLen(1) | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 		// send at least one normal byte | 		msg.Control = &oob[0] | ||||||
| 		if sockType != SOCK_DGRAM && len(p) == 0 { |  | ||||||
| 			iov.Base = &dummy |  | ||||||
| 			iov.SetLen(1) |  | ||||||
| 		} |  | ||||||
| 		msg.Control = (*byte)(unsafe.Pointer(&oob[0])) |  | ||||||
| 		msg.SetControllen(len(oob)) | 		msg.SetControllen(len(oob)) | ||||||
| 	} | 	} | ||||||
| 	msg.Iov = &iov | 	msg.Iov = &iov | ||||||
| @@ -1023,7 +1097,7 @@ func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err erro | |||||||
|  |  | ||||||
| 	var buf [sizeofPtr]byte | 	var buf [sizeofPtr]byte | ||||||
|  |  | ||||||
| 	// Leading edge.  PEEKTEXT/PEEKDATA don't require aligned | 	// Leading edge. PEEKTEXT/PEEKDATA don't require aligned | ||||||
| 	// access (PEEKUSER warns that it might), but if we don't | 	// access (PEEKUSER warns that it might), but if we don't | ||||||
| 	// align our reads, we might straddle an unmapped page | 	// align our reads, we might straddle an unmapped page | ||||||
| 	// boundary and not get the bytes leading up to the page | 	// boundary and not get the bytes leading up to the page | ||||||
| @@ -1125,6 +1199,10 @@ func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { | |||||||
| 	return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) | 	return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) { | ||||||
|  | 	return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data) | ||||||
|  | } | ||||||
|  |  | ||||||
| func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { | func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { | ||||||
| 	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) | 	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) | ||||||
| } | } | ||||||
| @@ -1168,22 +1246,6 @@ func ReadDirent(fd int, buf []byte) (n int, err error) { | |||||||
| 	return Getdents(fd, buf) | 	return Getdents(fd, buf) | ||||||
| } | } | ||||||
|  |  | ||||||
| func direntIno(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntReclen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntNamlen(buf []byte) (uint64, bool) { |  | ||||||
| 	reclen, ok := direntReclen(buf) |  | ||||||
| 	if !ok { |  | ||||||
| 		return 0, false |  | ||||||
| 	} |  | ||||||
| 	return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true |  | ||||||
| } |  | ||||||
|  |  | ||||||
| //sys	mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) | //sys	mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) | ||||||
|  |  | ||||||
| func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { | func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { | ||||||
| @@ -1216,12 +1278,10 @@ func Mount(source string, target string, fstype string, flags uintptr, data stri | |||||||
| //sys	CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) | //sys	CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) | ||||||
| //sys	Dup(oldfd int) (fd int, err error) | //sys	Dup(oldfd int) (fd int, err error) | ||||||
| //sys	Dup3(oldfd int, newfd int, flags int) (err error) | //sys	Dup3(oldfd int, newfd int, flags int) (err error) | ||||||
| //sysnb	EpollCreate(size int) (fd int, err error) |  | ||||||
| //sysnb	EpollCreate1(flag int) (fd int, err error) | //sysnb	EpollCreate1(flag int) (fd int, err error) | ||||||
| //sysnb	EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) | //sysnb	EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) | ||||||
| //sys	Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 | //sys	Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 | ||||||
| //sys	Exit(code int) = SYS_EXIT_GROUP | //sys	Exit(code int) = SYS_EXIT_GROUP | ||||||
| //sys	Faccessat(dirfd int, path string, mode uint32, flags int) (err error) |  | ||||||
| //sys	Fallocate(fd int, mode uint32, off int64, len int64) (err error) | //sys	Fallocate(fd int, mode uint32, off int64, len int64) (err error) | ||||||
| //sys	Fchdir(fd int) (err error) | //sys	Fchdir(fd int) (err error) | ||||||
| //sys	Fchmod(fd int, mode uint32) (err error) | //sys	Fchmod(fd int, mode uint32) (err error) | ||||||
| @@ -1259,9 +1319,11 @@ func Getpgrp() (pid int) { | |||||||
| //sys	Mkdirat(dirfd int, path string, mode uint32) (err error) | //sys	Mkdirat(dirfd int, path string, mode uint32) (err error) | ||||||
| //sys	Mknodat(dirfd int, path string, mode uint32, dev int) (err error) | //sys	Mknodat(dirfd int, path string, mode uint32, dev int) (err error) | ||||||
| //sys	Nanosleep(time *Timespec, leftover *Timespec) (err error) | //sys	Nanosleep(time *Timespec, leftover *Timespec) (err error) | ||||||
|  | //sys	PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) | ||||||
| //sys	PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT | //sys	PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT | ||||||
| //sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 | //sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 | ||||||
| //sys   Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) | //sys   Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) | ||||||
|  | //sys	Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6 | ||||||
| //sys	read(fd int, p []byte) (n int, err error) | //sys	read(fd int, p []byte) (n int, err error) | ||||||
| //sys	Removexattr(path string, attr string) (err error) | //sys	Removexattr(path string, attr string) (err error) | ||||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) | //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) | ||||||
| @@ -1288,6 +1350,7 @@ func Setgid(uid int) (err error) { | |||||||
|  |  | ||||||
| //sys	Setpriority(which int, who int, prio int) (err error) | //sys	Setpriority(which int, who int, prio int) (err error) | ||||||
| //sys	Setxattr(path string, attr string, data []byte, flags int) (err error) | //sys	Setxattr(path string, attr string, data []byte, flags int) (err error) | ||||||
|  | //sys	Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) | ||||||
| //sys	Sync() | //sys	Sync() | ||||||
| //sys	Syncfs(fd int) (err error) | //sys	Syncfs(fd int) (err error) | ||||||
| //sysnb	Sysinfo(info *Sysinfo_t) (err error) | //sysnb	Sysinfo(info *Sysinfo_t) (err error) | ||||||
| @@ -1298,7 +1361,6 @@ func Setgid(uid int) (err error) { | |||||||
| //sysnb	Uname(buf *Utsname) (err error) | //sysnb	Uname(buf *Utsname) (err error) | ||||||
| //sys	Unmount(target string, flags int) (err error) = SYS_UMOUNT2 | //sys	Unmount(target string, flags int) (err error) = SYS_UMOUNT2 | ||||||
| //sys	Unshare(flags int) (err error) | //sys	Unshare(flags int) (err error) | ||||||
| //sys	Ustat(dev int, ubuf *Ustat_t) (err error) |  | ||||||
| //sys	write(fd int, p []byte) (n int, err error) | //sys	write(fd int, p []byte) (n int, err error) | ||||||
| //sys	exitThread(code int) (err error) = SYS_EXIT | //sys	exitThread(code int) (err error) = SYS_EXIT | ||||||
| //sys	readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ | //sys	readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ | ||||||
| @@ -1348,6 +1410,17 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { | |||||||
| 	return int(n), nil | 	return int(n), nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | //sys	faccessat(dirfd int, path string, mode uint32) (err error) | ||||||
|  |  | ||||||
|  | func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { | ||||||
|  | 	if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 { | ||||||
|  | 		return EINVAL | ||||||
|  | 	} else if flags&(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 { | ||||||
|  | 		return EOPNOTSUPP | ||||||
|  | 	} | ||||||
|  | 	return faccessat(dirfd, path, mode) | ||||||
|  | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Unimplemented |  * Unimplemented | ||||||
|  */ |  */ | ||||||
| @@ -1405,7 +1478,6 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { | |||||||
| // Msgget | // Msgget | ||||||
| // Msgrcv | // Msgrcv | ||||||
| // Msgsnd | // Msgsnd | ||||||
| // Newfstatat |  | ||||||
| // Nfsservctl | // Nfsservctl | ||||||
| // Personality | // Personality | ||||||
| // Pselect6 | // Pselect6 | ||||||
| @@ -1426,11 +1498,9 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { | |||||||
| // RtSigtimedwait | // RtSigtimedwait | ||||||
| // SchedGetPriorityMax | // SchedGetPriorityMax | ||||||
| // SchedGetPriorityMin | // SchedGetPriorityMin | ||||||
| // SchedGetaffinity |  | ||||||
| // SchedGetparam | // SchedGetparam | ||||||
| // SchedGetscheduler | // SchedGetscheduler | ||||||
| // SchedRrGetInterval | // SchedRrGetInterval | ||||||
| // SchedSetaffinity |  | ||||||
| // SchedSetparam | // SchedSetparam | ||||||
| // SchedYield | // SchedYield | ||||||
| // Security | // Security | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -10,23 +10,15 @@ | |||||||
| package unix | package unix | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"syscall" |  | ||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: int32(sec), Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int32(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: int32(sec), Usec: int32(usec)} | ||||||
| 	tv.Sec = int32(nsec / 1e9) |  | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| //sysnb	pipe(p *[2]_C_int) (err error) | //sysnb	pipe(p *[2]_C_int) (err error) | ||||||
| @@ -58,9 +50,12 @@ func Pipe2(p []int, flags int) (err error) { | |||||||
| // 64-bit file system and 32-bit uid calls | // 64-bit file system and 32-bit uid calls | ||||||
| // (386 default is 32-bit file system and 16-bit uid). | // (386 default is 32-bit file system and 16-bit uid). | ||||||
| //sys	Dup2(oldfd int, newfd int) (err error) | //sys	Dup2(oldfd int, newfd int) (err error) | ||||||
|  | //sysnb	EpollCreate(size int) (fd int, err error) | ||||||
|  | //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | ||||||
| //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 | //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 | //sys	Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 | //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 | ||||||
|  | //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 | //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 | ||||||
| //sysnb	Getegid() (egid int) = SYS_GETEGID32 | //sysnb	Getegid() (egid int) = SYS_GETEGID32 | ||||||
| //sysnb	Geteuid() (euid int) = SYS_GETEUID32 | //sysnb	Geteuid() (euid int) = SYS_GETEUID32 | ||||||
| @@ -84,12 +79,12 @@ func Pipe2(p []int, flags int) (err error) { | |||||||
| //sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 | //sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 | ||||||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | ||||||
| //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 | //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 | ||||||
|  | //sys	Ustat(dev int, ubuf *Ustat_t) (err error) | ||||||
| //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 | //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 | ||||||
| //sysnb	setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 | //sysnb	setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 | ||||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT | //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT | ||||||
|  |  | ||||||
| //sys	mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) | //sys	mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) | ||||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) |  | ||||||
| //sys	Pause() (err error) | //sys	Pause() (err error) | ||||||
|  |  | ||||||
| func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { | func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { | ||||||
| @@ -163,10 +158,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) { | |||||||
| 	return setrlimit(resource, &rl) | 	return setrlimit(resource, &rl) | ||||||
| } | } | ||||||
|  |  | ||||||
| // Underlying system call writes to newoffset via pointer. |  | ||||||
| // Implemented in assembly to avoid allocation. |  | ||||||
| func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) |  | ||||||
|  |  | ||||||
| func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { | func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { | ||||||
| 	newoffset, errno := seek(fd, offset, whence) | 	newoffset, errno := seek(fd, offset, whence) | ||||||
| 	if errno != 0 { | 	if errno != 0 { | ||||||
| @@ -175,17 +166,17 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { | |||||||
| 	return newoffset, nil | 	return newoffset, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| // Vsyscalls on amd64. | //sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error) | ||||||
| //sysnb	Gettimeofday(tv *Timeval) (err error) | //sysnb	Gettimeofday(tv *Timeval) (err error) | ||||||
| //sysnb	Time(t *Time_t) (tt Time_t, err error) | //sysnb	Time(t *Time_t) (tt Time_t, err error) | ||||||
|  |  | ||||||
| //sys	Utime(path string, buf *Utimbuf) (err error) | //sys	Utime(path string, buf *Utimbuf) (err error) | ||||||
|  | //sys	utimes(path string, times *[2]Timeval) (err error) | ||||||
|  |  | ||||||
| // On x86 Linux, all the socket calls go through an extra indirection, | // On x86 Linux, all the socket calls go through an extra indirection, | ||||||
| // I think because the 5-register system call interface can't handle | // I think because the 5-register system call interface can't handle | ||||||
| // the 6-argument calls like sendto and recvfrom.  Instead the | // the 6-argument calls like sendto and recvfrom. Instead the | ||||||
| // arguments to the underlying system call are the number below | // arguments to the underlying system call are the number below | ||||||
| // and a pointer to an array of uintptr.  We hide the pointer in the | // and a pointer to an array of uintptr. We hide the pointer in the | ||||||
| // socketcall assembly to avoid allocation on every system call. | // socketcall assembly to avoid allocation on every system call. | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| @@ -212,9 +203,6 @@ const ( | |||||||
| 	_SENDMMSG    = 20 | 	_SENDMMSG    = 20 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) |  | ||||||
| func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) |  | ||||||
|  |  | ||||||
| func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { | func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { | ||||||
| 	fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) | 	fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) | ||||||
| 	if e != 0 { | 	if e != 0 { | ||||||
|   | |||||||
							
								
								
									
										38
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,10 +7,12 @@ | |||||||
| package unix | package unix | ||||||
|  |  | ||||||
| //sys	Dup2(oldfd int, newfd int) (err error) | //sys	Dup2(oldfd int, newfd int) (err error) | ||||||
|  | //sysnb	EpollCreate(size int) (fd int, err error) | ||||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | ||||||
| //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 | //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
|  | //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT | ||||||
| //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
| //sysnb	Getegid() (egid int) | //sysnb	Getegid() (egid int) | ||||||
| @@ -28,7 +30,15 @@ package unix | |||||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 | //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 | ||||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 | //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 | ||||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK | //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK | ||||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) |  | ||||||
|  | func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { | ||||||
|  | 	var ts *Timespec | ||||||
|  | 	if timeout != nil { | ||||||
|  | 		ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} | ||||||
|  | 	} | ||||||
|  | 	return Pselect(nfd, r, w, e, ts, nil) | ||||||
|  | } | ||||||
|  |  | ||||||
| //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) | //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) | ||||||
| //sys	Setfsgid(gid int) (err error) | //sys	Setfsgid(gid int) (err error) | ||||||
| //sys	Setfsuid(uid int) (err error) | //sys	Setfsuid(uid int) (err error) | ||||||
| @@ -39,10 +49,16 @@ package unix | |||||||
| //sysnb	Setreuid(ruid int, euid int) (err error) | //sysnb	Setreuid(ruid int, euid int) (err error) | ||||||
| //sys	Shutdown(fd int, how int) (err error) | //sys	Shutdown(fd int, how int) (err error) | ||||||
| //sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) | //sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) | ||||||
| //sys	Stat(path string, stat *Stat_t) (err error) |  | ||||||
|  | func Stat(path string, stat *Stat_t) (err error) { | ||||||
|  | 	// Use fstatat, because Android's seccomp policy blocks stat. | ||||||
|  | 	return Fstatat(AT_FDCWD, path, stat, 0) | ||||||
|  | } | ||||||
|  |  | ||||||
| //sys	Statfs(path string, buf *Statfs_t) (err error) | //sys	Statfs(path string, buf *Statfs_t) (err error) | ||||||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | ||||||
| //sys	Truncate(path string, length int64) (err error) | //sys	Truncate(path string, length int64) (err error) | ||||||
|  | //sys	Ustat(dev int, ubuf *Ustat_t) (err error) | ||||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | ||||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | ||||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | ||||||
| @@ -61,6 +77,8 @@ package unix | |||||||
| //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error) | //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error) | ||||||
| //sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) | //sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) | ||||||
|  |  | ||||||
|  | //sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error) | ||||||
|  |  | ||||||
| func Gettimeofday(tv *Timeval) (err error) { | func Gettimeofday(tv *Timeval) (err error) { | ||||||
| 	errno := gettimeofday(tv) | 	errno := gettimeofday(tv) | ||||||
| 	if errno != 0 { | 	if errno != 0 { | ||||||
| @@ -82,20 +100,14 @@ func Time(t *Time_t) (tt Time_t, err error) { | |||||||
| } | } | ||||||
|  |  | ||||||
| //sys	Utime(path string, buf *Utimbuf) (err error) | //sys	Utime(path string, buf *Utimbuf) (err error) | ||||||
|  | //sys	utimes(path string, times *[2]Timeval) (err error) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: usec} | ||||||
| 	tv.Sec = nsec / 1e9 |  | ||||||
| 	tv.Usec = nsec % 1e9 / 1e3 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| //sysnb	pipe(p *[2]_C_int) (err error) | //sysnb	pipe(p *[2]_C_int) (err error) | ||||||
|   | |||||||
							
								
								
									
										26
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,19 +11,12 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: int32(sec), Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int32(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: int32(sec), Usec: int32(usec)} | ||||||
| 	tv.Sec = int32(nsec / 1e9) |  | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func Pipe(p []int) (err error) { | func Pipe(p []int) (err error) { | ||||||
| @@ -82,8 +75,11 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { | |||||||
| // 64-bit file system and 32-bit uid calls | // 64-bit file system and 32-bit uid calls | ||||||
| // (16-bit uid calls are not always supported in newer kernels) | // (16-bit uid calls are not always supported in newer kernels) | ||||||
| //sys	Dup2(oldfd int, newfd int) (err error) | //sys	Dup2(oldfd int, newfd int) (err error) | ||||||
|  | //sysnb	EpollCreate(size int) (fd int, err error) | ||||||
|  | //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 | //sys	Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 | //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 | ||||||
|  | //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 | ||||||
| //sysnb	Getegid() (egid int) = SYS_GETEGID32 | //sysnb	Getegid() (egid int) = SYS_GETEGID32 | ||||||
| //sysnb	Geteuid() (euid int) = SYS_GETEUID32 | //sysnb	Geteuid() (euid int) = SYS_GETEUID32 | ||||||
| //sysnb	Getgid() (gid int) = SYS_GETGID32 | //sysnb	Getgid() (gid int) = SYS_GETGID32 | ||||||
| @@ -92,6 +88,7 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { | |||||||
| //sys	Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 | //sys	Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 | ||||||
| //sys	Listen(s int, n int) (err error) | //sys	Listen(s int, n int) (err error) | ||||||
| //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 | //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 | ||||||
|  | //sys	Pause() (err error) | ||||||
| //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 | //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 | ||||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT | //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT | ||||||
| //sys	Setfsgid(gid int) (err error) = SYS_SETFSGID32 | //sys	Setfsgid(gid int) (err error) = SYS_SETFSGID32 | ||||||
| @@ -103,11 +100,10 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { | |||||||
| //sys	Shutdown(fd int, how int) (err error) | //sys	Shutdown(fd int, how int) (err error) | ||||||
| //sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) | //sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) | ||||||
| //sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 | //sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 | ||||||
|  | //sys	Ustat(dev int, ubuf *Ustat_t) (err error) | ||||||
|  |  | ||||||
| // Vsyscalls on amd64. | //sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error) | ||||||
| //sysnb	Gettimeofday(tv *Timeval) (err error) | //sysnb	Gettimeofday(tv *Timeval) (err error) | ||||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) |  | ||||||
| //sys	Pause() (err error) |  | ||||||
|  |  | ||||||
| func Time(t *Time_t) (Time_t, error) { | func Time(t *Time_t) (Time_t, error) { | ||||||
| 	var tv Timeval | 	var tv Timeval | ||||||
| @@ -129,6 +125,8 @@ func Utime(path string, buf *Utimbuf) error { | |||||||
| 	return Utimes(path, tv) | 	return Utimes(path, tv) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | //sys	utimes(path string, times *[2]Timeval) (err error) | ||||||
|  |  | ||||||
| //sys   Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 | //sys   Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 | ||||||
| //sys   Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 | //sys   Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 | ||||||
| //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 | //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 | ||||||
|   | |||||||
							
								
								
									
										80
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										80
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,7 +6,17 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
|  | import "unsafe" | ||||||
|  |  | ||||||
|  | func EpollCreate(size int) (fd int, err error) { | ||||||
|  | 	if size <= 0 { | ||||||
|  | 		return -1, EINVAL | ||||||
|  | 	} | ||||||
|  | 	return EpollCreate1(0) | ||||||
|  | } | ||||||
|  |  | ||||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT | //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT | ||||||
|  | //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
| //sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) | //sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) | ||||||
| @@ -21,7 +31,15 @@ package unix | |||||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 | //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 | ||||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 | //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 | ||||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK | //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK | ||||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6 |  | ||||||
|  | func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { | ||||||
|  | 	var ts *Timespec | ||||||
|  | 	if timeout != nil { | ||||||
|  | 		ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} | ||||||
|  | 	} | ||||||
|  | 	return Pselect(nfd, r, w, e, ts, nil) | ||||||
|  | } | ||||||
|  |  | ||||||
| //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) | //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) | ||||||
| //sys	Setfsgid(gid int) (err error) | //sys	Setfsgid(gid int) (err error) | ||||||
| //sys	Setfsuid(uid int) (err error) | //sys	Setfsuid(uid int) (err error) | ||||||
| @@ -48,6 +66,11 @@ func Lstat(path string, stat *Stat_t) (err error) { | |||||||
| //sys	Statfs(path string, buf *Statfs_t) (err error) | //sys	Statfs(path string, buf *Statfs_t) (err error) | ||||||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | ||||||
| //sys	Truncate(path string, length int64) (err error) | //sys	Truncate(path string, length int64) (err error) | ||||||
|  |  | ||||||
|  | func Ustat(dev int, ubuf *Ustat_t) (err error) { | ||||||
|  | 	return ENOSYS | ||||||
|  | } | ||||||
|  |  | ||||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | ||||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | ||||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | ||||||
| @@ -68,19 +91,24 @@ func Lstat(path string, stat *Stat_t) (err error) { | |||||||
|  |  | ||||||
| //sysnb	Gettimeofday(tv *Timeval) (err error) | //sysnb	Gettimeofday(tv *Timeval) (err error) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: usec} | ||||||
| 	tv.Sec = nsec / 1e9 | } | ||||||
| 	tv.Usec = nsec % 1e9 / 1e3 |  | ||||||
| 	return | func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { | ||||||
|  | 	if tv == nil { | ||||||
|  | 		return utimensat(dirfd, path, nil, 0) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	ts := []Timespec{ | ||||||
|  | 		NsecToTimespec(TimevalToNsec(tv[0])), | ||||||
|  | 		NsecToTimespec(TimevalToNsec(tv[1])), | ||||||
|  | 	} | ||||||
|  | 	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) | ||||||
| } | } | ||||||
|  |  | ||||||
| func Time(t *Time_t) (Time_t, error) { | func Time(t *Time_t) (Time_t, error) { | ||||||
| @@ -103,6 +131,18 @@ func Utime(path string, buf *Utimbuf) error { | |||||||
| 	return Utimes(path, tv) | 	return Utimes(path, tv) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func utimes(path string, tv *[2]Timeval) (err error) { | ||||||
|  | 	if tv == nil { | ||||||
|  | 		return utimensat(AT_FDCWD, path, nil, 0) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	ts := []Timespec{ | ||||||
|  | 		NsecToTimespec(TimevalToNsec(tv[0])), | ||||||
|  | 		NsecToTimespec(TimevalToNsec(tv[1])), | ||||||
|  | 	} | ||||||
|  | 	return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) | ||||||
|  | } | ||||||
|  |  | ||||||
| func Pipe(p []int) (err error) { | func Pipe(p []int) (err error) { | ||||||
| 	if len(p) != 2 { | 	if len(p) != 2 { | ||||||
| 		return EINVAL | 		return EINVAL | ||||||
| @@ -159,22 +199,6 @@ func Pause() (err error) { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
| // TODO(dfc): constants that should be in zsysnum_linux_arm64.go, remove |  | ||||||
| // these when the deprecated syscalls that the syscall package relies on |  | ||||||
| // are removed. |  | ||||||
| const ( |  | ||||||
| 	SYS_GETPGRP      = 1060 |  | ||||||
| 	SYS_UTIMES       = 1037 |  | ||||||
| 	SYS_FUTIMESAT    = 1066 |  | ||||||
| 	SYS_PAUSE        = 1061 |  | ||||||
| 	SYS_USTAT        = 1070 |  | ||||||
| 	SYS_UTIME        = 1063 |  | ||||||
| 	SYS_LCHOWN       = 1032 |  | ||||||
| 	SYS_TIME         = 1062 |  | ||||||
| 	SYS_EPOLL_CREATE = 1042 |  | ||||||
| 	SYS_EPOLL_WAIT   = 1069 |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func Poll(fds []PollFd, timeout int) (n int, err error) { | func Poll(fds []PollFd, timeout int) (n int, err error) { | ||||||
| 	var ts *Timespec | 	var ts *Timespec | ||||||
| 	if timeout >= 0 { | 	if timeout >= 0 { | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_gc.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_gc.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build linux,!gccgo | ||||||
|  |  | ||||||
|  | package unix | ||||||
|  |  | ||||||
|  | // SyscallNoError may be used instead of Syscall for syscalls that don't fail. | ||||||
|  | func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) | ||||||
|  |  | ||||||
|  | // RawSyscallNoError may be used instead of RawSyscall for syscalls that don't | ||||||
|  | // fail. | ||||||
|  | func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) | ||||||
							
								
								
									
										16
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build linux,!gccgo,386 | ||||||
|  |  | ||||||
|  | package unix | ||||||
|  |  | ||||||
|  | import "syscall" | ||||||
|  |  | ||||||
|  | // Underlying system call writes to newoffset via pointer. | ||||||
|  | // Implemented in assembly to avoid allocation. | ||||||
|  | func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) | ||||||
|  |  | ||||||
|  | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) | ||||||
|  | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) | ||||||
							
								
								
									
										30
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build linux,gccgo,386 | ||||||
|  |  | ||||||
|  | package unix | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"syscall" | ||||||
|  | 	"unsafe" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { | ||||||
|  | 	var newoffset int64 | ||||||
|  | 	offsetLow := uint32(offset & 0xffffffff) | ||||||
|  | 	offsetHigh := uint32((offset >> 32) & 0xffffffff) | ||||||
|  | 	_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) | ||||||
|  | 	return newoffset, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { | ||||||
|  | 	fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) | ||||||
|  | 	return int(fd), err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { | ||||||
|  | 	fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) | ||||||
|  | 	return int(fd), err | ||||||
|  | } | ||||||
							
								
								
									
										20
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | // Copyright 2018 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 file. | ||||||
|  |  | ||||||
|  | // +build linux,gccgo,arm | ||||||
|  |  | ||||||
|  | package unix | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"syscall" | ||||||
|  | 	"unsafe" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { | ||||||
|  | 	var newoffset int64 | ||||||
|  | 	offsetLow := uint32(offset & 0xffffffff) | ||||||
|  | 	offsetHigh := uint32((offset >> 32) & 0xffffffff) | ||||||
|  | 	_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) | ||||||
|  | 	return newoffset, err | ||||||
|  | } | ||||||
							
								
								
									
										31
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -8,8 +8,11 @@ | |||||||
| package unix | package unix | ||||||
|  |  | ||||||
| //sys	Dup2(oldfd int, newfd int) (err error) | //sys	Dup2(oldfd int, newfd int) (err error) | ||||||
|  | //sysnb	EpollCreate(size int) (fd int, err error) | ||||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | ||||||
|  | //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
|  | //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT | ||||||
| //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
| //sysnb	Getegid() (egid int) | //sysnb	Getegid() (egid int) | ||||||
| @@ -23,7 +26,15 @@ package unix | |||||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 | //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 | ||||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 | //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 | ||||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK | //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK | ||||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6 |  | ||||||
|  | func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { | ||||||
|  | 	var ts *Timespec | ||||||
|  | 	if timeout != nil { | ||||||
|  | 		ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} | ||||||
|  | 	} | ||||||
|  | 	return Pselect(nfd, r, w, e, ts, nil) | ||||||
|  | } | ||||||
|  |  | ||||||
| //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) | //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) | ||||||
| //sys	Setfsgid(gid int) (err error) | //sys	Setfsgid(gid int) (err error) | ||||||
| //sys	Setfsuid(uid int) (err error) | //sys	Setfsuid(uid int) (err error) | ||||||
| @@ -37,6 +48,7 @@ package unix | |||||||
| //sys	Statfs(path string, buf *Statfs_t) (err error) | //sys	Statfs(path string, buf *Statfs_t) (err error) | ||||||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | ||||||
| //sys	Truncate(path string, length int64) (err error) | //sys	Truncate(path string, length int64) (err error) | ||||||
|  | //sys	Ustat(dev int, ubuf *Ustat_t) (err error) | ||||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | ||||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | ||||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | ||||||
| @@ -55,6 +67,7 @@ package unix | |||||||
| //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error) | //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error) | ||||||
| //sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) | //sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) | ||||||
|  |  | ||||||
|  | //sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error) | ||||||
| //sysnb	Gettimeofday(tv *Timeval) (err error) | //sysnb	Gettimeofday(tv *Timeval) (err error) | ||||||
|  |  | ||||||
| func Time(t *Time_t) (tt Time_t, err error) { | func Time(t *Time_t) (tt Time_t, err error) { | ||||||
| @@ -70,20 +83,14 @@ func Time(t *Time_t) (tt Time_t, err error) { | |||||||
| } | } | ||||||
|  |  | ||||||
| //sys	Utime(path string, buf *Utimbuf) (err error) | //sys	Utime(path string, buf *Utimbuf) (err error) | ||||||
|  | //sys	utimes(path string, times *[2]Timeval) (err error) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: usec} | ||||||
| 	tv.Sec = nsec / 1e9 |  | ||||||
| 	tv.Usec = nsec % 1e9 / 1e3 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func Pipe(p []int) (err error) { | func Pipe(p []int) (err error) { | ||||||
|   | |||||||
							
								
								
									
										29
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -15,6 +15,9 @@ import ( | |||||||
| func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) | func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) | ||||||
|  |  | ||||||
| //sys	Dup2(oldfd int, newfd int) (err error) | //sys	Dup2(oldfd int, newfd int) (err error) | ||||||
|  | //sysnb	EpollCreate(size int) (fd int, err error) | ||||||
|  | //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | ||||||
|  | //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 | //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 | ||||||
| //sysnb	Getegid() (egid int) | //sysnb	Getegid() (egid int) | ||||||
| @@ -32,13 +35,12 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, | |||||||
| //sysnb	Setregid(rgid int, egid int) (err error) | //sysnb	Setregid(rgid int, egid int) (err error) | ||||||
| //sysnb	Setresgid(rgid int, egid int, sgid int) (err error) | //sysnb	Setresgid(rgid int, egid int, sgid int) (err error) | ||||||
| //sysnb	Setresuid(ruid int, euid int, suid int) (err error) | //sysnb	Setresuid(ruid int, euid int, suid int) (err error) | ||||||
|  |  | ||||||
| //sysnb	Setreuid(ruid int, euid int) (err error) | //sysnb	Setreuid(ruid int, euid int) (err error) | ||||||
| //sys	Shutdown(fd int, how int) (err error) | //sys	Shutdown(fd int, how int) (err error) | ||||||
| //sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) | //sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) | ||||||
|  |  | ||||||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | ||||||
| //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 | //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 | ||||||
|  | //sys	Ustat(dev int, ubuf *Ustat_t) (err error) | ||||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | ||||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | ||||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | ||||||
| @@ -60,15 +62,17 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, | |||||||
| //sys	Ioperm(from int, num int, on int) (err error) | //sys	Ioperm(from int, num int, on int) (err error) | ||||||
| //sys	Iopl(level int) (err error) | //sys	Iopl(level int) (err error) | ||||||
|  |  | ||||||
|  | //sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error) | ||||||
| //sysnb	Gettimeofday(tv *Timeval) (err error) | //sysnb	Gettimeofday(tv *Timeval) (err error) | ||||||
| //sysnb	Time(t *Time_t) (tt Time_t, err error) | //sysnb	Time(t *Time_t) (tt Time_t, err error) | ||||||
|  | //sys	Utime(path string, buf *Utimbuf) (err error) | ||||||
|  | //sys	utimes(path string, times *[2]Timeval) (err error) | ||||||
|  |  | ||||||
| //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 | //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 | //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 | ||||||
|  | //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 | ||||||
| //sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 | //sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 | ||||||
|  |  | ||||||
| //sys	Utime(path string, buf *Utimbuf) (err error) |  | ||||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) |  | ||||||
| //sys	Pause() (err error) | //sys	Pause() (err error) | ||||||
|  |  | ||||||
| func Fstatfs(fd int, buf *Statfs_t) (err error) { | func Fstatfs(fd int, buf *Statfs_t) (err error) { | ||||||
| @@ -99,19 +103,12 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: int32(sec), Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int32(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: int32(sec), Usec: int32(usec)} | ||||||
| 	tv.Sec = int32(nsec / 1e9) |  | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| //sysnb pipe2(p *[2]_C_int, flags int) (err error) | //sysnb pipe2(p *[2]_C_int, flags int) (err error) | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,10 +7,13 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) |  | ||||||
| //sys	Dup2(oldfd int, newfd int) (err error) | //sys	Dup2(oldfd int, newfd int) (err error) | ||||||
|  | //sysnb	EpollCreate(size int) (fd int, err error) | ||||||
|  | //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | ||||||
|  | //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
|  | //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT | ||||||
| //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
| //sysnb	Getegid() (egid int) | //sysnb	Getegid() (egid int) | ||||||
| @@ -43,6 +46,7 @@ package unix | |||||||
| //sys	Statfs(path string, buf *Statfs_t) (err error) | //sys	Statfs(path string, buf *Statfs_t) (err error) | ||||||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) = SYS_SYNC_FILE_RANGE2 | //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) = SYS_SYNC_FILE_RANGE2 | ||||||
| //sys	Truncate(path string, length int64) (err error) | //sys	Truncate(path string, length int64) (err error) | ||||||
|  | //sys	Ustat(dev int, ubuf *Ustat_t) (err error) | ||||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) | ||||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) | ||||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) | ||||||
| @@ -61,24 +65,18 @@ package unix | |||||||
| //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error) | //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error) | ||||||
| //sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) | //sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) | ||||||
|  |  | ||||||
|  | //sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error) | ||||||
| //sysnb	Gettimeofday(tv *Timeval) (err error) | //sysnb	Gettimeofday(tv *Timeval) (err error) | ||||||
| //sysnb	Time(t *Time_t) (tt Time_t, err error) | //sysnb	Time(t *Time_t) (tt Time_t, err error) | ||||||
|  |  | ||||||
| //sys	Utime(path string, buf *Utimbuf) (err error) | //sys	Utime(path string, buf *Utimbuf) (err error) | ||||||
|  | //sys	utimes(path string, times *[2]Timeval) (err error) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: usec} | ||||||
| 	tv.Sec = nsec / 1e9 |  | ||||||
| 	tv.Usec = nsec % 1e9 / 1e3 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func (r *PtraceRegs) PC() uint64 { return r.Nip } | func (r *PtraceRegs) PC() uint64 { return r.Nip } | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,10 +11,12 @@ import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| //sys	Dup2(oldfd int, newfd int) (err error) | //sys	Dup2(oldfd int, newfd int) (err error) | ||||||
|  | //sysnb	EpollCreate(size int) (fd int, err error) | ||||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | ||||||
| //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 | //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
|  | //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT | ||||||
| //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
| //sysnb	Getegid() (egid int) | //sysnb	Getegid() (egid int) | ||||||
| @@ -43,9 +45,11 @@ import ( | |||||||
| //sys	Statfs(path string, buf *Statfs_t) (err error) | //sys	Statfs(path string, buf *Statfs_t) (err error) | ||||||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error) | ||||||
| //sys	Truncate(path string, length int64) (err error) | //sys	Truncate(path string, length int64) (err error) | ||||||
|  | //sys	Ustat(dev int, ubuf *Ustat_t) (err error) | ||||||
| //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error) | //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error) | ||||||
| //sysnb	setgroups(n int, list *_Gid_t) (err error) | //sysnb	setgroups(n int, list *_Gid_t) (err error) | ||||||
|  |  | ||||||
|  | //sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error) | ||||||
| //sysnb	Gettimeofday(tv *Timeval) (err error) | //sysnb	Gettimeofday(tv *Timeval) (err error) | ||||||
|  |  | ||||||
| func Time(t *Time_t) (tt Time_t, err error) { | func Time(t *Time_t) (tt Time_t, err error) { | ||||||
| @@ -61,20 +65,14 @@ func Time(t *Time_t) (tt Time_t, err error) { | |||||||
| } | } | ||||||
|  |  | ||||||
| //sys	Utime(path string, buf *Utimbuf) (err error) | //sys	Utime(path string, buf *Utimbuf) (err error) | ||||||
|  | //sys	utimes(path string, times *[2]Timeval) (err error) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: usec} | ||||||
| 	tv.Sec = nsec / 1e9 |  | ||||||
| 	tv.Usec = nsec % 1e9 / 1e3 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| //sysnb pipe2(p *[2]_C_int, flags int) (err error) | //sysnb pipe2(p *[2]_C_int, flags int) (err error) | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,9 +7,11 @@ | |||||||
| package unix | package unix | ||||||
|  |  | ||||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) | ||||||
|  | //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 | ||||||
| //sys	Dup2(oldfd int, newfd int) (err error) | //sys	Dup2(oldfd int, newfd int) (err error) | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
|  | //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 | ||||||
| //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | //sys	Fstatfs(fd int, buf *Statfs_t) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
| //sysnb	Getegid() (egid int) | //sysnb	Getegid() (egid int) | ||||||
| @@ -66,6 +68,7 @@ func Iopl(level int) (err error) { | |||||||
| 	return ENOSYS | 	return ENOSYS | ||||||
| } | } | ||||||
|  |  | ||||||
|  | //sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error) | ||||||
| //sysnb	Gettimeofday(tv *Timeval) (err error) | //sysnb	Gettimeofday(tv *Timeval) (err error) | ||||||
|  |  | ||||||
| func Time(t *Time_t) (tt Time_t, err error) { | func Time(t *Time_t) (tt Time_t, err error) { | ||||||
| @@ -81,20 +84,14 @@ func Time(t *Time_t) (tt Time_t, err error) { | |||||||
| } | } | ||||||
|  |  | ||||||
| //sys	Utime(path string, buf *Utimbuf) (err error) | //sys	Utime(path string, buf *Utimbuf) (err error) | ||||||
|  | //sys	utimes(path string, times *[2]Timeval) (err error) | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: int32(usec)} | ||||||
| 	tv.Sec = nsec / 1e9 |  | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func (r *PtraceRegs) PC() uint64 { return r.Tpc } | func (r *PtraceRegs) PC() uint64 { return r.Tpc } | ||||||
|   | |||||||
							
								
								
									
										128
									
								
								vendor/golang.org/x/sys/unix/syscall_netbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										128
									
								
								vendor/golang.org/x/sys/unix/syscall_netbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -17,6 +17,7 @@ import ( | |||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. | ||||||
| type SockaddrDatalink struct { | type SockaddrDatalink struct { | ||||||
| 	Len    uint8 | 	Len    uint8 | ||||||
| 	Family uint8 | 	Family uint8 | ||||||
| @@ -55,7 +56,6 @@ func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func nametomib(name string) (mib []_C_int, err error) { | func nametomib(name string) (mib []_C_int, err error) { | ||||||
|  |  | ||||||
| 	// Split name into components. | 	// Split name into components. | ||||||
| 	var parts []string | 	var parts []string | ||||||
| 	last := 0 | 	last := 0 | ||||||
| @@ -93,18 +93,6 @@ func nametomib(name string) (mib []_C_int, err error) { | |||||||
| 	return mib, nil | 	return mib, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func direntIno(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntReclen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntNamlen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| //sysnb pipe() (fd1 int, fd2 int, err error) | //sysnb pipe() (fd1 int, fd2 int, err error) | ||||||
| func Pipe(p []int) (err error) { | func Pipe(p []int) (err error) { | ||||||
| 	if len(p) != 2 { | 	if len(p) != 2 { | ||||||
| @@ -119,11 +107,118 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | |||||||
| 	return getdents(fd, buf) | 	return getdents(fd, buf) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | const ImplementsGetwd = true | ||||||
|  |  | ||||||
|  | //sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD | ||||||
|  |  | ||||||
|  | func Getwd() (string, error) { | ||||||
|  | 	var buf [PathMax]byte | ||||||
|  | 	_, err := Getcwd(buf[0:]) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	n := clen(buf[:]) | ||||||
|  | 	if n < 1 { | ||||||
|  | 		return "", EINVAL | ||||||
|  | 	} | ||||||
|  | 	return string(buf[:n]), nil | ||||||
|  | } | ||||||
|  |  | ||||||
| // TODO | // TODO | ||||||
| func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { | func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { | ||||||
| 	return -1, ENOSYS | 	return -1, ENOSYS | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||||
|  | 	// used on Darwin for UtimesNano | ||||||
|  | 	return ENOSYS | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //sys	ioctl(fd int, req uint, arg uintptr) (err error) | ||||||
|  |  | ||||||
|  | // ioctl itself should not be exposed directly, but additional get/set | ||||||
|  | // functions for specific types are permissible. | ||||||
|  |  | ||||||
|  | // IoctlSetInt performs an ioctl operation which sets an integer value | ||||||
|  | // on fd, using the specified request number. | ||||||
|  | func IoctlSetInt(fd int, req uint, value int) error { | ||||||
|  | 	return ioctl(fd, req, uintptr(value)) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlSetWinsize(fd int, req uint, value *Winsize) error { | ||||||
|  | 	return ioctl(fd, req, uintptr(unsafe.Pointer(value))) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlSetTermios(fd int, req uint, value *Termios) error { | ||||||
|  | 	return ioctl(fd, req, uintptr(unsafe.Pointer(value))) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // IoctlGetInt performs an ioctl operation which gets an integer value | ||||||
|  | // from fd, using the specified request number. | ||||||
|  | func IoctlGetInt(fd int, req uint) (int, error) { | ||||||
|  | 	var value int | ||||||
|  | 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) | ||||||
|  | 	return value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { | ||||||
|  | 	var value Winsize | ||||||
|  | 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlGetTermios(fd int, req uint) (*Termios, error) { | ||||||
|  | 	var value Termios | ||||||
|  | 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Uname(uname *Utsname) error { | ||||||
|  | 	mib := []_C_int{CTL_KERN, KERN_OSTYPE} | ||||||
|  | 	n := unsafe.Sizeof(uname.Sysname) | ||||||
|  | 	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_HOSTNAME} | ||||||
|  | 	n = unsafe.Sizeof(uname.Nodename) | ||||||
|  | 	if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_OSRELEASE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Release) | ||||||
|  | 	if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_VERSION} | ||||||
|  | 	n = unsafe.Sizeof(uname.Version) | ||||||
|  | 	if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// The version might have newlines or tabs in it, convert them to | ||||||
|  | 	// spaces. | ||||||
|  | 	for i, b := range uname.Version { | ||||||
|  | 		if b == '\n' || b == '\t' { | ||||||
|  | 			if i == len(uname.Version)-1 { | ||||||
|  | 				uname.Version[i] = 0 | ||||||
|  | 			} else { | ||||||
|  | 				uname.Version[i] = ' ' | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_HW, HW_MACHINE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Machine) | ||||||
|  | 	if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Exposed directly |  * Exposed directly | ||||||
|  */ |  */ | ||||||
| @@ -138,13 +233,17 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||||||
| //sys	Dup(fd int) (nfd int, err error) | //sys	Dup(fd int) (nfd int, err error) | ||||||
| //sys	Dup2(from int, to int) (err error) | //sys	Dup2(from int, to int) (err error) | ||||||
| //sys	Exit(code int) | //sys	Exit(code int) | ||||||
|  | //sys	Faccessat(dirfd int, path string, mode uint32, flags int) (err error) | ||||||
|  | //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE | ||||||
| //sys	Fchdir(fd int) (err error) | //sys	Fchdir(fd int) (err error) | ||||||
| //sys	Fchflags(fd int, flags int) (err error) | //sys	Fchflags(fd int, flags int) (err error) | ||||||
| //sys	Fchmod(fd int, mode uint32) (err error) | //sys	Fchmod(fd int, mode uint32) (err error) | ||||||
|  | //sys	Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Flock(fd int, how int) (err error) | //sys	Flock(fd int, how int) (err error) | ||||||
| //sys	Fpathconf(fd int, name int) (val int, err error) | //sys	Fpathconf(fd int, name int) (val int, err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
|  | //sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) | ||||||
| //sys	Fsync(fd int) (err error) | //sys	Fsync(fd int) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
| //sysnb	Getegid() (egid int) | //sysnb	Getegid() (egid int) | ||||||
| @@ -225,7 +324,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||||||
| // __msync13 | // __msync13 | ||||||
| // __ntp_gettime30 | // __ntp_gettime30 | ||||||
| // __posix_chown | // __posix_chown | ||||||
| // __posix_fadvise50 |  | ||||||
| // __posix_fchown | // __posix_fchown | ||||||
| // __posix_lchown | // __posix_lchown | ||||||
| // __posix_rename | // __posix_rename | ||||||
| @@ -384,7 +482,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||||||
| // getitimer | // getitimer | ||||||
| // getvfsstat | // getvfsstat | ||||||
| // getxattr | // getxattr | ||||||
| // ioctl |  | ||||||
| // ktrace | // ktrace | ||||||
| // lchflags | // lchflags | ||||||
| // lchmod | // lchmod | ||||||
| @@ -422,7 +519,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||||||
| // ntp_adjtime | // ntp_adjtime | ||||||
| // pmc_control | // pmc_control | ||||||
| // pmc_get_info | // pmc_get_info | ||||||
| // poll |  | ||||||
| // pollts | // pollts | ||||||
| // preadv | // preadv | ||||||
| // profil | // profil | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,19 +6,12 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int64(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,19 +6,12 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int64(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int64(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,19 +6,12 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int64(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								vendor/golang.org/x/sys/unix/syscall_no_getwd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/golang.org/x/sys/unix/syscall_no_getwd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,11 +0,0 @@ | |||||||
| // Copyright 2013 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 file. |  | ||||||
|  |  | ||||||
| // +build dragonfly freebsd netbsd openbsd |  | ||||||
|  |  | ||||||
| package unix |  | ||||||
|  |  | ||||||
| const ImplementsGetwd = false |  | ||||||
|  |  | ||||||
| func Getwd() (string, error) { return "", ENOTSUP } |  | ||||||
							
								
								
									
										152
									
								
								vendor/golang.org/x/sys/unix/syscall_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										152
									
								
								vendor/golang.org/x/sys/unix/syscall_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,10 +13,12 @@ | |||||||
| package unix | package unix | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"sort" | ||||||
| 	"syscall" | 	"syscall" | ||||||
| 	"unsafe" | 	"unsafe" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. | ||||||
| type SockaddrDatalink struct { | type SockaddrDatalink struct { | ||||||
| 	Len    uint8 | 	Len    uint8 | ||||||
| 	Family uint8 | 	Family uint8 | ||||||
| @@ -32,39 +34,15 @@ type SockaddrDatalink struct { | |||||||
| func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) | func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) | ||||||
|  |  | ||||||
| func nametomib(name string) (mib []_C_int, err error) { | func nametomib(name string) (mib []_C_int, err error) { | ||||||
|  | 	i := sort.Search(len(sysctlMib), func(i int) bool { | ||||||
| 	// Perform lookup via a binary search | 		return sysctlMib[i].ctlname >= name | ||||||
| 	left := 0 | 	}) | ||||||
| 	right := len(sysctlMib) - 1 | 	if i < len(sysctlMib) && sysctlMib[i].ctlname == name { | ||||||
| 	for { | 		return sysctlMib[i].ctloid, nil | ||||||
| 		idx := left + (right-left)/2 |  | ||||||
| 		switch { |  | ||||||
| 		case name == sysctlMib[idx].ctlname: |  | ||||||
| 			return sysctlMib[idx].ctloid, nil |  | ||||||
| 		case name > sysctlMib[idx].ctlname: |  | ||||||
| 			left = idx + 1 |  | ||||||
| 		default: |  | ||||||
| 			right = idx - 1 |  | ||||||
| 		} |  | ||||||
| 		if left > right { |  | ||||||
| 			break |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 	return nil, EINVAL | 	return nil, EINVAL | ||||||
| } | } | ||||||
|  |  | ||||||
| func direntIno(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntReclen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntNamlen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| //sysnb pipe(p *[2]_C_int) (err error) | //sysnb pipe(p *[2]_C_int) (err error) | ||||||
| func Pipe(p []int) (err error) { | func Pipe(p []int) (err error) { | ||||||
| 	if len(p) != 2 { | 	if len(p) != 2 { | ||||||
| @@ -82,6 +60,23 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | |||||||
| 	return getdents(fd, buf) | 	return getdents(fd, buf) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | const ImplementsGetwd = true | ||||||
|  |  | ||||||
|  | //sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD | ||||||
|  |  | ||||||
|  | func Getwd() (string, error) { | ||||||
|  | 	var buf [PathMax]byte | ||||||
|  | 	_, err := Getcwd(buf[0:]) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	n := clen(buf[:]) | ||||||
|  | 	if n < 1 { | ||||||
|  | 		return "", EINVAL | ||||||
|  | 	} | ||||||
|  | 	return string(buf[:n]), nil | ||||||
|  | } | ||||||
|  |  | ||||||
| // TODO | // TODO | ||||||
| func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { | func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { | ||||||
| 	return -1, ENOSYS | 	return -1, ENOSYS | ||||||
| @@ -102,6 +97,96 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||||
|  | 	// used on Darwin for UtimesNano | ||||||
|  | 	return ENOSYS | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //sys	ioctl(fd int, req uint, arg uintptr) (err error) | ||||||
|  |  | ||||||
|  | // ioctl itself should not be exposed directly, but additional get/set | ||||||
|  | // functions for specific types are permissible. | ||||||
|  |  | ||||||
|  | // IoctlSetInt performs an ioctl operation which sets an integer value | ||||||
|  | // on fd, using the specified request number. | ||||||
|  | func IoctlSetInt(fd int, req uint, value int) error { | ||||||
|  | 	return ioctl(fd, req, uintptr(value)) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlSetWinsize(fd int, req uint, value *Winsize) error { | ||||||
|  | 	return ioctl(fd, req, uintptr(unsafe.Pointer(value))) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlSetTermios(fd int, req uint, value *Termios) error { | ||||||
|  | 	return ioctl(fd, req, uintptr(unsafe.Pointer(value))) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // IoctlGetInt performs an ioctl operation which gets an integer value | ||||||
|  | // from fd, using the specified request number. | ||||||
|  | func IoctlGetInt(fd int, req uint) (int, error) { | ||||||
|  | 	var value int | ||||||
|  | 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) | ||||||
|  | 	return value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { | ||||||
|  | 	var value Winsize | ||||||
|  | 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func IoctlGetTermios(fd int, req uint) (*Termios, error) { | ||||||
|  | 	var value Termios | ||||||
|  | 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Uname(uname *Utsname) error { | ||||||
|  | 	mib := []_C_int{CTL_KERN, KERN_OSTYPE} | ||||||
|  | 	n := unsafe.Sizeof(uname.Sysname) | ||||||
|  | 	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_HOSTNAME} | ||||||
|  | 	n = unsafe.Sizeof(uname.Nodename) | ||||||
|  | 	if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_OSRELEASE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Release) | ||||||
|  | 	if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_KERN, KERN_VERSION} | ||||||
|  | 	n = unsafe.Sizeof(uname.Version) | ||||||
|  | 	if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// The version might have newlines or tabs in it, convert them to | ||||||
|  | 	// spaces. | ||||||
|  | 	for i, b := range uname.Version { | ||||||
|  | 		if b == '\n' || b == '\t' { | ||||||
|  | 			if i == len(uname.Version)-1 { | ||||||
|  | 				uname.Version[i] = 0 | ||||||
|  | 			} else { | ||||||
|  | 				uname.Version[i] = ' ' | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	mib = []_C_int{CTL_HW, HW_MACHINE} | ||||||
|  | 	n = unsafe.Sizeof(uname.Machine) | ||||||
|  | 	if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Exposed directly |  * Exposed directly | ||||||
|  */ |  */ | ||||||
| @@ -116,13 +201,16 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| //sys	Dup(fd int) (nfd int, err error) | //sys	Dup(fd int) (nfd int, err error) | ||||||
| //sys	Dup2(from int, to int) (err error) | //sys	Dup2(from int, to int) (err error) | ||||||
| //sys	Exit(code int) | //sys	Exit(code int) | ||||||
|  | //sys	Faccessat(dirfd int, path string, mode uint32, flags int) (err error) | ||||||
| //sys	Fchdir(fd int) (err error) | //sys	Fchdir(fd int) (err error) | ||||||
| //sys	Fchflags(fd int, flags int) (err error) | //sys	Fchflags(fd int, flags int) (err error) | ||||||
| //sys	Fchmod(fd int, mode uint32) (err error) | //sys	Fchmod(fd int, mode uint32) (err error) | ||||||
|  | //sys	Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Flock(fd int, how int) (err error) | //sys	Flock(fd int, how int) (err error) | ||||||
| //sys	Fpathconf(fd int, name int) (val int, err error) | //sys	Fpathconf(fd int, name int) (val int, err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
|  | //sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) | ||||||
| //sys	Fstatfs(fd int, stat *Statfs_t) (err error) | //sys	Fstatfs(fd int, stat *Statfs_t) (err error) | ||||||
| //sys	Fsync(fd int) (err error) | //sys	Fsync(fd int) (err error) | ||||||
| //sys	Ftruncate(fd int, length int64) (err error) | //sys	Ftruncate(fd int, length int64) (err error) | ||||||
| @@ -135,6 +223,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| //sysnb	Getppid() (ppid int) | //sysnb	Getppid() (ppid int) | ||||||
| //sys	Getpriority(which int, who int) (prio int, err error) | //sys	Getpriority(which int, who int) (prio int, err error) | ||||||
| //sysnb	Getrlimit(which int, lim *Rlimit) (err error) | //sysnb	Getrlimit(which int, lim *Rlimit) (err error) | ||||||
|  | //sysnb	Getrtable() (rtable int, err error) | ||||||
| //sysnb	Getrusage(who int, rusage *Rusage) (err error) | //sysnb	Getrusage(who int, rusage *Rusage) (err error) | ||||||
| //sysnb	Getsid(pid int) (sid int, err error) | //sysnb	Getsid(pid int) (sid int, err error) | ||||||
| //sysnb	Gettimeofday(tv *Timeval) (err error) | //sysnb	Gettimeofday(tv *Timeval) (err error) | ||||||
| @@ -172,6 +261,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| //sysnb	Setresgid(rgid int, egid int, sgid int) (err error) | //sysnb	Setresgid(rgid int, egid int, sgid int) (err error) | ||||||
| //sysnb	Setresuid(ruid int, euid int, suid int) (err error) | //sysnb	Setresuid(ruid int, euid int, suid int) (err error) | ||||||
| //sysnb	Setrlimit(which int, lim *Rlimit) (err error) | //sysnb	Setrlimit(which int, lim *Rlimit) (err error) | ||||||
|  | //sysnb	Setrtable(rtable int) (err error) | ||||||
| //sysnb	Setsid() (pid int, err error) | //sysnb	Setsid() (pid int, err error) | ||||||
| //sysnb	Settimeofday(tp *Timeval) (err error) | //sysnb	Settimeofday(tp *Timeval) (err error) | ||||||
| //sysnb	Setuid(uid int) (err error) | //sysnb	Setuid(uid int) (err error) | ||||||
| @@ -220,9 +310,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| // getlogin | // getlogin | ||||||
| // getresgid | // getresgid | ||||||
| // getresuid | // getresuid | ||||||
| // getrtable |  | ||||||
| // getthrid | // getthrid | ||||||
| // ioctl |  | ||||||
| // ktrace | // ktrace | ||||||
| // lfs_bmapv | // lfs_bmapv | ||||||
| // lfs_markv | // lfs_markv | ||||||
| @@ -243,7 +331,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| // nfssvc | // nfssvc | ||||||
| // nnpfspioctl | // nnpfspioctl | ||||||
| // openat | // openat | ||||||
| // poll |  | ||||||
| // preadv | // preadv | ||||||
| // profil | // profil | ||||||
| // pwritev | // pwritev | ||||||
| @@ -258,7 +345,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||||||
| // semop | // semop | ||||||
| // setgroups | // setgroups | ||||||
| // setitimer | // setitimer | ||||||
| // setrtable |  | ||||||
| // setsockopt | // setsockopt | ||||||
| // shmat | // shmat | ||||||
| // shmctl | // shmctl | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,19 +6,12 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int64(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,19 +6,12 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: usec} | ||||||
| 	tv.Usec = nsec % 1e9 / 1e3 |  | ||||||
| 	tv.Sec = nsec / 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
| @@ -38,3 +31,7 @@ func (msghdr *Msghdr) SetControllen(length int) { | |||||||
| func (cmsg *Cmsghdr) SetLen(length int) { | func (cmsg *Cmsghdr) SetLen(length int) { | ||||||
| 	cmsg.Len = uint32(length) | 	cmsg.Len = uint32(length) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions | ||||||
|  | // of openbsd/amd64 the syscall is called sysctl instead of __sysctl. | ||||||
|  | const SYS___SYSCTL = SYS_SYSCTL | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,19 +6,12 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: int32(nsec)} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = int64(nsec / 1e9) |  | ||||||
| 	ts.Nsec = int32(nsec % 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: int32(usec)} | ||||||
| 	tv.Usec = int32(nsec % 1e9 / 1e3) |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||||
|   | |||||||
							
								
								
									
										75
									
								
								vendor/golang.org/x/sys/unix/syscall_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										75
									
								
								vendor/golang.org/x/sys/unix/syscall_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -23,6 +23,7 @@ type syscallFunc uintptr | |||||||
| func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) | func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) | ||||||
| func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) | func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) | ||||||
|  |  | ||||||
|  | // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. | ||||||
| type SockaddrDatalink struct { | type SockaddrDatalink struct { | ||||||
| 	Family uint16 | 	Family uint16 | ||||||
| 	Index  uint16 | 	Index  uint16 | ||||||
| @@ -34,31 +35,6 @@ type SockaddrDatalink struct { | |||||||
| 	raw    RawSockaddrDatalink | 	raw    RawSockaddrDatalink | ||||||
| } | } | ||||||
|  |  | ||||||
| func clen(n []byte) int { |  | ||||||
| 	for i := 0; i < len(n); i++ { |  | ||||||
| 		if n[i] == 0 { |  | ||||||
| 			return i |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return len(n) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntIno(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntReclen(buf []byte) (uint64, bool) { |  | ||||||
| 	return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func direntNamlen(buf []byte) (uint64, bool) { |  | ||||||
| 	reclen, ok := direntReclen(buf) |  | ||||||
| 	if !ok { |  | ||||||
| 		return 0, false |  | ||||||
| 	} |  | ||||||
| 	return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true |  | ||||||
| } |  | ||||||
|  |  | ||||||
| //sysnb	pipe(p *[2]_C_int) (n int, err error) | //sysnb	pipe(p *[2]_C_int) (n int, err error) | ||||||
|  |  | ||||||
| func Pipe(p []int) (err error) { | func Pipe(p []int) (err error) { | ||||||
| @@ -136,7 +112,19 @@ func Getsockname(fd int) (sa Sockaddr, err error) { | |||||||
| 	if err = getsockname(fd, &rsa, &len); err != nil { | 	if err = getsockname(fd, &rsa, &len); err != nil { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	return anyToSockaddr(&rsa) | 	return anyToSockaddr(fd, &rsa) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetsockoptString returns the string value of the socket option opt for the | ||||||
|  | // socket associated with fd at the given socket level. | ||||||
|  | func GetsockoptString(fd, level, opt int) (string, error) { | ||||||
|  | 	buf := make([]byte, 256) | ||||||
|  | 	vallen := _Socklen(len(buf)) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	return string(buf[:vallen-1]), nil | ||||||
| } | } | ||||||
|  |  | ||||||
| const ImplementsGetwd = true | const ImplementsGetwd = true | ||||||
| @@ -166,7 +154,7 @@ func Getwd() (wd string, err error) { | |||||||
|  |  | ||||||
| func Getgroups() (gids []int, err error) { | func Getgroups() (gids []int, err error) { | ||||||
| 	n, err := getgroups(0, nil) | 	n, err := getgroups(0, nil) | ||||||
| 	// Check for error and sanity check group count.  Newer versions of | 	// Check for error and sanity check group count. Newer versions of | ||||||
| 	// Solaris allow up to 1024 (NGROUPS_MAX). | 	// Solaris allow up to 1024 (NGROUPS_MAX). | ||||||
| 	if n < 0 || n > 1024 { | 	if n < 0 || n > 1024 { | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| @@ -324,6 +312,16 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { | |||||||
|  |  | ||||||
| //sys	fcntl(fd int, cmd int, arg int) (val int, err error) | //sys	fcntl(fd int, cmd int, arg int) (val int, err error) | ||||||
|  |  | ||||||
|  | // FcntlInt performs a fcntl syscall on fd with the provided command and argument. | ||||||
|  | func FcntlInt(fd uintptr, cmd, arg int) (int, error) { | ||||||
|  | 	valptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) | ||||||
|  | 	var err error | ||||||
|  | 	if errno != 0 { | ||||||
|  | 		err = errno | ||||||
|  | 	} | ||||||
|  | 	return int(valptr), err | ||||||
|  | } | ||||||
|  |  | ||||||
| // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. | ||||||
| func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { | ||||||
| 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) | 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) | ||||||
| @@ -350,7 +348,7 @@ func Futimesat(dirfd int, path string, tv []Timeval) error { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Solaris doesn't have an futimes function because it allows NULL to be | // Solaris doesn't have an futimes function because it allows NULL to be | ||||||
| // specified as the path for futimesat.  However, Go doesn't like | // specified as the path for futimesat. However, Go doesn't like | ||||||
| // NULL-style string interfaces, so this simple wrapper is provided. | // NULL-style string interfaces, so this simple wrapper is provided. | ||||||
| func Futimes(fd int, tv []Timeval) error { | func Futimes(fd int, tv []Timeval) error { | ||||||
| 	if tv == nil { | 	if tv == nil { | ||||||
| @@ -362,7 +360,7 @@ func Futimes(fd int, tv []Timeval) error { | |||||||
| 	return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) | 	return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) | ||||||
| } | } | ||||||
|  |  | ||||||
| func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { | func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { | ||||||
| 	switch rsa.Addr.Family { | 	switch rsa.Addr.Family { | ||||||
| 	case AF_UNIX: | 	case AF_UNIX: | ||||||
| 		pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) | 		pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) | ||||||
| @@ -413,7 +411,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { | |||||||
| 	if nfd == -1 { | 	if nfd == -1 { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	sa, err = anyToSockaddr(&rsa) | 	sa, err = anyToSockaddr(fd, &rsa) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		Close(nfd) | 		Close(nfd) | ||||||
| 		nfd = 0 | 		nfd = 0 | ||||||
| @@ -450,7 +448,7 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from | |||||||
| 	oobn = int(msg.Accrightslen) | 	oobn = int(msg.Accrightslen) | ||||||
| 	// source address is only specified if the socket is unconnected | 	// source address is only specified if the socket is unconnected | ||||||
| 	if rsa.Addr.Family != AF_UNSPEC { | 	if rsa.Addr.Family != AF_UNSPEC { | ||||||
| 		from, err = anyToSockaddr(&rsa) | 		from, err = anyToSockaddr(fd, &rsa) | ||||||
| 	} | 	} | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
| @@ -578,6 +576,15 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) { | |||||||
| 	return &value, err | 	return &value, err | ||||||
| } | } | ||||||
|  |  | ||||||
|  | //sys   poll(fds *PollFd, nfds int, timeout int) (n int, err error) | ||||||
|  |  | ||||||
|  | func Poll(fds []PollFd, timeout int) (n int, err error) { | ||||||
|  | 	if len(fds) == 0 { | ||||||
|  | 		return poll(nil, 0, timeout) | ||||||
|  | 	} | ||||||
|  | 	return poll(&fds[0], len(fds), timeout) | ||||||
|  | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Exposed directly |  * Exposed directly | ||||||
|  */ |  */ | ||||||
| @@ -592,15 +599,17 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) { | |||||||
| //sys	Dup(fd int) (nfd int, err error) | //sys	Dup(fd int) (nfd int, err error) | ||||||
| //sys	Dup2(oldfd int, newfd int) (err error) | //sys	Dup2(oldfd int, newfd int) (err error) | ||||||
| //sys	Exit(code int) | //sys	Exit(code int) | ||||||
|  | //sys	Faccessat(dirfd int, path string, mode uint32, flags int) (err error) | ||||||
| //sys	Fchdir(fd int) (err error) | //sys	Fchdir(fd int) (err error) | ||||||
| //sys	Fchmod(fd int, mode uint32) (err error) | //sys	Fchmod(fd int, mode uint32) (err error) | ||||||
| //sys	Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) | //sys	Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) | ||||||
| //sys	Fchown(fd int, uid int, gid int) (err error) | //sys	Fchown(fd int, uid int, gid int) (err error) | ||||||
| //sys	Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) | //sys	Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) | ||||||
| //sys	Fdatasync(fd int) (err error) | //sys	Fdatasync(fd int) (err error) | ||||||
| //sys Flock(fd int, how int) (err error) | //sys	Flock(fd int, how int) (err error) | ||||||
| //sys	Fpathconf(fd int, name int) (val int, err error) | //sys	Fpathconf(fd int, name int) (val int, err error) | ||||||
| //sys	Fstat(fd int, stat *Stat_t) (err error) | //sys	Fstat(fd int, stat *Stat_t) (err error) | ||||||
|  | //sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) | ||||||
| //sys	Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) | //sys	Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) | ||||||
| //sys	Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) | //sys	Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) | ||||||
| //sysnb	Getgid() (gid int) | //sysnb	Getgid() (gid int) | ||||||
| @@ -646,6 +655,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) { | |||||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) | //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) | ||||||
| //sys	Rmdir(path string) (err error) | //sys	Rmdir(path string) (err error) | ||||||
| //sys	Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek | //sys	Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek | ||||||
|  | //sys	Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) | ||||||
| //sysnb	Setegid(egid int) (err error) | //sysnb	Setegid(egid int) (err error) | ||||||
| //sysnb	Seteuid(euid int) (err error) | //sysnb	Seteuid(euid int) (err error) | ||||||
| //sysnb	Setgid(gid int) (err error) | //sysnb	Setgid(gid int) (err error) | ||||||
| @@ -677,6 +687,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) { | |||||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect | //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect | ||||||
| //sys	mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) | //sys	mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) | ||||||
| //sys	munmap(addr uintptr, length uintptr) (err error) | //sys	munmap(addr uintptr, length uintptr) (err error) | ||||||
|  | //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile | ||||||
| //sys	sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto | //sys	sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto | ||||||
| //sys	socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket | //sys	socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket | ||||||
| //sysnb	socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair | //sysnb	socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,19 +6,12 @@ | |||||||
|  |  | ||||||
| package unix | package unix | ||||||
|  |  | ||||||
| func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | func setTimespec(sec, nsec int64) Timespec { | ||||||
|  | 	return Timespec{Sec: sec, Nsec: nsec} | ||||||
| func NsecToTimespec(nsec int64) (ts Timespec) { |  | ||||||
| 	ts.Sec = nsec / 1e9 |  | ||||||
| 	ts.Nsec = nsec % 1e9 |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func NsecToTimeval(nsec int64) (tv Timeval) { | func setTimeval(sec, usec int64) Timeval { | ||||||
| 	nsec += 999 // round up to microsecond | 	return Timeval{Sec: sec, Usec: usec} | ||||||
| 	tv.Usec = nsec % 1e9 / 1e3 |  | ||||||
| 	tv.Sec = int64(nsec / 1e9) |  | ||||||
| 	return |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func (iov *Iovec) SetLen(length int) { | func (iov *Iovec) SetLen(length int) { | ||||||
| @@ -28,8 +21,3 @@ func (iov *Iovec) SetLen(length int) { | |||||||
| func (cmsg *Cmsghdr) SetLen(length int) { | func (cmsg *Cmsghdr) SetLen(length int) { | ||||||
| 	cmsg.Len = uint32(length) | 	cmsg.Len = uint32(length) | ||||||
| } | } | ||||||
|  |  | ||||||
| func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { |  | ||||||
| 	// TODO(aram): implement this, see issue 5847. |  | ||||||
| 	panic("unimplemented") |  | ||||||
| } |  | ||||||
|   | |||||||
							
								
								
									
										105
									
								
								vendor/golang.org/x/sys/unix/syscall_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										105
									
								
								vendor/golang.org/x/sys/unix/syscall_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,7 +7,9 @@ | |||||||
| package unix | package unix | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"bytes" | ||||||
| 	"runtime" | 	"runtime" | ||||||
|  | 	"sort" | ||||||
| 	"sync" | 	"sync" | ||||||
| 	"syscall" | 	"syscall" | ||||||
| 	"unsafe" | 	"unsafe" | ||||||
| @@ -50,6 +52,37 @@ func errnoErr(e syscall.Errno) error { | |||||||
| 	return e | 	return e | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // ErrnoName returns the error name for error number e. | ||||||
|  | func ErrnoName(e syscall.Errno) string { | ||||||
|  | 	i := sort.Search(len(errorList), func(i int) bool { | ||||||
|  | 		return errorList[i].num >= e | ||||||
|  | 	}) | ||||||
|  | 	if i < len(errorList) && errorList[i].num == e { | ||||||
|  | 		return errorList[i].name | ||||||
|  | 	} | ||||||
|  | 	return "" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SignalName returns the signal name for signal number s. | ||||||
|  | func SignalName(s syscall.Signal) string { | ||||||
|  | 	i := sort.Search(len(signalList), func(i int) bool { | ||||||
|  | 		return signalList[i].num >= s | ||||||
|  | 	}) | ||||||
|  | 	if i < len(signalList) && signalList[i].num == s { | ||||||
|  | 		return signalList[i].name | ||||||
|  | 	} | ||||||
|  | 	return "" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. | ||||||
|  | func clen(n []byte) int { | ||||||
|  | 	i := bytes.IndexByte(n, 0) | ||||||
|  | 	if i == -1 { | ||||||
|  | 		i = len(n) | ||||||
|  | 	} | ||||||
|  | 	return i | ||||||
|  | } | ||||||
|  |  | ||||||
| // Mmap manager, for use by operating system-specific implementations. | // Mmap manager, for use by operating system-specific implementations. | ||||||
|  |  | ||||||
| type mmapper struct { | type mmapper struct { | ||||||
| @@ -138,16 +171,19 @@ func Write(fd int, p []byte) (n int, err error) { | |||||||
| // creation of IPv6 sockets to return EAFNOSUPPORT. | // creation of IPv6 sockets to return EAFNOSUPPORT. | ||||||
| var SocketDisableIPv6 bool | var SocketDisableIPv6 bool | ||||||
|  |  | ||||||
|  | // Sockaddr represents a socket address. | ||||||
| type Sockaddr interface { | type Sockaddr interface { | ||||||
| 	sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs | 	sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. | ||||||
| type SockaddrInet4 struct { | type SockaddrInet4 struct { | ||||||
| 	Port int | 	Port int | ||||||
| 	Addr [4]byte | 	Addr [4]byte | ||||||
| 	raw  RawSockaddrInet4 | 	raw  RawSockaddrInet4 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. | ||||||
| type SockaddrInet6 struct { | type SockaddrInet6 struct { | ||||||
| 	Port   int | 	Port   int | ||||||
| 	ZoneId uint32 | 	ZoneId uint32 | ||||||
| @@ -155,6 +191,7 @@ type SockaddrInet6 struct { | |||||||
| 	raw    RawSockaddrInet6 | 	raw    RawSockaddrInet6 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. | ||||||
| type SockaddrUnix struct { | type SockaddrUnix struct { | ||||||
| 	Name string | 	Name string | ||||||
| 	raw  RawSockaddrUnix | 	raw  RawSockaddrUnix | ||||||
| @@ -182,7 +219,14 @@ func Getpeername(fd int) (sa Sockaddr, err error) { | |||||||
| 	if err = getpeername(fd, &rsa, &len); err != nil { | 	if err = getpeername(fd, &rsa, &len); err != nil { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	return anyToSockaddr(&rsa) | 	return anyToSockaddr(fd, &rsa) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func GetsockoptByte(fd, level, opt int) (value byte, err error) { | ||||||
|  | 	var n byte | ||||||
|  | 	vallen := _Socklen(1) | ||||||
|  | 	err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) | ||||||
|  | 	return n, err | ||||||
| } | } | ||||||
|  |  | ||||||
| func GetsockoptInt(fd, level, opt int) (value int, err error) { | func GetsockoptInt(fd, level, opt int) (value int, err error) { | ||||||
| @@ -192,6 +236,54 @@ func GetsockoptInt(fd, level, opt int) (value int, err error) { | |||||||
| 	return int(n), err | 	return int(n), err | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { | ||||||
|  | 	vallen := _Socklen(4) | ||||||
|  | 	err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) | ||||||
|  | 	return value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { | ||||||
|  | 	var value IPMreq | ||||||
|  | 	vallen := _Socklen(SizeofIPMreq) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { | ||||||
|  | 	var value IPv6Mreq | ||||||
|  | 	vallen := _Socklen(SizeofIPv6Mreq) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { | ||||||
|  | 	var value IPv6MTUInfo | ||||||
|  | 	vallen := _Socklen(SizeofIPv6MTUInfo) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { | ||||||
|  | 	var value ICMPv6Filter | ||||||
|  | 	vallen := _Socklen(SizeofICMPv6Filter) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) | ||||||
|  | 	return &value, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func GetsockoptLinger(fd, level, opt int) (*Linger, error) { | ||||||
|  | 	var linger Linger | ||||||
|  | 	vallen := _Socklen(SizeofLinger) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) | ||||||
|  | 	return &linger, err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { | ||||||
|  | 	var tv Timeval | ||||||
|  | 	vallen := _Socklen(unsafe.Sizeof(tv)) | ||||||
|  | 	err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) | ||||||
|  | 	return &tv, err | ||||||
|  | } | ||||||
|  |  | ||||||
| func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { | func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { | ||||||
| 	var rsa RawSockaddrAny | 	var rsa RawSockaddrAny | ||||||
| 	var len _Socklen = SizeofSockaddrAny | 	var len _Socklen = SizeofSockaddrAny | ||||||
| @@ -199,7 +291,7 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { | |||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	if rsa.Addr.Family != AF_UNSPEC { | 	if rsa.Addr.Family != AF_UNSPEC { | ||||||
| 		from, err = anyToSockaddr(&rsa) | 		from, err = anyToSockaddr(fd, &rsa) | ||||||
| 	} | 	} | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
| @@ -291,3 +383,12 @@ func SetNonblock(fd int, nonblocking bool) (err error) { | |||||||
| 	_, err = fcntl(fd, F_SETFL, flag) | 	_, err = fcntl(fd, F_SETFL, flag) | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // Exec calls execve(2), which replaces the calling executable in the process | ||||||
|  | // tree. argv0 should be the full path to an executable ("/bin/ls") and the | ||||||
|  | // executable name should also be the first argument in argv (["ls", "-l"]). | ||||||
|  | // envv are the environment variables that should be passed to the new | ||||||
|  | // process (["USER=go", "PWD=/tmp"]). | ||||||
|  | func Exec(argv0 string, argv []string, envv []string) error { | ||||||
|  | 	return syscall.Exec(argv0, argv, envv) | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										82
									
								
								vendor/golang.org/x/sys/unix/timestruct.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								vendor/golang.org/x/sys/unix/timestruct.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,82 @@ | |||||||
|  | // Copyright 2017 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 file. | ||||||
|  |  | ||||||
|  | // +build darwin dragonfly freebsd linux netbsd openbsd solaris | ||||||
|  |  | ||||||
|  | package unix | ||||||
|  |  | ||||||
|  | import "time" | ||||||
|  |  | ||||||
|  | // TimespecToNsec converts a Timespec value into a number of | ||||||
|  | // nanoseconds since the Unix epoch. | ||||||
|  | func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } | ||||||
|  |  | ||||||
|  | // NsecToTimespec takes a number of nanoseconds since the Unix epoch | ||||||
|  | // and returns the corresponding Timespec value. | ||||||
|  | func NsecToTimespec(nsec int64) Timespec { | ||||||
|  | 	sec := nsec / 1e9 | ||||||
|  | 	nsec = nsec % 1e9 | ||||||
|  | 	if nsec < 0 { | ||||||
|  | 		nsec += 1e9 | ||||||
|  | 		sec-- | ||||||
|  | 	} | ||||||
|  | 	return setTimespec(sec, nsec) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // TimeToTimespec converts t into a Timespec. | ||||||
|  | // On some 32-bit systems the range of valid Timespec values are smaller | ||||||
|  | // than that of time.Time values.  So if t is out of the valid range of | ||||||
|  | // Timespec, it returns a zero Timespec and ERANGE. | ||||||
|  | func TimeToTimespec(t time.Time) (Timespec, error) { | ||||||
|  | 	sec := t.Unix() | ||||||
|  | 	nsec := int64(t.Nanosecond()) | ||||||
|  | 	ts := setTimespec(sec, nsec) | ||||||
|  |  | ||||||
|  | 	// Currently all targets have either int32 or int64 for Timespec.Sec. | ||||||
|  | 	// If there were a new target with floating point type for it, we have | ||||||
|  | 	// to consider the rounding error. | ||||||
|  | 	if int64(ts.Sec) != sec { | ||||||
|  | 		return Timespec{}, ERANGE | ||||||
|  | 	} | ||||||
|  | 	return ts, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // TimevalToNsec converts a Timeval value into a number of nanoseconds | ||||||
|  | // since the Unix epoch. | ||||||
|  | func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } | ||||||
|  |  | ||||||
|  | // NsecToTimeval takes a number of nanoseconds since the Unix epoch | ||||||
|  | // and returns the corresponding Timeval value. | ||||||
|  | func NsecToTimeval(nsec int64) Timeval { | ||||||
|  | 	nsec += 999 // round up to microsecond | ||||||
|  | 	usec := nsec % 1e9 / 1e3 | ||||||
|  | 	sec := nsec / 1e9 | ||||||
|  | 	if usec < 0 { | ||||||
|  | 		usec += 1e6 | ||||||
|  | 		sec-- | ||||||
|  | 	} | ||||||
|  | 	return setTimeval(sec, usec) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Unix returns ts as the number of seconds and nanoseconds elapsed since the | ||||||
|  | // Unix epoch. | ||||||
|  | func (ts *Timespec) Unix() (sec int64, nsec int64) { | ||||||
|  | 	return int64(ts.Sec), int64(ts.Nsec) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Unix returns tv as the number of seconds and nanoseconds elapsed since the | ||||||
|  | // Unix epoch. | ||||||
|  | func (tv *Timeval) Unix() (sec int64, nsec int64) { | ||||||
|  | 	return int64(tv.Sec), int64(tv.Usec) * 1000 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Nano returns ts as the number of nanoseconds elapsed since the Unix epoch. | ||||||
|  | func (ts *Timespec) Nano() int64 { | ||||||
|  | 	return int64(ts.Sec)*1e9 + int64(ts.Nsec) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Nano returns tv as the number of nanoseconds elapsed since the Unix epoch. | ||||||
|  | func (tv *Timeval) Nano() int64 { | ||||||
|  | 	return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 | ||||||
|  | } | ||||||
							
								
								
									
										388
									
								
								vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										388
									
								
								vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -49,6 +49,86 @@ const ( | |||||||
| 	AF_UNSPEC                         = 0x0 | 	AF_UNSPEC                         = 0x0 | ||||||
| 	AF_UTUN                           = 0x26 | 	AF_UTUN                           = 0x26 | ||||||
| 	ALTWERASE                         = 0x200 | 	ALTWERASE                         = 0x200 | ||||||
|  | 	ATTR_BIT_MAP_COUNT                = 0x5 | ||||||
|  | 	ATTR_CMN_ACCESSMASK               = 0x20000 | ||||||
|  | 	ATTR_CMN_ACCTIME                  = 0x1000 | ||||||
|  | 	ATTR_CMN_ADDEDTIME                = 0x10000000 | ||||||
|  | 	ATTR_CMN_BKUPTIME                 = 0x2000 | ||||||
|  | 	ATTR_CMN_CHGTIME                  = 0x800 | ||||||
|  | 	ATTR_CMN_CRTIME                   = 0x200 | ||||||
|  | 	ATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000 | ||||||
|  | 	ATTR_CMN_DEVID                    = 0x2 | ||||||
|  | 	ATTR_CMN_DOCUMENT_ID              = 0x100000 | ||||||
|  | 	ATTR_CMN_ERROR                    = 0x20000000 | ||||||
|  | 	ATTR_CMN_EXTENDED_SECURITY        = 0x400000 | ||||||
|  | 	ATTR_CMN_FILEID                   = 0x2000000 | ||||||
|  | 	ATTR_CMN_FLAGS                    = 0x40000 | ||||||
|  | 	ATTR_CMN_FNDRINFO                 = 0x4000 | ||||||
|  | 	ATTR_CMN_FSID                     = 0x4 | ||||||
|  | 	ATTR_CMN_FULLPATH                 = 0x8000000 | ||||||
|  | 	ATTR_CMN_GEN_COUNT                = 0x80000 | ||||||
|  | 	ATTR_CMN_GRPID                    = 0x10000 | ||||||
|  | 	ATTR_CMN_GRPUUID                  = 0x1000000 | ||||||
|  | 	ATTR_CMN_MODTIME                  = 0x400 | ||||||
|  | 	ATTR_CMN_NAME                     = 0x1 | ||||||
|  | 	ATTR_CMN_NAMEDATTRCOUNT           = 0x80000 | ||||||
|  | 	ATTR_CMN_NAMEDATTRLIST            = 0x100000 | ||||||
|  | 	ATTR_CMN_OBJID                    = 0x20 | ||||||
|  | 	ATTR_CMN_OBJPERMANENTID           = 0x40 | ||||||
|  | 	ATTR_CMN_OBJTAG                   = 0x10 | ||||||
|  | 	ATTR_CMN_OBJTYPE                  = 0x8 | ||||||
|  | 	ATTR_CMN_OWNERID                  = 0x8000 | ||||||
|  | 	ATTR_CMN_PARENTID                 = 0x4000000 | ||||||
|  | 	ATTR_CMN_PAROBJID                 = 0x80 | ||||||
|  | 	ATTR_CMN_RETURNED_ATTRS           = 0x80000000 | ||||||
|  | 	ATTR_CMN_SCRIPT                   = 0x100 | ||||||
|  | 	ATTR_CMN_SETMASK                  = 0x41c7ff00 | ||||||
|  | 	ATTR_CMN_USERACCESS               = 0x200000 | ||||||
|  | 	ATTR_CMN_UUID                     = 0x800000 | ||||||
|  | 	ATTR_CMN_VALIDMASK                = 0xffffffff | ||||||
|  | 	ATTR_CMN_VOLSETMASK               = 0x6700 | ||||||
|  | 	ATTR_FILE_ALLOCSIZE               = 0x4 | ||||||
|  | 	ATTR_FILE_CLUMPSIZE               = 0x10 | ||||||
|  | 	ATTR_FILE_DATAALLOCSIZE           = 0x400 | ||||||
|  | 	ATTR_FILE_DATAEXTENTS             = 0x800 | ||||||
|  | 	ATTR_FILE_DATALENGTH              = 0x200 | ||||||
|  | 	ATTR_FILE_DEVTYPE                 = 0x20 | ||||||
|  | 	ATTR_FILE_FILETYPE                = 0x40 | ||||||
|  | 	ATTR_FILE_FORKCOUNT               = 0x80 | ||||||
|  | 	ATTR_FILE_FORKLIST                = 0x100 | ||||||
|  | 	ATTR_FILE_IOBLOCKSIZE             = 0x8 | ||||||
|  | 	ATTR_FILE_LINKCOUNT               = 0x1 | ||||||
|  | 	ATTR_FILE_RSRCALLOCSIZE           = 0x2000 | ||||||
|  | 	ATTR_FILE_RSRCEXTENTS             = 0x4000 | ||||||
|  | 	ATTR_FILE_RSRCLENGTH              = 0x1000 | ||||||
|  | 	ATTR_FILE_SETMASK                 = 0x20 | ||||||
|  | 	ATTR_FILE_TOTALSIZE               = 0x2 | ||||||
|  | 	ATTR_FILE_VALIDMASK               = 0x37ff | ||||||
|  | 	ATTR_VOL_ALLOCATIONCLUMP          = 0x40 | ||||||
|  | 	ATTR_VOL_ATTRIBUTES               = 0x40000000 | ||||||
|  | 	ATTR_VOL_CAPABILITIES             = 0x20000 | ||||||
|  | 	ATTR_VOL_DIRCOUNT                 = 0x400 | ||||||
|  | 	ATTR_VOL_ENCODINGSUSED            = 0x10000 | ||||||
|  | 	ATTR_VOL_FILECOUNT                = 0x200 | ||||||
|  | 	ATTR_VOL_FSTYPE                   = 0x1 | ||||||
|  | 	ATTR_VOL_INFO                     = 0x80000000 | ||||||
|  | 	ATTR_VOL_IOBLOCKSIZE              = 0x80 | ||||||
|  | 	ATTR_VOL_MAXOBJCOUNT              = 0x800 | ||||||
|  | 	ATTR_VOL_MINALLOCATION            = 0x20 | ||||||
|  | 	ATTR_VOL_MOUNTEDDEVICE            = 0x8000 | ||||||
|  | 	ATTR_VOL_MOUNTFLAGS               = 0x4000 | ||||||
|  | 	ATTR_VOL_MOUNTPOINT               = 0x1000 | ||||||
|  | 	ATTR_VOL_NAME                     = 0x2000 | ||||||
|  | 	ATTR_VOL_OBJCOUNT                 = 0x100 | ||||||
|  | 	ATTR_VOL_QUOTA_SIZE               = 0x10000000 | ||||||
|  | 	ATTR_VOL_RESERVED_SIZE            = 0x20000000 | ||||||
|  | 	ATTR_VOL_SETMASK                  = 0x80002000 | ||||||
|  | 	ATTR_VOL_SIGNATURE                = 0x2 | ||||||
|  | 	ATTR_VOL_SIZE                     = 0x4 | ||||||
|  | 	ATTR_VOL_SPACEAVAIL               = 0x10 | ||||||
|  | 	ATTR_VOL_SPACEFREE                = 0x8 | ||||||
|  | 	ATTR_VOL_UUID                     = 0x40000 | ||||||
|  | 	ATTR_VOL_VALIDMASK                = 0xf007ffff | ||||||
| 	B0                                = 0x0 | 	B0                                = 0x0 | ||||||
| 	B110                              = 0x6e | 	B110                              = 0x6e | ||||||
| 	B115200                           = 0x1c200 | 	B115200                           = 0x1c200 | ||||||
| @@ -169,6 +249,8 @@ const ( | |||||||
| 	CSTOP                             = 0x13 | 	CSTOP                             = 0x13 | ||||||
| 	CSTOPB                            = 0x400 | 	CSTOPB                            = 0x400 | ||||||
| 	CSUSP                             = 0x1a | 	CSUSP                             = 0x1a | ||||||
|  | 	CTL_HW                            = 0x6 | ||||||
|  | 	CTL_KERN                          = 0x1 | ||||||
| 	CTL_MAXNAME                       = 0xc | 	CTL_MAXNAME                       = 0xc | ||||||
| 	CTL_NET                           = 0x4 | 	CTL_NET                           = 0x4 | ||||||
| 	DLT_A429                          = 0xb8 | 	DLT_A429                          = 0xb8 | ||||||
| @@ -390,6 +472,11 @@ const ( | |||||||
| 	FF1                               = 0x4000 | 	FF1                               = 0x4000 | ||||||
| 	FFDLY                             = 0x4000 | 	FFDLY                             = 0x4000 | ||||||
| 	FLUSHO                            = 0x800000 | 	FLUSHO                            = 0x800000 | ||||||
|  | 	FSOPT_ATTR_CMN_EXTENDED           = 0x20 | ||||||
|  | 	FSOPT_NOFOLLOW                    = 0x1 | ||||||
|  | 	FSOPT_NOINMEMUPDATE               = 0x2 | ||||||
|  | 	FSOPT_PACK_INVAL_ATTRS            = 0x8 | ||||||
|  | 	FSOPT_REPORT_FULLSIZE             = 0x4 | ||||||
| 	F_ADDFILESIGS                     = 0x3d | 	F_ADDFILESIGS                     = 0x3d | ||||||
| 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53 | 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53 | ||||||
| 	F_ADDFILESIGS_RETURN              = 0x61 | 	F_ADDFILESIGS_RETURN              = 0x61 | ||||||
| @@ -425,6 +512,7 @@ const ( | |||||||
| 	F_PATHPKG_CHECK                   = 0x34 | 	F_PATHPKG_CHECK                   = 0x34 | ||||||
| 	F_PEOFPOSMODE                     = 0x3 | 	F_PEOFPOSMODE                     = 0x3 | ||||||
| 	F_PREALLOCATE                     = 0x2a | 	F_PREALLOCATE                     = 0x2a | ||||||
|  | 	F_PUNCHHOLE                       = 0x63 | ||||||
| 	F_RDADVISE                        = 0x2c | 	F_RDADVISE                        = 0x2c | ||||||
| 	F_RDAHEAD                         = 0x2d | 	F_RDAHEAD                         = 0x2d | ||||||
| 	F_RDLCK                           = 0x1 | 	F_RDLCK                           = 0x1 | ||||||
| @@ -441,10 +529,12 @@ const ( | |||||||
| 	F_SINGLE_WRITER                   = 0x4c | 	F_SINGLE_WRITER                   = 0x4c | ||||||
| 	F_THAW_FS                         = 0x36 | 	F_THAW_FS                         = 0x36 | ||||||
| 	F_TRANSCODEKEY                    = 0x4b | 	F_TRANSCODEKEY                    = 0x4b | ||||||
|  | 	F_TRIM_ACTIVE_FILE                = 0x64 | ||||||
| 	F_UNLCK                           = 0x2 | 	F_UNLCK                           = 0x2 | ||||||
| 	F_VOLPOSMODE                      = 0x4 | 	F_VOLPOSMODE                      = 0x4 | ||||||
| 	F_WRLCK                           = 0x3 | 	F_WRLCK                           = 0x3 | ||||||
| 	HUPCL                             = 0x4000 | 	HUPCL                             = 0x4000 | ||||||
|  | 	HW_MACHINE                        = 0x1 | ||||||
| 	ICANON                            = 0x100 | 	ICANON                            = 0x100 | ||||||
| 	ICMP6_FILTER                      = 0x12 | 	ICMP6_FILTER                      = 0x12 | ||||||
| 	ICRNL                             = 0x100 | 	ICRNL                             = 0x100 | ||||||
| @@ -681,6 +771,7 @@ const ( | |||||||
| 	IPV6_FAITH                        = 0x1d | 	IPV6_FAITH                        = 0x1d | ||||||
| 	IPV6_FLOWINFO_MASK                = 0xffffff0f | 	IPV6_FLOWINFO_MASK                = 0xffffff0f | ||||||
| 	IPV6_FLOWLABEL_MASK               = 0xffff0f00 | 	IPV6_FLOWLABEL_MASK               = 0xffff0f00 | ||||||
|  | 	IPV6_FLOW_ECN_MASK                = 0x300 | ||||||
| 	IPV6_FRAGTTL                      = 0x3c | 	IPV6_FRAGTTL                      = 0x3c | ||||||
| 	IPV6_FW_ADD                       = 0x1e | 	IPV6_FW_ADD                       = 0x1e | ||||||
| 	IPV6_FW_DEL                       = 0x1f | 	IPV6_FW_DEL                       = 0x1f | ||||||
| @@ -771,6 +862,7 @@ const ( | |||||||
| 	IP_RECVOPTS                       = 0x5 | 	IP_RECVOPTS                       = 0x5 | ||||||
| 	IP_RECVPKTINFO                    = 0x1a | 	IP_RECVPKTINFO                    = 0x1a | ||||||
| 	IP_RECVRETOPTS                    = 0x6 | 	IP_RECVRETOPTS                    = 0x6 | ||||||
|  | 	IP_RECVTOS                        = 0x1b | ||||||
| 	IP_RECVTTL                        = 0x18 | 	IP_RECVTTL                        = 0x18 | ||||||
| 	IP_RETOPTS                        = 0x8 | 	IP_RETOPTS                        = 0x8 | ||||||
| 	IP_RF                             = 0x8000 | 	IP_RF                             = 0x8000 | ||||||
| @@ -789,6 +881,10 @@ const ( | |||||||
| 	IXANY                             = 0x800 | 	IXANY                             = 0x800 | ||||||
| 	IXOFF                             = 0x400 | 	IXOFF                             = 0x400 | ||||||
| 	IXON                              = 0x200 | 	IXON                              = 0x200 | ||||||
|  | 	KERN_HOSTNAME                     = 0xa | ||||||
|  | 	KERN_OSRELEASE                    = 0x2 | ||||||
|  | 	KERN_OSTYPE                       = 0x1 | ||||||
|  | 	KERN_VERSION                      = 0x4 | ||||||
| 	LOCK_EX                           = 0x2 | 	LOCK_EX                           = 0x2 | ||||||
| 	LOCK_NB                           = 0x4 | 	LOCK_NB                           = 0x4 | ||||||
| 	LOCK_SH                           = 0x1 | 	LOCK_SH                           = 0x1 | ||||||
| @@ -1377,6 +1473,12 @@ const ( | |||||||
| 	WORDSIZE                          = 0x20 | 	WORDSIZE                          = 0x20 | ||||||
| 	WSTOPPED                          = 0x8 | 	WSTOPPED                          = 0x8 | ||||||
| 	WUNTRACED                         = 0x2 | 	WUNTRACED                         = 0x2 | ||||||
|  | 	XATTR_CREATE                      = 0x2 | ||||||
|  | 	XATTR_NODEFAULT                   = 0x10 | ||||||
|  | 	XATTR_NOFOLLOW                    = 0x1 | ||||||
|  | 	XATTR_NOSECURITY                  = 0x8 | ||||||
|  | 	XATTR_REPLACE                     = 0x4 | ||||||
|  | 	XATTR_SHOWCOMPRESSION             = 0x20 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Errors | // Errors | ||||||
| @@ -1528,146 +1630,154 @@ const ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| // Error table | // Error table | ||||||
| var errors = [...]string{ | var errorList = [...]struct { | ||||||
| 	1:   "operation not permitted", | 	num  syscall.Errno | ||||||
| 	2:   "no such file or directory", | 	name string | ||||||
| 	3:   "no such process", | 	desc string | ||||||
| 	4:   "interrupted system call", | }{ | ||||||
| 	5:   "input/output error", | 	{1, "EPERM", "operation not permitted"}, | ||||||
| 	6:   "device not configured", | 	{2, "ENOENT", "no such file or directory"}, | ||||||
| 	7:   "argument list too long", | 	{3, "ESRCH", "no such process"}, | ||||||
| 	8:   "exec format error", | 	{4, "EINTR", "interrupted system call"}, | ||||||
| 	9:   "bad file descriptor", | 	{5, "EIO", "input/output error"}, | ||||||
| 	10:  "no child processes", | 	{6, "ENXIO", "device not configured"}, | ||||||
| 	11:  "resource deadlock avoided", | 	{7, "E2BIG", "argument list too long"}, | ||||||
| 	12:  "cannot allocate memory", | 	{8, "ENOEXEC", "exec format error"}, | ||||||
| 	13:  "permission denied", | 	{9, "EBADF", "bad file descriptor"}, | ||||||
| 	14:  "bad address", | 	{10, "ECHILD", "no child processes"}, | ||||||
| 	15:  "block device required", | 	{11, "EDEADLK", "resource deadlock avoided"}, | ||||||
| 	16:  "resource busy", | 	{12, "ENOMEM", "cannot allocate memory"}, | ||||||
| 	17:  "file exists", | 	{13, "EACCES", "permission denied"}, | ||||||
| 	18:  "cross-device link", | 	{14, "EFAULT", "bad address"}, | ||||||
| 	19:  "operation not supported by device", | 	{15, "ENOTBLK", "block device required"}, | ||||||
| 	20:  "not a directory", | 	{16, "EBUSY", "resource busy"}, | ||||||
| 	21:  "is a directory", | 	{17, "EEXIST", "file exists"}, | ||||||
| 	22:  "invalid argument", | 	{18, "EXDEV", "cross-device link"}, | ||||||
| 	23:  "too many open files in system", | 	{19, "ENODEV", "operation not supported by device"}, | ||||||
| 	24:  "too many open files", | 	{20, "ENOTDIR", "not a directory"}, | ||||||
| 	25:  "inappropriate ioctl for device", | 	{21, "EISDIR", "is a directory"}, | ||||||
| 	26:  "text file busy", | 	{22, "EINVAL", "invalid argument"}, | ||||||
| 	27:  "file too large", | 	{23, "ENFILE", "too many open files in system"}, | ||||||
| 	28:  "no space left on device", | 	{24, "EMFILE", "too many open files"}, | ||||||
| 	29:  "illegal seek", | 	{25, "ENOTTY", "inappropriate ioctl for device"}, | ||||||
| 	30:  "read-only file system", | 	{26, "ETXTBSY", "text file busy"}, | ||||||
| 	31:  "too many links", | 	{27, "EFBIG", "file too large"}, | ||||||
| 	32:  "broken pipe", | 	{28, "ENOSPC", "no space left on device"}, | ||||||
| 	33:  "numerical argument out of domain", | 	{29, "ESPIPE", "illegal seek"}, | ||||||
| 	34:  "result too large", | 	{30, "EROFS", "read-only file system"}, | ||||||
| 	35:  "resource temporarily unavailable", | 	{31, "EMLINK", "too many links"}, | ||||||
| 	36:  "operation now in progress", | 	{32, "EPIPE", "broken pipe"}, | ||||||
| 	37:  "operation already in progress", | 	{33, "EDOM", "numerical argument out of domain"}, | ||||||
| 	38:  "socket operation on non-socket", | 	{34, "ERANGE", "result too large"}, | ||||||
| 	39:  "destination address required", | 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||||
| 	40:  "message too long", | 	{36, "EINPROGRESS", "operation now in progress"}, | ||||||
| 	41:  "protocol wrong type for socket", | 	{37, "EALREADY", "operation already in progress"}, | ||||||
| 	42:  "protocol not available", | 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||||
| 	43:  "protocol not supported", | 	{39, "EDESTADDRREQ", "destination address required"}, | ||||||
| 	44:  "socket type not supported", | 	{40, "EMSGSIZE", "message too long"}, | ||||||
| 	45:  "operation not supported", | 	{41, "EPROTOTYPE", "protocol wrong type for socket"}, | ||||||
| 	46:  "protocol family not supported", | 	{42, "ENOPROTOOPT", "protocol not available"}, | ||||||
| 	47:  "address family not supported by protocol family", | 	{43, "EPROTONOSUPPORT", "protocol not supported"}, | ||||||
| 	48:  "address already in use", | 	{44, "ESOCKTNOSUPPORT", "socket type not supported"}, | ||||||
| 	49:  "can't assign requested address", | 	{45, "ENOTSUP", "operation not supported"}, | ||||||
| 	50:  "network is down", | 	{46, "EPFNOSUPPORT", "protocol family not supported"}, | ||||||
| 	51:  "network is unreachable", | 	{47, "EAFNOSUPPORT", "address family not supported by protocol family"}, | ||||||
| 	52:  "network dropped connection on reset", | 	{48, "EADDRINUSE", "address already in use"}, | ||||||
| 	53:  "software caused connection abort", | 	{49, "EADDRNOTAVAIL", "can't assign requested address"}, | ||||||
| 	54:  "connection reset by peer", | 	{50, "ENETDOWN", "network is down"}, | ||||||
| 	55:  "no buffer space available", | 	{51, "ENETUNREACH", "network is unreachable"}, | ||||||
| 	56:  "socket is already connected", | 	{52, "ENETRESET", "network dropped connection on reset"}, | ||||||
| 	57:  "socket is not connected", | 	{53, "ECONNABORTED", "software caused connection abort"}, | ||||||
| 	58:  "can't send after socket shutdown", | 	{54, "ECONNRESET", "connection reset by peer"}, | ||||||
| 	59:  "too many references: can't splice", | 	{55, "ENOBUFS", "no buffer space available"}, | ||||||
| 	60:  "operation timed out", | 	{56, "EISCONN", "socket is already connected"}, | ||||||
| 	61:  "connection refused", | 	{57, "ENOTCONN", "socket is not connected"}, | ||||||
| 	62:  "too many levels of symbolic links", | 	{58, "ESHUTDOWN", "can't send after socket shutdown"}, | ||||||
| 	63:  "file name too long", | 	{59, "ETOOMANYREFS", "too many references: can't splice"}, | ||||||
| 	64:  "host is down", | 	{60, "ETIMEDOUT", "operation timed out"}, | ||||||
| 	65:  "no route to host", | 	{61, "ECONNREFUSED", "connection refused"}, | ||||||
| 	66:  "directory not empty", | 	{62, "ELOOP", "too many levels of symbolic links"}, | ||||||
| 	67:  "too many processes", | 	{63, "ENAMETOOLONG", "file name too long"}, | ||||||
| 	68:  "too many users", | 	{64, "EHOSTDOWN", "host is down"}, | ||||||
| 	69:  "disc quota exceeded", | 	{65, "EHOSTUNREACH", "no route to host"}, | ||||||
| 	70:  "stale NFS file handle", | 	{66, "ENOTEMPTY", "directory not empty"}, | ||||||
| 	71:  "too many levels of remote in path", | 	{67, "EPROCLIM", "too many processes"}, | ||||||
| 	72:  "RPC struct is bad", | 	{68, "EUSERS", "too many users"}, | ||||||
| 	73:  "RPC version wrong", | 	{69, "EDQUOT", "disc quota exceeded"}, | ||||||
| 	74:  "RPC prog. not avail", | 	{70, "ESTALE", "stale NFS file handle"}, | ||||||
| 	75:  "program version wrong", | 	{71, "EREMOTE", "too many levels of remote in path"}, | ||||||
| 	76:  "bad procedure for program", | 	{72, "EBADRPC", "RPC struct is bad"}, | ||||||
| 	77:  "no locks available", | 	{73, "ERPCMISMATCH", "RPC version wrong"}, | ||||||
| 	78:  "function not implemented", | 	{74, "EPROGUNAVAIL", "RPC prog. not avail"}, | ||||||
| 	79:  "inappropriate file type or format", | 	{75, "EPROGMISMATCH", "program version wrong"}, | ||||||
| 	80:  "authentication error", | 	{76, "EPROCUNAVAIL", "bad procedure for program"}, | ||||||
| 	81:  "need authenticator", | 	{77, "ENOLCK", "no locks available"}, | ||||||
| 	82:  "device power is off", | 	{78, "ENOSYS", "function not implemented"}, | ||||||
| 	83:  "device error", | 	{79, "EFTYPE", "inappropriate file type or format"}, | ||||||
| 	84:  "value too large to be stored in data type", | 	{80, "EAUTH", "authentication error"}, | ||||||
| 	85:  "bad executable (or shared library)", | 	{81, "ENEEDAUTH", "need authenticator"}, | ||||||
| 	86:  "bad CPU type in executable", | 	{82, "EPWROFF", "device power is off"}, | ||||||
| 	87:  "shared library version mismatch", | 	{83, "EDEVERR", "device error"}, | ||||||
| 	88:  "malformed Mach-o file", | 	{84, "EOVERFLOW", "value too large to be stored in data type"}, | ||||||
| 	89:  "operation canceled", | 	{85, "EBADEXEC", "bad executable (or shared library)"}, | ||||||
| 	90:  "identifier removed", | 	{86, "EBADARCH", "bad CPU type in executable"}, | ||||||
| 	91:  "no message of desired type", | 	{87, "ESHLIBVERS", "shared library version mismatch"}, | ||||||
| 	92:  "illegal byte sequence", | 	{88, "EBADMACHO", "malformed Mach-o file"}, | ||||||
| 	93:  "attribute not found", | 	{89, "ECANCELED", "operation canceled"}, | ||||||
| 	94:  "bad message", | 	{90, "EIDRM", "identifier removed"}, | ||||||
| 	95:  "EMULTIHOP (Reserved)", | 	{91, "ENOMSG", "no message of desired type"}, | ||||||
| 	96:  "no message available on STREAM", | 	{92, "EILSEQ", "illegal byte sequence"}, | ||||||
| 	97:  "ENOLINK (Reserved)", | 	{93, "ENOATTR", "attribute not found"}, | ||||||
| 	98:  "no STREAM resources", | 	{94, "EBADMSG", "bad message"}, | ||||||
| 	99:  "not a STREAM", | 	{95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, | ||||||
| 	100: "protocol error", | 	{96, "ENODATA", "no message available on STREAM"}, | ||||||
| 	101: "STREAM ioctl timeout", | 	{97, "ENOLINK", "ENOLINK (Reserved)"}, | ||||||
| 	102: "operation not supported on socket", | 	{98, "ENOSR", "no STREAM resources"}, | ||||||
| 	103: "policy not found", | 	{99, "ENOSTR", "not a STREAM"}, | ||||||
| 	104: "state not recoverable", | 	{100, "EPROTO", "protocol error"}, | ||||||
| 	105: "previous owner died", | 	{101, "ETIME", "STREAM ioctl timeout"}, | ||||||
| 	106: "interface output queue is full", | 	{102, "EOPNOTSUPP", "operation not supported on socket"}, | ||||||
|  | 	{103, "ENOPOLICY", "policy not found"}, | ||||||
|  | 	{104, "ENOTRECOVERABLE", "state not recoverable"}, | ||||||
|  | 	{105, "EOWNERDEAD", "previous owner died"}, | ||||||
|  | 	{106, "EQFULL", "interface output queue is full"}, | ||||||
| } | } | ||||||
|  |  | ||||||
| // Signal table | // Signal table | ||||||
| var signals = [...]string{ | var signalList = [...]struct { | ||||||
| 	1:  "hangup", | 	num  syscall.Signal | ||||||
| 	2:  "interrupt", | 	name string | ||||||
| 	3:  "quit", | 	desc string | ||||||
| 	4:  "illegal instruction", | }{ | ||||||
| 	5:  "trace/BPT trap", | 	{1, "SIGHUP", "hangup"}, | ||||||
| 	6:  "abort trap", | 	{2, "SIGINT", "interrupt"}, | ||||||
| 	7:  "EMT trap", | 	{3, "SIGQUIT", "quit"}, | ||||||
| 	8:  "floating point exception", | 	{4, "SIGILL", "illegal instruction"}, | ||||||
| 	9:  "killed", | 	{5, "SIGTRAP", "trace/BPT trap"}, | ||||||
| 	10: "bus error", | 	{6, "SIGABRT", "abort trap"}, | ||||||
| 	11: "segmentation fault", | 	{7, "SIGEMT", "EMT trap"}, | ||||||
| 	12: "bad system call", | 	{8, "SIGFPE", "floating point exception"}, | ||||||
| 	13: "broken pipe", | 	{9, "SIGKILL", "killed"}, | ||||||
| 	14: "alarm clock", | 	{10, "SIGBUS", "bus error"}, | ||||||
| 	15: "terminated", | 	{11, "SIGSEGV", "segmentation fault"}, | ||||||
| 	16: "urgent I/O condition", | 	{12, "SIGSYS", "bad system call"}, | ||||||
| 	17: "suspended (signal)", | 	{13, "SIGPIPE", "broken pipe"}, | ||||||
| 	18: "suspended", | 	{14, "SIGALRM", "alarm clock"}, | ||||||
| 	19: "continued", | 	{15, "SIGTERM", "terminated"}, | ||||||
| 	20: "child exited", | 	{16, "SIGURG", "urgent I/O condition"}, | ||||||
| 	21: "stopped (tty input)", | 	{17, "SIGSTOP", "suspended (signal)"}, | ||||||
| 	22: "stopped (tty output)", | 	{18, "SIGTSTP", "suspended"}, | ||||||
| 	23: "I/O possible", | 	{19, "SIGCONT", "continued"}, | ||||||
| 	24: "cputime limit exceeded", | 	{20, "SIGCHLD", "child exited"}, | ||||||
| 	25: "filesize limit exceeded", | 	{21, "SIGTTIN", "stopped (tty input)"}, | ||||||
| 	26: "virtual timer expired", | 	{22, "SIGTTOU", "stopped (tty output)"}, | ||||||
| 	27: "profiling timer expired", | 	{23, "SIGIO", "I/O possible"}, | ||||||
| 	28: "window size changes", | 	{24, "SIGXCPU", "cputime limit exceeded"}, | ||||||
| 	29: "information request", | 	{25, "SIGXFSZ", "filesize limit exceeded"}, | ||||||
| 	30: "user defined signal 1", | 	{26, "SIGVTALRM", "virtual timer expired"}, | ||||||
| 	31: "user defined signal 2", | 	{27, "SIGPROF", "profiling timer expired"}, | ||||||
|  | 	{28, "SIGWINCH", "window size changes"}, | ||||||
|  | 	{29, "SIGINFO", "information request"}, | ||||||
|  | 	{30, "SIGUSR1", "user defined signal 1"}, | ||||||
|  | 	{31, "SIGUSR2", "user defined signal 2"}, | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										388
									
								
								vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										388
									
								
								vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -49,6 +49,86 @@ const ( | |||||||
| 	AF_UNSPEC                         = 0x0 | 	AF_UNSPEC                         = 0x0 | ||||||
| 	AF_UTUN                           = 0x26 | 	AF_UTUN                           = 0x26 | ||||||
| 	ALTWERASE                         = 0x200 | 	ALTWERASE                         = 0x200 | ||||||
|  | 	ATTR_BIT_MAP_COUNT                = 0x5 | ||||||
|  | 	ATTR_CMN_ACCESSMASK               = 0x20000 | ||||||
|  | 	ATTR_CMN_ACCTIME                  = 0x1000 | ||||||
|  | 	ATTR_CMN_ADDEDTIME                = 0x10000000 | ||||||
|  | 	ATTR_CMN_BKUPTIME                 = 0x2000 | ||||||
|  | 	ATTR_CMN_CHGTIME                  = 0x800 | ||||||
|  | 	ATTR_CMN_CRTIME                   = 0x200 | ||||||
|  | 	ATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000 | ||||||
|  | 	ATTR_CMN_DEVID                    = 0x2 | ||||||
|  | 	ATTR_CMN_DOCUMENT_ID              = 0x100000 | ||||||
|  | 	ATTR_CMN_ERROR                    = 0x20000000 | ||||||
|  | 	ATTR_CMN_EXTENDED_SECURITY        = 0x400000 | ||||||
|  | 	ATTR_CMN_FILEID                   = 0x2000000 | ||||||
|  | 	ATTR_CMN_FLAGS                    = 0x40000 | ||||||
|  | 	ATTR_CMN_FNDRINFO                 = 0x4000 | ||||||
|  | 	ATTR_CMN_FSID                     = 0x4 | ||||||
|  | 	ATTR_CMN_FULLPATH                 = 0x8000000 | ||||||
|  | 	ATTR_CMN_GEN_COUNT                = 0x80000 | ||||||
|  | 	ATTR_CMN_GRPID                    = 0x10000 | ||||||
|  | 	ATTR_CMN_GRPUUID                  = 0x1000000 | ||||||
|  | 	ATTR_CMN_MODTIME                  = 0x400 | ||||||
|  | 	ATTR_CMN_NAME                     = 0x1 | ||||||
|  | 	ATTR_CMN_NAMEDATTRCOUNT           = 0x80000 | ||||||
|  | 	ATTR_CMN_NAMEDATTRLIST            = 0x100000 | ||||||
|  | 	ATTR_CMN_OBJID                    = 0x20 | ||||||
|  | 	ATTR_CMN_OBJPERMANENTID           = 0x40 | ||||||
|  | 	ATTR_CMN_OBJTAG                   = 0x10 | ||||||
|  | 	ATTR_CMN_OBJTYPE                  = 0x8 | ||||||
|  | 	ATTR_CMN_OWNERID                  = 0x8000 | ||||||
|  | 	ATTR_CMN_PARENTID                 = 0x4000000 | ||||||
|  | 	ATTR_CMN_PAROBJID                 = 0x80 | ||||||
|  | 	ATTR_CMN_RETURNED_ATTRS           = 0x80000000 | ||||||
|  | 	ATTR_CMN_SCRIPT                   = 0x100 | ||||||
|  | 	ATTR_CMN_SETMASK                  = 0x41c7ff00 | ||||||
|  | 	ATTR_CMN_USERACCESS               = 0x200000 | ||||||
|  | 	ATTR_CMN_UUID                     = 0x800000 | ||||||
|  | 	ATTR_CMN_VALIDMASK                = 0xffffffff | ||||||
|  | 	ATTR_CMN_VOLSETMASK               = 0x6700 | ||||||
|  | 	ATTR_FILE_ALLOCSIZE               = 0x4 | ||||||
|  | 	ATTR_FILE_CLUMPSIZE               = 0x10 | ||||||
|  | 	ATTR_FILE_DATAALLOCSIZE           = 0x400 | ||||||
|  | 	ATTR_FILE_DATAEXTENTS             = 0x800 | ||||||
|  | 	ATTR_FILE_DATALENGTH              = 0x200 | ||||||
|  | 	ATTR_FILE_DEVTYPE                 = 0x20 | ||||||
|  | 	ATTR_FILE_FILETYPE                = 0x40 | ||||||
|  | 	ATTR_FILE_FORKCOUNT               = 0x80 | ||||||
|  | 	ATTR_FILE_FORKLIST                = 0x100 | ||||||
|  | 	ATTR_FILE_IOBLOCKSIZE             = 0x8 | ||||||
|  | 	ATTR_FILE_LINKCOUNT               = 0x1 | ||||||
|  | 	ATTR_FILE_RSRCALLOCSIZE           = 0x2000 | ||||||
|  | 	ATTR_FILE_RSRCEXTENTS             = 0x4000 | ||||||
|  | 	ATTR_FILE_RSRCLENGTH              = 0x1000 | ||||||
|  | 	ATTR_FILE_SETMASK                 = 0x20 | ||||||
|  | 	ATTR_FILE_TOTALSIZE               = 0x2 | ||||||
|  | 	ATTR_FILE_VALIDMASK               = 0x37ff | ||||||
|  | 	ATTR_VOL_ALLOCATIONCLUMP          = 0x40 | ||||||
|  | 	ATTR_VOL_ATTRIBUTES               = 0x40000000 | ||||||
|  | 	ATTR_VOL_CAPABILITIES             = 0x20000 | ||||||
|  | 	ATTR_VOL_DIRCOUNT                 = 0x400 | ||||||
|  | 	ATTR_VOL_ENCODINGSUSED            = 0x10000 | ||||||
|  | 	ATTR_VOL_FILECOUNT                = 0x200 | ||||||
|  | 	ATTR_VOL_FSTYPE                   = 0x1 | ||||||
|  | 	ATTR_VOL_INFO                     = 0x80000000 | ||||||
|  | 	ATTR_VOL_IOBLOCKSIZE              = 0x80 | ||||||
|  | 	ATTR_VOL_MAXOBJCOUNT              = 0x800 | ||||||
|  | 	ATTR_VOL_MINALLOCATION            = 0x20 | ||||||
|  | 	ATTR_VOL_MOUNTEDDEVICE            = 0x8000 | ||||||
|  | 	ATTR_VOL_MOUNTFLAGS               = 0x4000 | ||||||
|  | 	ATTR_VOL_MOUNTPOINT               = 0x1000 | ||||||
|  | 	ATTR_VOL_NAME                     = 0x2000 | ||||||
|  | 	ATTR_VOL_OBJCOUNT                 = 0x100 | ||||||
|  | 	ATTR_VOL_QUOTA_SIZE               = 0x10000000 | ||||||
|  | 	ATTR_VOL_RESERVED_SIZE            = 0x20000000 | ||||||
|  | 	ATTR_VOL_SETMASK                  = 0x80002000 | ||||||
|  | 	ATTR_VOL_SIGNATURE                = 0x2 | ||||||
|  | 	ATTR_VOL_SIZE                     = 0x4 | ||||||
|  | 	ATTR_VOL_SPACEAVAIL               = 0x10 | ||||||
|  | 	ATTR_VOL_SPACEFREE                = 0x8 | ||||||
|  | 	ATTR_VOL_UUID                     = 0x40000 | ||||||
|  | 	ATTR_VOL_VALIDMASK                = 0xf007ffff | ||||||
| 	B0                                = 0x0 | 	B0                                = 0x0 | ||||||
| 	B110                              = 0x6e | 	B110                              = 0x6e | ||||||
| 	B115200                           = 0x1c200 | 	B115200                           = 0x1c200 | ||||||
| @@ -169,6 +249,8 @@ const ( | |||||||
| 	CSTOP                             = 0x13 | 	CSTOP                             = 0x13 | ||||||
| 	CSTOPB                            = 0x400 | 	CSTOPB                            = 0x400 | ||||||
| 	CSUSP                             = 0x1a | 	CSUSP                             = 0x1a | ||||||
|  | 	CTL_HW                            = 0x6 | ||||||
|  | 	CTL_KERN                          = 0x1 | ||||||
| 	CTL_MAXNAME                       = 0xc | 	CTL_MAXNAME                       = 0xc | ||||||
| 	CTL_NET                           = 0x4 | 	CTL_NET                           = 0x4 | ||||||
| 	DLT_A429                          = 0xb8 | 	DLT_A429                          = 0xb8 | ||||||
| @@ -390,6 +472,11 @@ const ( | |||||||
| 	FF1                               = 0x4000 | 	FF1                               = 0x4000 | ||||||
| 	FFDLY                             = 0x4000 | 	FFDLY                             = 0x4000 | ||||||
| 	FLUSHO                            = 0x800000 | 	FLUSHO                            = 0x800000 | ||||||
|  | 	FSOPT_ATTR_CMN_EXTENDED           = 0x20 | ||||||
|  | 	FSOPT_NOFOLLOW                    = 0x1 | ||||||
|  | 	FSOPT_NOINMEMUPDATE               = 0x2 | ||||||
|  | 	FSOPT_PACK_INVAL_ATTRS            = 0x8 | ||||||
|  | 	FSOPT_REPORT_FULLSIZE             = 0x4 | ||||||
| 	F_ADDFILESIGS                     = 0x3d | 	F_ADDFILESIGS                     = 0x3d | ||||||
| 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53 | 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53 | ||||||
| 	F_ADDFILESIGS_RETURN              = 0x61 | 	F_ADDFILESIGS_RETURN              = 0x61 | ||||||
| @@ -425,6 +512,7 @@ const ( | |||||||
| 	F_PATHPKG_CHECK                   = 0x34 | 	F_PATHPKG_CHECK                   = 0x34 | ||||||
| 	F_PEOFPOSMODE                     = 0x3 | 	F_PEOFPOSMODE                     = 0x3 | ||||||
| 	F_PREALLOCATE                     = 0x2a | 	F_PREALLOCATE                     = 0x2a | ||||||
|  | 	F_PUNCHHOLE                       = 0x63 | ||||||
| 	F_RDADVISE                        = 0x2c | 	F_RDADVISE                        = 0x2c | ||||||
| 	F_RDAHEAD                         = 0x2d | 	F_RDAHEAD                         = 0x2d | ||||||
| 	F_RDLCK                           = 0x1 | 	F_RDLCK                           = 0x1 | ||||||
| @@ -441,10 +529,12 @@ const ( | |||||||
| 	F_SINGLE_WRITER                   = 0x4c | 	F_SINGLE_WRITER                   = 0x4c | ||||||
| 	F_THAW_FS                         = 0x36 | 	F_THAW_FS                         = 0x36 | ||||||
| 	F_TRANSCODEKEY                    = 0x4b | 	F_TRANSCODEKEY                    = 0x4b | ||||||
|  | 	F_TRIM_ACTIVE_FILE                = 0x64 | ||||||
| 	F_UNLCK                           = 0x2 | 	F_UNLCK                           = 0x2 | ||||||
| 	F_VOLPOSMODE                      = 0x4 | 	F_VOLPOSMODE                      = 0x4 | ||||||
| 	F_WRLCK                           = 0x3 | 	F_WRLCK                           = 0x3 | ||||||
| 	HUPCL                             = 0x4000 | 	HUPCL                             = 0x4000 | ||||||
|  | 	HW_MACHINE                        = 0x1 | ||||||
| 	ICANON                            = 0x100 | 	ICANON                            = 0x100 | ||||||
| 	ICMP6_FILTER                      = 0x12 | 	ICMP6_FILTER                      = 0x12 | ||||||
| 	ICRNL                             = 0x100 | 	ICRNL                             = 0x100 | ||||||
| @@ -681,6 +771,7 @@ const ( | |||||||
| 	IPV6_FAITH                        = 0x1d | 	IPV6_FAITH                        = 0x1d | ||||||
| 	IPV6_FLOWINFO_MASK                = 0xffffff0f | 	IPV6_FLOWINFO_MASK                = 0xffffff0f | ||||||
| 	IPV6_FLOWLABEL_MASK               = 0xffff0f00 | 	IPV6_FLOWLABEL_MASK               = 0xffff0f00 | ||||||
|  | 	IPV6_FLOW_ECN_MASK                = 0x300 | ||||||
| 	IPV6_FRAGTTL                      = 0x3c | 	IPV6_FRAGTTL                      = 0x3c | ||||||
| 	IPV6_FW_ADD                       = 0x1e | 	IPV6_FW_ADD                       = 0x1e | ||||||
| 	IPV6_FW_DEL                       = 0x1f | 	IPV6_FW_DEL                       = 0x1f | ||||||
| @@ -771,6 +862,7 @@ const ( | |||||||
| 	IP_RECVOPTS                       = 0x5 | 	IP_RECVOPTS                       = 0x5 | ||||||
| 	IP_RECVPKTINFO                    = 0x1a | 	IP_RECVPKTINFO                    = 0x1a | ||||||
| 	IP_RECVRETOPTS                    = 0x6 | 	IP_RECVRETOPTS                    = 0x6 | ||||||
|  | 	IP_RECVTOS                        = 0x1b | ||||||
| 	IP_RECVTTL                        = 0x18 | 	IP_RECVTTL                        = 0x18 | ||||||
| 	IP_RETOPTS                        = 0x8 | 	IP_RETOPTS                        = 0x8 | ||||||
| 	IP_RF                             = 0x8000 | 	IP_RF                             = 0x8000 | ||||||
| @@ -789,6 +881,10 @@ const ( | |||||||
| 	IXANY                             = 0x800 | 	IXANY                             = 0x800 | ||||||
| 	IXOFF                             = 0x400 | 	IXOFF                             = 0x400 | ||||||
| 	IXON                              = 0x200 | 	IXON                              = 0x200 | ||||||
|  | 	KERN_HOSTNAME                     = 0xa | ||||||
|  | 	KERN_OSRELEASE                    = 0x2 | ||||||
|  | 	KERN_OSTYPE                       = 0x1 | ||||||
|  | 	KERN_VERSION                      = 0x4 | ||||||
| 	LOCK_EX                           = 0x2 | 	LOCK_EX                           = 0x2 | ||||||
| 	LOCK_NB                           = 0x4 | 	LOCK_NB                           = 0x4 | ||||||
| 	LOCK_SH                           = 0x1 | 	LOCK_SH                           = 0x1 | ||||||
| @@ -1377,6 +1473,12 @@ const ( | |||||||
| 	WORDSIZE                          = 0x40 | 	WORDSIZE                          = 0x40 | ||||||
| 	WSTOPPED                          = 0x8 | 	WSTOPPED                          = 0x8 | ||||||
| 	WUNTRACED                         = 0x2 | 	WUNTRACED                         = 0x2 | ||||||
|  | 	XATTR_CREATE                      = 0x2 | ||||||
|  | 	XATTR_NODEFAULT                   = 0x10 | ||||||
|  | 	XATTR_NOFOLLOW                    = 0x1 | ||||||
|  | 	XATTR_NOSECURITY                  = 0x8 | ||||||
|  | 	XATTR_REPLACE                     = 0x4 | ||||||
|  | 	XATTR_SHOWCOMPRESSION             = 0x20 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Errors | // Errors | ||||||
| @@ -1528,146 +1630,154 @@ const ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| // Error table | // Error table | ||||||
| var errors = [...]string{ | var errorList = [...]struct { | ||||||
| 	1:   "operation not permitted", | 	num  syscall.Errno | ||||||
| 	2:   "no such file or directory", | 	name string | ||||||
| 	3:   "no such process", | 	desc string | ||||||
| 	4:   "interrupted system call", | }{ | ||||||
| 	5:   "input/output error", | 	{1, "EPERM", "operation not permitted"}, | ||||||
| 	6:   "device not configured", | 	{2, "ENOENT", "no such file or directory"}, | ||||||
| 	7:   "argument list too long", | 	{3, "ESRCH", "no such process"}, | ||||||
| 	8:   "exec format error", | 	{4, "EINTR", "interrupted system call"}, | ||||||
| 	9:   "bad file descriptor", | 	{5, "EIO", "input/output error"}, | ||||||
| 	10:  "no child processes", | 	{6, "ENXIO", "device not configured"}, | ||||||
| 	11:  "resource deadlock avoided", | 	{7, "E2BIG", "argument list too long"}, | ||||||
| 	12:  "cannot allocate memory", | 	{8, "ENOEXEC", "exec format error"}, | ||||||
| 	13:  "permission denied", | 	{9, "EBADF", "bad file descriptor"}, | ||||||
| 	14:  "bad address", | 	{10, "ECHILD", "no child processes"}, | ||||||
| 	15:  "block device required", | 	{11, "EDEADLK", "resource deadlock avoided"}, | ||||||
| 	16:  "resource busy", | 	{12, "ENOMEM", "cannot allocate memory"}, | ||||||
| 	17:  "file exists", | 	{13, "EACCES", "permission denied"}, | ||||||
| 	18:  "cross-device link", | 	{14, "EFAULT", "bad address"}, | ||||||
| 	19:  "operation not supported by device", | 	{15, "ENOTBLK", "block device required"}, | ||||||
| 	20:  "not a directory", | 	{16, "EBUSY", "resource busy"}, | ||||||
| 	21:  "is a directory", | 	{17, "EEXIST", "file exists"}, | ||||||
| 	22:  "invalid argument", | 	{18, "EXDEV", "cross-device link"}, | ||||||
| 	23:  "too many open files in system", | 	{19, "ENODEV", "operation not supported by device"}, | ||||||
| 	24:  "too many open files", | 	{20, "ENOTDIR", "not a directory"}, | ||||||
| 	25:  "inappropriate ioctl for device", | 	{21, "EISDIR", "is a directory"}, | ||||||
| 	26:  "text file busy", | 	{22, "EINVAL", "invalid argument"}, | ||||||
| 	27:  "file too large", | 	{23, "ENFILE", "too many open files in system"}, | ||||||
| 	28:  "no space left on device", | 	{24, "EMFILE", "too many open files"}, | ||||||
| 	29:  "illegal seek", | 	{25, "ENOTTY", "inappropriate ioctl for device"}, | ||||||
| 	30:  "read-only file system", | 	{26, "ETXTBSY", "text file busy"}, | ||||||
| 	31:  "too many links", | 	{27, "EFBIG", "file too large"}, | ||||||
| 	32:  "broken pipe", | 	{28, "ENOSPC", "no space left on device"}, | ||||||
| 	33:  "numerical argument out of domain", | 	{29, "ESPIPE", "illegal seek"}, | ||||||
| 	34:  "result too large", | 	{30, "EROFS", "read-only file system"}, | ||||||
| 	35:  "resource temporarily unavailable", | 	{31, "EMLINK", "too many links"}, | ||||||
| 	36:  "operation now in progress", | 	{32, "EPIPE", "broken pipe"}, | ||||||
| 	37:  "operation already in progress", | 	{33, "EDOM", "numerical argument out of domain"}, | ||||||
| 	38:  "socket operation on non-socket", | 	{34, "ERANGE", "result too large"}, | ||||||
| 	39:  "destination address required", | 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||||
| 	40:  "message too long", | 	{36, "EINPROGRESS", "operation now in progress"}, | ||||||
| 	41:  "protocol wrong type for socket", | 	{37, "EALREADY", "operation already in progress"}, | ||||||
| 	42:  "protocol not available", | 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||||
| 	43:  "protocol not supported", | 	{39, "EDESTADDRREQ", "destination address required"}, | ||||||
| 	44:  "socket type not supported", | 	{40, "EMSGSIZE", "message too long"}, | ||||||
| 	45:  "operation not supported", | 	{41, "EPROTOTYPE", "protocol wrong type for socket"}, | ||||||
| 	46:  "protocol family not supported", | 	{42, "ENOPROTOOPT", "protocol not available"}, | ||||||
| 	47:  "address family not supported by protocol family", | 	{43, "EPROTONOSUPPORT", "protocol not supported"}, | ||||||
| 	48:  "address already in use", | 	{44, "ESOCKTNOSUPPORT", "socket type not supported"}, | ||||||
| 	49:  "can't assign requested address", | 	{45, "ENOTSUP", "operation not supported"}, | ||||||
| 	50:  "network is down", | 	{46, "EPFNOSUPPORT", "protocol family not supported"}, | ||||||
| 	51:  "network is unreachable", | 	{47, "EAFNOSUPPORT", "address family not supported by protocol family"}, | ||||||
| 	52:  "network dropped connection on reset", | 	{48, "EADDRINUSE", "address already in use"}, | ||||||
| 	53:  "software caused connection abort", | 	{49, "EADDRNOTAVAIL", "can't assign requested address"}, | ||||||
| 	54:  "connection reset by peer", | 	{50, "ENETDOWN", "network is down"}, | ||||||
| 	55:  "no buffer space available", | 	{51, "ENETUNREACH", "network is unreachable"}, | ||||||
| 	56:  "socket is already connected", | 	{52, "ENETRESET", "network dropped connection on reset"}, | ||||||
| 	57:  "socket is not connected", | 	{53, "ECONNABORTED", "software caused connection abort"}, | ||||||
| 	58:  "can't send after socket shutdown", | 	{54, "ECONNRESET", "connection reset by peer"}, | ||||||
| 	59:  "too many references: can't splice", | 	{55, "ENOBUFS", "no buffer space available"}, | ||||||
| 	60:  "operation timed out", | 	{56, "EISCONN", "socket is already connected"}, | ||||||
| 	61:  "connection refused", | 	{57, "ENOTCONN", "socket is not connected"}, | ||||||
| 	62:  "too many levels of symbolic links", | 	{58, "ESHUTDOWN", "can't send after socket shutdown"}, | ||||||
| 	63:  "file name too long", | 	{59, "ETOOMANYREFS", "too many references: can't splice"}, | ||||||
| 	64:  "host is down", | 	{60, "ETIMEDOUT", "operation timed out"}, | ||||||
| 	65:  "no route to host", | 	{61, "ECONNREFUSED", "connection refused"}, | ||||||
| 	66:  "directory not empty", | 	{62, "ELOOP", "too many levels of symbolic links"}, | ||||||
| 	67:  "too many processes", | 	{63, "ENAMETOOLONG", "file name too long"}, | ||||||
| 	68:  "too many users", | 	{64, "EHOSTDOWN", "host is down"}, | ||||||
| 	69:  "disc quota exceeded", | 	{65, "EHOSTUNREACH", "no route to host"}, | ||||||
| 	70:  "stale NFS file handle", | 	{66, "ENOTEMPTY", "directory not empty"}, | ||||||
| 	71:  "too many levels of remote in path", | 	{67, "EPROCLIM", "too many processes"}, | ||||||
| 	72:  "RPC struct is bad", | 	{68, "EUSERS", "too many users"}, | ||||||
| 	73:  "RPC version wrong", | 	{69, "EDQUOT", "disc quota exceeded"}, | ||||||
| 	74:  "RPC prog. not avail", | 	{70, "ESTALE", "stale NFS file handle"}, | ||||||
| 	75:  "program version wrong", | 	{71, "EREMOTE", "too many levels of remote in path"}, | ||||||
| 	76:  "bad procedure for program", | 	{72, "EBADRPC", "RPC struct is bad"}, | ||||||
| 	77:  "no locks available", | 	{73, "ERPCMISMATCH", "RPC version wrong"}, | ||||||
| 	78:  "function not implemented", | 	{74, "EPROGUNAVAIL", "RPC prog. not avail"}, | ||||||
| 	79:  "inappropriate file type or format", | 	{75, "EPROGMISMATCH", "program version wrong"}, | ||||||
| 	80:  "authentication error", | 	{76, "EPROCUNAVAIL", "bad procedure for program"}, | ||||||
| 	81:  "need authenticator", | 	{77, "ENOLCK", "no locks available"}, | ||||||
| 	82:  "device power is off", | 	{78, "ENOSYS", "function not implemented"}, | ||||||
| 	83:  "device error", | 	{79, "EFTYPE", "inappropriate file type or format"}, | ||||||
| 	84:  "value too large to be stored in data type", | 	{80, "EAUTH", "authentication error"}, | ||||||
| 	85:  "bad executable (or shared library)", | 	{81, "ENEEDAUTH", "need authenticator"}, | ||||||
| 	86:  "bad CPU type in executable", | 	{82, "EPWROFF", "device power is off"}, | ||||||
| 	87:  "shared library version mismatch", | 	{83, "EDEVERR", "device error"}, | ||||||
| 	88:  "malformed Mach-o file", | 	{84, "EOVERFLOW", "value too large to be stored in data type"}, | ||||||
| 	89:  "operation canceled", | 	{85, "EBADEXEC", "bad executable (or shared library)"}, | ||||||
| 	90:  "identifier removed", | 	{86, "EBADARCH", "bad CPU type in executable"}, | ||||||
| 	91:  "no message of desired type", | 	{87, "ESHLIBVERS", "shared library version mismatch"}, | ||||||
| 	92:  "illegal byte sequence", | 	{88, "EBADMACHO", "malformed Mach-o file"}, | ||||||
| 	93:  "attribute not found", | 	{89, "ECANCELED", "operation canceled"}, | ||||||
| 	94:  "bad message", | 	{90, "EIDRM", "identifier removed"}, | ||||||
| 	95:  "EMULTIHOP (Reserved)", | 	{91, "ENOMSG", "no message of desired type"}, | ||||||
| 	96:  "no message available on STREAM", | 	{92, "EILSEQ", "illegal byte sequence"}, | ||||||
| 	97:  "ENOLINK (Reserved)", | 	{93, "ENOATTR", "attribute not found"}, | ||||||
| 	98:  "no STREAM resources", | 	{94, "EBADMSG", "bad message"}, | ||||||
| 	99:  "not a STREAM", | 	{95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, | ||||||
| 	100: "protocol error", | 	{96, "ENODATA", "no message available on STREAM"}, | ||||||
| 	101: "STREAM ioctl timeout", | 	{97, "ENOLINK", "ENOLINK (Reserved)"}, | ||||||
| 	102: "operation not supported on socket", | 	{98, "ENOSR", "no STREAM resources"}, | ||||||
| 	103: "policy not found", | 	{99, "ENOSTR", "not a STREAM"}, | ||||||
| 	104: "state not recoverable", | 	{100, "EPROTO", "protocol error"}, | ||||||
| 	105: "previous owner died", | 	{101, "ETIME", "STREAM ioctl timeout"}, | ||||||
| 	106: "interface output queue is full", | 	{102, "EOPNOTSUPP", "operation not supported on socket"}, | ||||||
|  | 	{103, "ENOPOLICY", "policy not found"}, | ||||||
|  | 	{104, "ENOTRECOVERABLE", "state not recoverable"}, | ||||||
|  | 	{105, "EOWNERDEAD", "previous owner died"}, | ||||||
|  | 	{106, "EQFULL", "interface output queue is full"}, | ||||||
| } | } | ||||||
|  |  | ||||||
| // Signal table | // Signal table | ||||||
| var signals = [...]string{ | var signalList = [...]struct { | ||||||
| 	1:  "hangup", | 	num  syscall.Signal | ||||||
| 	2:  "interrupt", | 	name string | ||||||
| 	3:  "quit", | 	desc string | ||||||
| 	4:  "illegal instruction", | }{ | ||||||
| 	5:  "trace/BPT trap", | 	{1, "SIGHUP", "hangup"}, | ||||||
| 	6:  "abort trap", | 	{2, "SIGINT", "interrupt"}, | ||||||
| 	7:  "EMT trap", | 	{3, "SIGQUIT", "quit"}, | ||||||
| 	8:  "floating point exception", | 	{4, "SIGILL", "illegal instruction"}, | ||||||
| 	9:  "killed", | 	{5, "SIGTRAP", "trace/BPT trap"}, | ||||||
| 	10: "bus error", | 	{6, "SIGABRT", "abort trap"}, | ||||||
| 	11: "segmentation fault", | 	{7, "SIGEMT", "EMT trap"}, | ||||||
| 	12: "bad system call", | 	{8, "SIGFPE", "floating point exception"}, | ||||||
| 	13: "broken pipe", | 	{9, "SIGKILL", "killed"}, | ||||||
| 	14: "alarm clock", | 	{10, "SIGBUS", "bus error"}, | ||||||
| 	15: "terminated", | 	{11, "SIGSEGV", "segmentation fault"}, | ||||||
| 	16: "urgent I/O condition", | 	{12, "SIGSYS", "bad system call"}, | ||||||
| 	17: "suspended (signal)", | 	{13, "SIGPIPE", "broken pipe"}, | ||||||
| 	18: "suspended", | 	{14, "SIGALRM", "alarm clock"}, | ||||||
| 	19: "continued", | 	{15, "SIGTERM", "terminated"}, | ||||||
| 	20: "child exited", | 	{16, "SIGURG", "urgent I/O condition"}, | ||||||
| 	21: "stopped (tty input)", | 	{17, "SIGSTOP", "suspended (signal)"}, | ||||||
| 	22: "stopped (tty output)", | 	{18, "SIGTSTP", "suspended"}, | ||||||
| 	23: "I/O possible", | 	{19, "SIGCONT", "continued"}, | ||||||
| 	24: "cputime limit exceeded", | 	{20, "SIGCHLD", "child exited"}, | ||||||
| 	25: "filesize limit exceeded", | 	{21, "SIGTTIN", "stopped (tty input)"}, | ||||||
| 	26: "virtual timer expired", | 	{22, "SIGTTOU", "stopped (tty output)"}, | ||||||
| 	27: "profiling timer expired", | 	{23, "SIGIO", "I/O possible"}, | ||||||
| 	28: "window size changes", | 	{24, "SIGXCPU", "cputime limit exceeded"}, | ||||||
| 	29: "information request", | 	{25, "SIGXFSZ", "filesize limit exceeded"}, | ||||||
| 	30: "user defined signal 1", | 	{26, "SIGVTALRM", "virtual timer expired"}, | ||||||
| 	31: "user defined signal 2", | 	{27, "SIGPROF", "profiling timer expired"}, | ||||||
|  | 	{28, "SIGWINCH", "window size changes"}, | ||||||
|  | 	{29, "SIGINFO", "information request"}, | ||||||
|  | 	{30, "SIGUSR1", "user defined signal 1"}, | ||||||
|  | 	{31, "SIGUSR2", "user defined signal 2"}, | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										388
									
								
								vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										388
									
								
								vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -49,6 +49,86 @@ const ( | |||||||
| 	AF_UNSPEC                         = 0x0 | 	AF_UNSPEC                         = 0x0 | ||||||
| 	AF_UTUN                           = 0x26 | 	AF_UTUN                           = 0x26 | ||||||
| 	ALTWERASE                         = 0x200 | 	ALTWERASE                         = 0x200 | ||||||
|  | 	ATTR_BIT_MAP_COUNT                = 0x5 | ||||||
|  | 	ATTR_CMN_ACCESSMASK               = 0x20000 | ||||||
|  | 	ATTR_CMN_ACCTIME                  = 0x1000 | ||||||
|  | 	ATTR_CMN_ADDEDTIME                = 0x10000000 | ||||||
|  | 	ATTR_CMN_BKUPTIME                 = 0x2000 | ||||||
|  | 	ATTR_CMN_CHGTIME                  = 0x800 | ||||||
|  | 	ATTR_CMN_CRTIME                   = 0x200 | ||||||
|  | 	ATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000 | ||||||
|  | 	ATTR_CMN_DEVID                    = 0x2 | ||||||
|  | 	ATTR_CMN_DOCUMENT_ID              = 0x100000 | ||||||
|  | 	ATTR_CMN_ERROR                    = 0x20000000 | ||||||
|  | 	ATTR_CMN_EXTENDED_SECURITY        = 0x400000 | ||||||
|  | 	ATTR_CMN_FILEID                   = 0x2000000 | ||||||
|  | 	ATTR_CMN_FLAGS                    = 0x40000 | ||||||
|  | 	ATTR_CMN_FNDRINFO                 = 0x4000 | ||||||
|  | 	ATTR_CMN_FSID                     = 0x4 | ||||||
|  | 	ATTR_CMN_FULLPATH                 = 0x8000000 | ||||||
|  | 	ATTR_CMN_GEN_COUNT                = 0x80000 | ||||||
|  | 	ATTR_CMN_GRPID                    = 0x10000 | ||||||
|  | 	ATTR_CMN_GRPUUID                  = 0x1000000 | ||||||
|  | 	ATTR_CMN_MODTIME                  = 0x400 | ||||||
|  | 	ATTR_CMN_NAME                     = 0x1 | ||||||
|  | 	ATTR_CMN_NAMEDATTRCOUNT           = 0x80000 | ||||||
|  | 	ATTR_CMN_NAMEDATTRLIST            = 0x100000 | ||||||
|  | 	ATTR_CMN_OBJID                    = 0x20 | ||||||
|  | 	ATTR_CMN_OBJPERMANENTID           = 0x40 | ||||||
|  | 	ATTR_CMN_OBJTAG                   = 0x10 | ||||||
|  | 	ATTR_CMN_OBJTYPE                  = 0x8 | ||||||
|  | 	ATTR_CMN_OWNERID                  = 0x8000 | ||||||
|  | 	ATTR_CMN_PARENTID                 = 0x4000000 | ||||||
|  | 	ATTR_CMN_PAROBJID                 = 0x80 | ||||||
|  | 	ATTR_CMN_RETURNED_ATTRS           = 0x80000000 | ||||||
|  | 	ATTR_CMN_SCRIPT                   = 0x100 | ||||||
|  | 	ATTR_CMN_SETMASK                  = 0x41c7ff00 | ||||||
|  | 	ATTR_CMN_USERACCESS               = 0x200000 | ||||||
|  | 	ATTR_CMN_UUID                     = 0x800000 | ||||||
|  | 	ATTR_CMN_VALIDMASK                = 0xffffffff | ||||||
|  | 	ATTR_CMN_VOLSETMASK               = 0x6700 | ||||||
|  | 	ATTR_FILE_ALLOCSIZE               = 0x4 | ||||||
|  | 	ATTR_FILE_CLUMPSIZE               = 0x10 | ||||||
|  | 	ATTR_FILE_DATAALLOCSIZE           = 0x400 | ||||||
|  | 	ATTR_FILE_DATAEXTENTS             = 0x800 | ||||||
|  | 	ATTR_FILE_DATALENGTH              = 0x200 | ||||||
|  | 	ATTR_FILE_DEVTYPE                 = 0x20 | ||||||
|  | 	ATTR_FILE_FILETYPE                = 0x40 | ||||||
|  | 	ATTR_FILE_FORKCOUNT               = 0x80 | ||||||
|  | 	ATTR_FILE_FORKLIST                = 0x100 | ||||||
|  | 	ATTR_FILE_IOBLOCKSIZE             = 0x8 | ||||||
|  | 	ATTR_FILE_LINKCOUNT               = 0x1 | ||||||
|  | 	ATTR_FILE_RSRCALLOCSIZE           = 0x2000 | ||||||
|  | 	ATTR_FILE_RSRCEXTENTS             = 0x4000 | ||||||
|  | 	ATTR_FILE_RSRCLENGTH              = 0x1000 | ||||||
|  | 	ATTR_FILE_SETMASK                 = 0x20 | ||||||
|  | 	ATTR_FILE_TOTALSIZE               = 0x2 | ||||||
|  | 	ATTR_FILE_VALIDMASK               = 0x37ff | ||||||
|  | 	ATTR_VOL_ALLOCATIONCLUMP          = 0x40 | ||||||
|  | 	ATTR_VOL_ATTRIBUTES               = 0x40000000 | ||||||
|  | 	ATTR_VOL_CAPABILITIES             = 0x20000 | ||||||
|  | 	ATTR_VOL_DIRCOUNT                 = 0x400 | ||||||
|  | 	ATTR_VOL_ENCODINGSUSED            = 0x10000 | ||||||
|  | 	ATTR_VOL_FILECOUNT                = 0x200 | ||||||
|  | 	ATTR_VOL_FSTYPE                   = 0x1 | ||||||
|  | 	ATTR_VOL_INFO                     = 0x80000000 | ||||||
|  | 	ATTR_VOL_IOBLOCKSIZE              = 0x80 | ||||||
|  | 	ATTR_VOL_MAXOBJCOUNT              = 0x800 | ||||||
|  | 	ATTR_VOL_MINALLOCATION            = 0x20 | ||||||
|  | 	ATTR_VOL_MOUNTEDDEVICE            = 0x8000 | ||||||
|  | 	ATTR_VOL_MOUNTFLAGS               = 0x4000 | ||||||
|  | 	ATTR_VOL_MOUNTPOINT               = 0x1000 | ||||||
|  | 	ATTR_VOL_NAME                     = 0x2000 | ||||||
|  | 	ATTR_VOL_OBJCOUNT                 = 0x100 | ||||||
|  | 	ATTR_VOL_QUOTA_SIZE               = 0x10000000 | ||||||
|  | 	ATTR_VOL_RESERVED_SIZE            = 0x20000000 | ||||||
|  | 	ATTR_VOL_SETMASK                  = 0x80002000 | ||||||
|  | 	ATTR_VOL_SIGNATURE                = 0x2 | ||||||
|  | 	ATTR_VOL_SIZE                     = 0x4 | ||||||
|  | 	ATTR_VOL_SPACEAVAIL               = 0x10 | ||||||
|  | 	ATTR_VOL_SPACEFREE                = 0x8 | ||||||
|  | 	ATTR_VOL_UUID                     = 0x40000 | ||||||
|  | 	ATTR_VOL_VALIDMASK                = 0xf007ffff | ||||||
| 	B0                                = 0x0 | 	B0                                = 0x0 | ||||||
| 	B110                              = 0x6e | 	B110                              = 0x6e | ||||||
| 	B115200                           = 0x1c200 | 	B115200                           = 0x1c200 | ||||||
| @@ -169,6 +249,8 @@ const ( | |||||||
| 	CSTOP                             = 0x13 | 	CSTOP                             = 0x13 | ||||||
| 	CSTOPB                            = 0x400 | 	CSTOPB                            = 0x400 | ||||||
| 	CSUSP                             = 0x1a | 	CSUSP                             = 0x1a | ||||||
|  | 	CTL_HW                            = 0x6 | ||||||
|  | 	CTL_KERN                          = 0x1 | ||||||
| 	CTL_MAXNAME                       = 0xc | 	CTL_MAXNAME                       = 0xc | ||||||
| 	CTL_NET                           = 0x4 | 	CTL_NET                           = 0x4 | ||||||
| 	DLT_A429                          = 0xb8 | 	DLT_A429                          = 0xb8 | ||||||
| @@ -390,6 +472,11 @@ const ( | |||||||
| 	FF1                               = 0x4000 | 	FF1                               = 0x4000 | ||||||
| 	FFDLY                             = 0x4000 | 	FFDLY                             = 0x4000 | ||||||
| 	FLUSHO                            = 0x800000 | 	FLUSHO                            = 0x800000 | ||||||
|  | 	FSOPT_ATTR_CMN_EXTENDED           = 0x20 | ||||||
|  | 	FSOPT_NOFOLLOW                    = 0x1 | ||||||
|  | 	FSOPT_NOINMEMUPDATE               = 0x2 | ||||||
|  | 	FSOPT_PACK_INVAL_ATTRS            = 0x8 | ||||||
|  | 	FSOPT_REPORT_FULLSIZE             = 0x4 | ||||||
| 	F_ADDFILESIGS                     = 0x3d | 	F_ADDFILESIGS                     = 0x3d | ||||||
| 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53 | 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53 | ||||||
| 	F_ADDFILESIGS_RETURN              = 0x61 | 	F_ADDFILESIGS_RETURN              = 0x61 | ||||||
| @@ -425,6 +512,7 @@ const ( | |||||||
| 	F_PATHPKG_CHECK                   = 0x34 | 	F_PATHPKG_CHECK                   = 0x34 | ||||||
| 	F_PEOFPOSMODE                     = 0x3 | 	F_PEOFPOSMODE                     = 0x3 | ||||||
| 	F_PREALLOCATE                     = 0x2a | 	F_PREALLOCATE                     = 0x2a | ||||||
|  | 	F_PUNCHHOLE                       = 0x63 | ||||||
| 	F_RDADVISE                        = 0x2c | 	F_RDADVISE                        = 0x2c | ||||||
| 	F_RDAHEAD                         = 0x2d | 	F_RDAHEAD                         = 0x2d | ||||||
| 	F_RDLCK                           = 0x1 | 	F_RDLCK                           = 0x1 | ||||||
| @@ -441,10 +529,12 @@ const ( | |||||||
| 	F_SINGLE_WRITER                   = 0x4c | 	F_SINGLE_WRITER                   = 0x4c | ||||||
| 	F_THAW_FS                         = 0x36 | 	F_THAW_FS                         = 0x36 | ||||||
| 	F_TRANSCODEKEY                    = 0x4b | 	F_TRANSCODEKEY                    = 0x4b | ||||||
|  | 	F_TRIM_ACTIVE_FILE                = 0x64 | ||||||
| 	F_UNLCK                           = 0x2 | 	F_UNLCK                           = 0x2 | ||||||
| 	F_VOLPOSMODE                      = 0x4 | 	F_VOLPOSMODE                      = 0x4 | ||||||
| 	F_WRLCK                           = 0x3 | 	F_WRLCK                           = 0x3 | ||||||
| 	HUPCL                             = 0x4000 | 	HUPCL                             = 0x4000 | ||||||
|  | 	HW_MACHINE                        = 0x1 | ||||||
| 	ICANON                            = 0x100 | 	ICANON                            = 0x100 | ||||||
| 	ICMP6_FILTER                      = 0x12 | 	ICMP6_FILTER                      = 0x12 | ||||||
| 	ICRNL                             = 0x100 | 	ICRNL                             = 0x100 | ||||||
| @@ -681,6 +771,7 @@ const ( | |||||||
| 	IPV6_FAITH                        = 0x1d | 	IPV6_FAITH                        = 0x1d | ||||||
| 	IPV6_FLOWINFO_MASK                = 0xffffff0f | 	IPV6_FLOWINFO_MASK                = 0xffffff0f | ||||||
| 	IPV6_FLOWLABEL_MASK               = 0xffff0f00 | 	IPV6_FLOWLABEL_MASK               = 0xffff0f00 | ||||||
|  | 	IPV6_FLOW_ECN_MASK                = 0x300 | ||||||
| 	IPV6_FRAGTTL                      = 0x3c | 	IPV6_FRAGTTL                      = 0x3c | ||||||
| 	IPV6_FW_ADD                       = 0x1e | 	IPV6_FW_ADD                       = 0x1e | ||||||
| 	IPV6_FW_DEL                       = 0x1f | 	IPV6_FW_DEL                       = 0x1f | ||||||
| @@ -771,6 +862,7 @@ const ( | |||||||
| 	IP_RECVOPTS                       = 0x5 | 	IP_RECVOPTS                       = 0x5 | ||||||
| 	IP_RECVPKTINFO                    = 0x1a | 	IP_RECVPKTINFO                    = 0x1a | ||||||
| 	IP_RECVRETOPTS                    = 0x6 | 	IP_RECVRETOPTS                    = 0x6 | ||||||
|  | 	IP_RECVTOS                        = 0x1b | ||||||
| 	IP_RECVTTL                        = 0x18 | 	IP_RECVTTL                        = 0x18 | ||||||
| 	IP_RETOPTS                        = 0x8 | 	IP_RETOPTS                        = 0x8 | ||||||
| 	IP_RF                             = 0x8000 | 	IP_RF                             = 0x8000 | ||||||
| @@ -789,6 +881,10 @@ const ( | |||||||
| 	IXANY                             = 0x800 | 	IXANY                             = 0x800 | ||||||
| 	IXOFF                             = 0x400 | 	IXOFF                             = 0x400 | ||||||
| 	IXON                              = 0x200 | 	IXON                              = 0x200 | ||||||
|  | 	KERN_HOSTNAME                     = 0xa | ||||||
|  | 	KERN_OSRELEASE                    = 0x2 | ||||||
|  | 	KERN_OSTYPE                       = 0x1 | ||||||
|  | 	KERN_VERSION                      = 0x4 | ||||||
| 	LOCK_EX                           = 0x2 | 	LOCK_EX                           = 0x2 | ||||||
| 	LOCK_NB                           = 0x4 | 	LOCK_NB                           = 0x4 | ||||||
| 	LOCK_SH                           = 0x1 | 	LOCK_SH                           = 0x1 | ||||||
| @@ -1377,6 +1473,12 @@ const ( | |||||||
| 	WORDSIZE                          = 0x40 | 	WORDSIZE                          = 0x40 | ||||||
| 	WSTOPPED                          = 0x8 | 	WSTOPPED                          = 0x8 | ||||||
| 	WUNTRACED                         = 0x2 | 	WUNTRACED                         = 0x2 | ||||||
|  | 	XATTR_CREATE                      = 0x2 | ||||||
|  | 	XATTR_NODEFAULT                   = 0x10 | ||||||
|  | 	XATTR_NOFOLLOW                    = 0x1 | ||||||
|  | 	XATTR_NOSECURITY                  = 0x8 | ||||||
|  | 	XATTR_REPLACE                     = 0x4 | ||||||
|  | 	XATTR_SHOWCOMPRESSION             = 0x20 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Errors | // Errors | ||||||
| @@ -1528,146 +1630,154 @@ const ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| // Error table | // Error table | ||||||
| var errors = [...]string{ | var errorList = [...]struct { | ||||||
| 	1:   "operation not permitted", | 	num  syscall.Errno | ||||||
| 	2:   "no such file or directory", | 	name string | ||||||
| 	3:   "no such process", | 	desc string | ||||||
| 	4:   "interrupted system call", | }{ | ||||||
| 	5:   "input/output error", | 	{1, "EPERM", "operation not permitted"}, | ||||||
| 	6:   "device not configured", | 	{2, "ENOENT", "no such file or directory"}, | ||||||
| 	7:   "argument list too long", | 	{3, "ESRCH", "no such process"}, | ||||||
| 	8:   "exec format error", | 	{4, "EINTR", "interrupted system call"}, | ||||||
| 	9:   "bad file descriptor", | 	{5, "EIO", "input/output error"}, | ||||||
| 	10:  "no child processes", | 	{6, "ENXIO", "device not configured"}, | ||||||
| 	11:  "resource deadlock avoided", | 	{7, "E2BIG", "argument list too long"}, | ||||||
| 	12:  "cannot allocate memory", | 	{8, "ENOEXEC", "exec format error"}, | ||||||
| 	13:  "permission denied", | 	{9, "EBADF", "bad file descriptor"}, | ||||||
| 	14:  "bad address", | 	{10, "ECHILD", "no child processes"}, | ||||||
| 	15:  "block device required", | 	{11, "EDEADLK", "resource deadlock avoided"}, | ||||||
| 	16:  "resource busy", | 	{12, "ENOMEM", "cannot allocate memory"}, | ||||||
| 	17:  "file exists", | 	{13, "EACCES", "permission denied"}, | ||||||
| 	18:  "cross-device link", | 	{14, "EFAULT", "bad address"}, | ||||||
| 	19:  "operation not supported by device", | 	{15, "ENOTBLK", "block device required"}, | ||||||
| 	20:  "not a directory", | 	{16, "EBUSY", "resource busy"}, | ||||||
| 	21:  "is a directory", | 	{17, "EEXIST", "file exists"}, | ||||||
| 	22:  "invalid argument", | 	{18, "EXDEV", "cross-device link"}, | ||||||
| 	23:  "too many open files in system", | 	{19, "ENODEV", "operation not supported by device"}, | ||||||
| 	24:  "too many open files", | 	{20, "ENOTDIR", "not a directory"}, | ||||||
| 	25:  "inappropriate ioctl for device", | 	{21, "EISDIR", "is a directory"}, | ||||||
| 	26:  "text file busy", | 	{22, "EINVAL", "invalid argument"}, | ||||||
| 	27:  "file too large", | 	{23, "ENFILE", "too many open files in system"}, | ||||||
| 	28:  "no space left on device", | 	{24, "EMFILE", "too many open files"}, | ||||||
| 	29:  "illegal seek", | 	{25, "ENOTTY", "inappropriate ioctl for device"}, | ||||||
| 	30:  "read-only file system", | 	{26, "ETXTBSY", "text file busy"}, | ||||||
| 	31:  "too many links", | 	{27, "EFBIG", "file too large"}, | ||||||
| 	32:  "broken pipe", | 	{28, "ENOSPC", "no space left on device"}, | ||||||
| 	33:  "numerical argument out of domain", | 	{29, "ESPIPE", "illegal seek"}, | ||||||
| 	34:  "result too large", | 	{30, "EROFS", "read-only file system"}, | ||||||
| 	35:  "resource temporarily unavailable", | 	{31, "EMLINK", "too many links"}, | ||||||
| 	36:  "operation now in progress", | 	{32, "EPIPE", "broken pipe"}, | ||||||
| 	37:  "operation already in progress", | 	{33, "EDOM", "numerical argument out of domain"}, | ||||||
| 	38:  "socket operation on non-socket", | 	{34, "ERANGE", "result too large"}, | ||||||
| 	39:  "destination address required", | 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||||
| 	40:  "message too long", | 	{36, "EINPROGRESS", "operation now in progress"}, | ||||||
| 	41:  "protocol wrong type for socket", | 	{37, "EALREADY", "operation already in progress"}, | ||||||
| 	42:  "protocol not available", | 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||||
| 	43:  "protocol not supported", | 	{39, "EDESTADDRREQ", "destination address required"}, | ||||||
| 	44:  "socket type not supported", | 	{40, "EMSGSIZE", "message too long"}, | ||||||
| 	45:  "operation not supported", | 	{41, "EPROTOTYPE", "protocol wrong type for socket"}, | ||||||
| 	46:  "protocol family not supported", | 	{42, "ENOPROTOOPT", "protocol not available"}, | ||||||
| 	47:  "address family not supported by protocol family", | 	{43, "EPROTONOSUPPORT", "protocol not supported"}, | ||||||
| 	48:  "address already in use", | 	{44, "ESOCKTNOSUPPORT", "socket type not supported"}, | ||||||
| 	49:  "can't assign requested address", | 	{45, "ENOTSUP", "operation not supported"}, | ||||||
| 	50:  "network is down", | 	{46, "EPFNOSUPPORT", "protocol family not supported"}, | ||||||
| 	51:  "network is unreachable", | 	{47, "EAFNOSUPPORT", "address family not supported by protocol family"}, | ||||||
| 	52:  "network dropped connection on reset", | 	{48, "EADDRINUSE", "address already in use"}, | ||||||
| 	53:  "software caused connection abort", | 	{49, "EADDRNOTAVAIL", "can't assign requested address"}, | ||||||
| 	54:  "connection reset by peer", | 	{50, "ENETDOWN", "network is down"}, | ||||||
| 	55:  "no buffer space available", | 	{51, "ENETUNREACH", "network is unreachable"}, | ||||||
| 	56:  "socket is already connected", | 	{52, "ENETRESET", "network dropped connection on reset"}, | ||||||
| 	57:  "socket is not connected", | 	{53, "ECONNABORTED", "software caused connection abort"}, | ||||||
| 	58:  "can't send after socket shutdown", | 	{54, "ECONNRESET", "connection reset by peer"}, | ||||||
| 	59:  "too many references: can't splice", | 	{55, "ENOBUFS", "no buffer space available"}, | ||||||
| 	60:  "operation timed out", | 	{56, "EISCONN", "socket is already connected"}, | ||||||
| 	61:  "connection refused", | 	{57, "ENOTCONN", "socket is not connected"}, | ||||||
| 	62:  "too many levels of symbolic links", | 	{58, "ESHUTDOWN", "can't send after socket shutdown"}, | ||||||
| 	63:  "file name too long", | 	{59, "ETOOMANYREFS", "too many references: can't splice"}, | ||||||
| 	64:  "host is down", | 	{60, "ETIMEDOUT", "operation timed out"}, | ||||||
| 	65:  "no route to host", | 	{61, "ECONNREFUSED", "connection refused"}, | ||||||
| 	66:  "directory not empty", | 	{62, "ELOOP", "too many levels of symbolic links"}, | ||||||
| 	67:  "too many processes", | 	{63, "ENAMETOOLONG", "file name too long"}, | ||||||
| 	68:  "too many users", | 	{64, "EHOSTDOWN", "host is down"}, | ||||||
| 	69:  "disc quota exceeded", | 	{65, "EHOSTUNREACH", "no route to host"}, | ||||||
| 	70:  "stale NFS file handle", | 	{66, "ENOTEMPTY", "directory not empty"}, | ||||||
| 	71:  "too many levels of remote in path", | 	{67, "EPROCLIM", "too many processes"}, | ||||||
| 	72:  "RPC struct is bad", | 	{68, "EUSERS", "too many users"}, | ||||||
| 	73:  "RPC version wrong", | 	{69, "EDQUOT", "disc quota exceeded"}, | ||||||
| 	74:  "RPC prog. not avail", | 	{70, "ESTALE", "stale NFS file handle"}, | ||||||
| 	75:  "program version wrong", | 	{71, "EREMOTE", "too many levels of remote in path"}, | ||||||
| 	76:  "bad procedure for program", | 	{72, "EBADRPC", "RPC struct is bad"}, | ||||||
| 	77:  "no locks available", | 	{73, "ERPCMISMATCH", "RPC version wrong"}, | ||||||
| 	78:  "function not implemented", | 	{74, "EPROGUNAVAIL", "RPC prog. not avail"}, | ||||||
| 	79:  "inappropriate file type or format", | 	{75, "EPROGMISMATCH", "program version wrong"}, | ||||||
| 	80:  "authentication error", | 	{76, "EPROCUNAVAIL", "bad procedure for program"}, | ||||||
| 	81:  "need authenticator", | 	{77, "ENOLCK", "no locks available"}, | ||||||
| 	82:  "device power is off", | 	{78, "ENOSYS", "function not implemented"}, | ||||||
| 	83:  "device error", | 	{79, "EFTYPE", "inappropriate file type or format"}, | ||||||
| 	84:  "value too large to be stored in data type", | 	{80, "EAUTH", "authentication error"}, | ||||||
| 	85:  "bad executable (or shared library)", | 	{81, "ENEEDAUTH", "need authenticator"}, | ||||||
| 	86:  "bad CPU type in executable", | 	{82, "EPWROFF", "device power is off"}, | ||||||
| 	87:  "shared library version mismatch", | 	{83, "EDEVERR", "device error"}, | ||||||
| 	88:  "malformed Mach-o file", | 	{84, "EOVERFLOW", "value too large to be stored in data type"}, | ||||||
| 	89:  "operation canceled", | 	{85, "EBADEXEC", "bad executable (or shared library)"}, | ||||||
| 	90:  "identifier removed", | 	{86, "EBADARCH", "bad CPU type in executable"}, | ||||||
| 	91:  "no message of desired type", | 	{87, "ESHLIBVERS", "shared library version mismatch"}, | ||||||
| 	92:  "illegal byte sequence", | 	{88, "EBADMACHO", "malformed Mach-o file"}, | ||||||
| 	93:  "attribute not found", | 	{89, "ECANCELED", "operation canceled"}, | ||||||
| 	94:  "bad message", | 	{90, "EIDRM", "identifier removed"}, | ||||||
| 	95:  "EMULTIHOP (Reserved)", | 	{91, "ENOMSG", "no message of desired type"}, | ||||||
| 	96:  "no message available on STREAM", | 	{92, "EILSEQ", "illegal byte sequence"}, | ||||||
| 	97:  "ENOLINK (Reserved)", | 	{93, "ENOATTR", "attribute not found"}, | ||||||
| 	98:  "no STREAM resources", | 	{94, "EBADMSG", "bad message"}, | ||||||
| 	99:  "not a STREAM", | 	{95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, | ||||||
| 	100: "protocol error", | 	{96, "ENODATA", "no message available on STREAM"}, | ||||||
| 	101: "STREAM ioctl timeout", | 	{97, "ENOLINK", "ENOLINK (Reserved)"}, | ||||||
| 	102: "operation not supported on socket", | 	{98, "ENOSR", "no STREAM resources"}, | ||||||
| 	103: "policy not found", | 	{99, "ENOSTR", "not a STREAM"}, | ||||||
| 	104: "state not recoverable", | 	{100, "EPROTO", "protocol error"}, | ||||||
| 	105: "previous owner died", | 	{101, "ETIME", "STREAM ioctl timeout"}, | ||||||
| 	106: "interface output queue is full", | 	{102, "EOPNOTSUPP", "operation not supported on socket"}, | ||||||
|  | 	{103, "ENOPOLICY", "policy not found"}, | ||||||
|  | 	{104, "ENOTRECOVERABLE", "state not recoverable"}, | ||||||
|  | 	{105, "EOWNERDEAD", "previous owner died"}, | ||||||
|  | 	{106, "EQFULL", "interface output queue is full"}, | ||||||
| } | } | ||||||
|  |  | ||||||
| // Signal table | // Signal table | ||||||
| var signals = [...]string{ | var signalList = [...]struct { | ||||||
| 	1:  "hangup", | 	num  syscall.Signal | ||||||
| 	2:  "interrupt", | 	name string | ||||||
| 	3:  "quit", | 	desc string | ||||||
| 	4:  "illegal instruction", | }{ | ||||||
| 	5:  "trace/BPT trap", | 	{1, "SIGHUP", "hangup"}, | ||||||
| 	6:  "abort trap", | 	{2, "SIGINT", "interrupt"}, | ||||||
| 	7:  "EMT trap", | 	{3, "SIGQUIT", "quit"}, | ||||||
| 	8:  "floating point exception", | 	{4, "SIGILL", "illegal instruction"}, | ||||||
| 	9:  "killed", | 	{5, "SIGTRAP", "trace/BPT trap"}, | ||||||
| 	10: "bus error", | 	{6, "SIGABRT", "abort trap"}, | ||||||
| 	11: "segmentation fault", | 	{7, "SIGEMT", "EMT trap"}, | ||||||
| 	12: "bad system call", | 	{8, "SIGFPE", "floating point exception"}, | ||||||
| 	13: "broken pipe", | 	{9, "SIGKILL", "killed"}, | ||||||
| 	14: "alarm clock", | 	{10, "SIGBUS", "bus error"}, | ||||||
| 	15: "terminated", | 	{11, "SIGSEGV", "segmentation fault"}, | ||||||
| 	16: "urgent I/O condition", | 	{12, "SIGSYS", "bad system call"}, | ||||||
| 	17: "suspended (signal)", | 	{13, "SIGPIPE", "broken pipe"}, | ||||||
| 	18: "suspended", | 	{14, "SIGALRM", "alarm clock"}, | ||||||
| 	19: "continued", | 	{15, "SIGTERM", "terminated"}, | ||||||
| 	20: "child exited", | 	{16, "SIGURG", "urgent I/O condition"}, | ||||||
| 	21: "stopped (tty input)", | 	{17, "SIGSTOP", "suspended (signal)"}, | ||||||
| 	22: "stopped (tty output)", | 	{18, "SIGTSTP", "suspended"}, | ||||||
| 	23: "I/O possible", | 	{19, "SIGCONT", "continued"}, | ||||||
| 	24: "cputime limit exceeded", | 	{20, "SIGCHLD", "child exited"}, | ||||||
| 	25: "filesize limit exceeded", | 	{21, "SIGTTIN", "stopped (tty input)"}, | ||||||
| 	26: "virtual timer expired", | 	{22, "SIGTTOU", "stopped (tty output)"}, | ||||||
| 	27: "profiling timer expired", | 	{23, "SIGIO", "I/O possible"}, | ||||||
| 	28: "window size changes", | 	{24, "SIGXCPU", "cputime limit exceeded"}, | ||||||
| 	29: "information request", | 	{25, "SIGXFSZ", "filesize limit exceeded"}, | ||||||
| 	30: "user defined signal 1", | 	{26, "SIGVTALRM", "virtual timer expired"}, | ||||||
| 	31: "user defined signal 2", | 	{27, "SIGPROF", "profiling timer expired"}, | ||||||
|  | 	{28, "SIGWINCH", "window size changes"}, | ||||||
|  | 	{29, "SIGINFO", "information request"}, | ||||||
|  | 	{30, "SIGUSR1", "user defined signal 1"}, | ||||||
|  | 	{31, "SIGUSR2", "user defined signal 2"}, | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										388
									
								
								vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										388
									
								
								vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -49,6 +49,86 @@ const ( | |||||||
| 	AF_UNSPEC                         = 0x0 | 	AF_UNSPEC                         = 0x0 | ||||||
| 	AF_UTUN                           = 0x26 | 	AF_UTUN                           = 0x26 | ||||||
| 	ALTWERASE                         = 0x200 | 	ALTWERASE                         = 0x200 | ||||||
|  | 	ATTR_BIT_MAP_COUNT                = 0x5 | ||||||
|  | 	ATTR_CMN_ACCESSMASK               = 0x20000 | ||||||
|  | 	ATTR_CMN_ACCTIME                  = 0x1000 | ||||||
|  | 	ATTR_CMN_ADDEDTIME                = 0x10000000 | ||||||
|  | 	ATTR_CMN_BKUPTIME                 = 0x2000 | ||||||
|  | 	ATTR_CMN_CHGTIME                  = 0x800 | ||||||
|  | 	ATTR_CMN_CRTIME                   = 0x200 | ||||||
|  | 	ATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000 | ||||||
|  | 	ATTR_CMN_DEVID                    = 0x2 | ||||||
|  | 	ATTR_CMN_DOCUMENT_ID              = 0x100000 | ||||||
|  | 	ATTR_CMN_ERROR                    = 0x20000000 | ||||||
|  | 	ATTR_CMN_EXTENDED_SECURITY        = 0x400000 | ||||||
|  | 	ATTR_CMN_FILEID                   = 0x2000000 | ||||||
|  | 	ATTR_CMN_FLAGS                    = 0x40000 | ||||||
|  | 	ATTR_CMN_FNDRINFO                 = 0x4000 | ||||||
|  | 	ATTR_CMN_FSID                     = 0x4 | ||||||
|  | 	ATTR_CMN_FULLPATH                 = 0x8000000 | ||||||
|  | 	ATTR_CMN_GEN_COUNT                = 0x80000 | ||||||
|  | 	ATTR_CMN_GRPID                    = 0x10000 | ||||||
|  | 	ATTR_CMN_GRPUUID                  = 0x1000000 | ||||||
|  | 	ATTR_CMN_MODTIME                  = 0x400 | ||||||
|  | 	ATTR_CMN_NAME                     = 0x1 | ||||||
|  | 	ATTR_CMN_NAMEDATTRCOUNT           = 0x80000 | ||||||
|  | 	ATTR_CMN_NAMEDATTRLIST            = 0x100000 | ||||||
|  | 	ATTR_CMN_OBJID                    = 0x20 | ||||||
|  | 	ATTR_CMN_OBJPERMANENTID           = 0x40 | ||||||
|  | 	ATTR_CMN_OBJTAG                   = 0x10 | ||||||
|  | 	ATTR_CMN_OBJTYPE                  = 0x8 | ||||||
|  | 	ATTR_CMN_OWNERID                  = 0x8000 | ||||||
|  | 	ATTR_CMN_PARENTID                 = 0x4000000 | ||||||
|  | 	ATTR_CMN_PAROBJID                 = 0x80 | ||||||
|  | 	ATTR_CMN_RETURNED_ATTRS           = 0x80000000 | ||||||
|  | 	ATTR_CMN_SCRIPT                   = 0x100 | ||||||
|  | 	ATTR_CMN_SETMASK                  = 0x41c7ff00 | ||||||
|  | 	ATTR_CMN_USERACCESS               = 0x200000 | ||||||
|  | 	ATTR_CMN_UUID                     = 0x800000 | ||||||
|  | 	ATTR_CMN_VALIDMASK                = 0xffffffff | ||||||
|  | 	ATTR_CMN_VOLSETMASK               = 0x6700 | ||||||
|  | 	ATTR_FILE_ALLOCSIZE               = 0x4 | ||||||
|  | 	ATTR_FILE_CLUMPSIZE               = 0x10 | ||||||
|  | 	ATTR_FILE_DATAALLOCSIZE           = 0x400 | ||||||
|  | 	ATTR_FILE_DATAEXTENTS             = 0x800 | ||||||
|  | 	ATTR_FILE_DATALENGTH              = 0x200 | ||||||
|  | 	ATTR_FILE_DEVTYPE                 = 0x20 | ||||||
|  | 	ATTR_FILE_FILETYPE                = 0x40 | ||||||
|  | 	ATTR_FILE_FORKCOUNT               = 0x80 | ||||||
|  | 	ATTR_FILE_FORKLIST                = 0x100 | ||||||
|  | 	ATTR_FILE_IOBLOCKSIZE             = 0x8 | ||||||
|  | 	ATTR_FILE_LINKCOUNT               = 0x1 | ||||||
|  | 	ATTR_FILE_RSRCALLOCSIZE           = 0x2000 | ||||||
|  | 	ATTR_FILE_RSRCEXTENTS             = 0x4000 | ||||||
|  | 	ATTR_FILE_RSRCLENGTH              = 0x1000 | ||||||
|  | 	ATTR_FILE_SETMASK                 = 0x20 | ||||||
|  | 	ATTR_FILE_TOTALSIZE               = 0x2 | ||||||
|  | 	ATTR_FILE_VALIDMASK               = 0x37ff | ||||||
|  | 	ATTR_VOL_ALLOCATIONCLUMP          = 0x40 | ||||||
|  | 	ATTR_VOL_ATTRIBUTES               = 0x40000000 | ||||||
|  | 	ATTR_VOL_CAPABILITIES             = 0x20000 | ||||||
|  | 	ATTR_VOL_DIRCOUNT                 = 0x400 | ||||||
|  | 	ATTR_VOL_ENCODINGSUSED            = 0x10000 | ||||||
|  | 	ATTR_VOL_FILECOUNT                = 0x200 | ||||||
|  | 	ATTR_VOL_FSTYPE                   = 0x1 | ||||||
|  | 	ATTR_VOL_INFO                     = 0x80000000 | ||||||
|  | 	ATTR_VOL_IOBLOCKSIZE              = 0x80 | ||||||
|  | 	ATTR_VOL_MAXOBJCOUNT              = 0x800 | ||||||
|  | 	ATTR_VOL_MINALLOCATION            = 0x20 | ||||||
|  | 	ATTR_VOL_MOUNTEDDEVICE            = 0x8000 | ||||||
|  | 	ATTR_VOL_MOUNTFLAGS               = 0x4000 | ||||||
|  | 	ATTR_VOL_MOUNTPOINT               = 0x1000 | ||||||
|  | 	ATTR_VOL_NAME                     = 0x2000 | ||||||
|  | 	ATTR_VOL_OBJCOUNT                 = 0x100 | ||||||
|  | 	ATTR_VOL_QUOTA_SIZE               = 0x10000000 | ||||||
|  | 	ATTR_VOL_RESERVED_SIZE            = 0x20000000 | ||||||
|  | 	ATTR_VOL_SETMASK                  = 0x80002000 | ||||||
|  | 	ATTR_VOL_SIGNATURE                = 0x2 | ||||||
|  | 	ATTR_VOL_SIZE                     = 0x4 | ||||||
|  | 	ATTR_VOL_SPACEAVAIL               = 0x10 | ||||||
|  | 	ATTR_VOL_SPACEFREE                = 0x8 | ||||||
|  | 	ATTR_VOL_UUID                     = 0x40000 | ||||||
|  | 	ATTR_VOL_VALIDMASK                = 0xf007ffff | ||||||
| 	B0                                = 0x0 | 	B0                                = 0x0 | ||||||
| 	B110                              = 0x6e | 	B110                              = 0x6e | ||||||
| 	B115200                           = 0x1c200 | 	B115200                           = 0x1c200 | ||||||
| @@ -169,6 +249,8 @@ const ( | |||||||
| 	CSTOP                             = 0x13 | 	CSTOP                             = 0x13 | ||||||
| 	CSTOPB                            = 0x400 | 	CSTOPB                            = 0x400 | ||||||
| 	CSUSP                             = 0x1a | 	CSUSP                             = 0x1a | ||||||
|  | 	CTL_HW                            = 0x6 | ||||||
|  | 	CTL_KERN                          = 0x1 | ||||||
| 	CTL_MAXNAME                       = 0xc | 	CTL_MAXNAME                       = 0xc | ||||||
| 	CTL_NET                           = 0x4 | 	CTL_NET                           = 0x4 | ||||||
| 	DLT_A429                          = 0xb8 | 	DLT_A429                          = 0xb8 | ||||||
| @@ -390,6 +472,11 @@ const ( | |||||||
| 	FF1                               = 0x4000 | 	FF1                               = 0x4000 | ||||||
| 	FFDLY                             = 0x4000 | 	FFDLY                             = 0x4000 | ||||||
| 	FLUSHO                            = 0x800000 | 	FLUSHO                            = 0x800000 | ||||||
|  | 	FSOPT_ATTR_CMN_EXTENDED           = 0x20 | ||||||
|  | 	FSOPT_NOFOLLOW                    = 0x1 | ||||||
|  | 	FSOPT_NOINMEMUPDATE               = 0x2 | ||||||
|  | 	FSOPT_PACK_INVAL_ATTRS            = 0x8 | ||||||
|  | 	FSOPT_REPORT_FULLSIZE             = 0x4 | ||||||
| 	F_ADDFILESIGS                     = 0x3d | 	F_ADDFILESIGS                     = 0x3d | ||||||
| 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53 | 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53 | ||||||
| 	F_ADDFILESIGS_RETURN              = 0x61 | 	F_ADDFILESIGS_RETURN              = 0x61 | ||||||
| @@ -425,6 +512,7 @@ const ( | |||||||
| 	F_PATHPKG_CHECK                   = 0x34 | 	F_PATHPKG_CHECK                   = 0x34 | ||||||
| 	F_PEOFPOSMODE                     = 0x3 | 	F_PEOFPOSMODE                     = 0x3 | ||||||
| 	F_PREALLOCATE                     = 0x2a | 	F_PREALLOCATE                     = 0x2a | ||||||
|  | 	F_PUNCHHOLE                       = 0x63 | ||||||
| 	F_RDADVISE                        = 0x2c | 	F_RDADVISE                        = 0x2c | ||||||
| 	F_RDAHEAD                         = 0x2d | 	F_RDAHEAD                         = 0x2d | ||||||
| 	F_RDLCK                           = 0x1 | 	F_RDLCK                           = 0x1 | ||||||
| @@ -441,10 +529,12 @@ const ( | |||||||
| 	F_SINGLE_WRITER                   = 0x4c | 	F_SINGLE_WRITER                   = 0x4c | ||||||
| 	F_THAW_FS                         = 0x36 | 	F_THAW_FS                         = 0x36 | ||||||
| 	F_TRANSCODEKEY                    = 0x4b | 	F_TRANSCODEKEY                    = 0x4b | ||||||
|  | 	F_TRIM_ACTIVE_FILE                = 0x64 | ||||||
| 	F_UNLCK                           = 0x2 | 	F_UNLCK                           = 0x2 | ||||||
| 	F_VOLPOSMODE                      = 0x4 | 	F_VOLPOSMODE                      = 0x4 | ||||||
| 	F_WRLCK                           = 0x3 | 	F_WRLCK                           = 0x3 | ||||||
| 	HUPCL                             = 0x4000 | 	HUPCL                             = 0x4000 | ||||||
|  | 	HW_MACHINE                        = 0x1 | ||||||
| 	ICANON                            = 0x100 | 	ICANON                            = 0x100 | ||||||
| 	ICMP6_FILTER                      = 0x12 | 	ICMP6_FILTER                      = 0x12 | ||||||
| 	ICRNL                             = 0x100 | 	ICRNL                             = 0x100 | ||||||
| @@ -681,6 +771,7 @@ const ( | |||||||
| 	IPV6_FAITH                        = 0x1d | 	IPV6_FAITH                        = 0x1d | ||||||
| 	IPV6_FLOWINFO_MASK                = 0xffffff0f | 	IPV6_FLOWINFO_MASK                = 0xffffff0f | ||||||
| 	IPV6_FLOWLABEL_MASK               = 0xffff0f00 | 	IPV6_FLOWLABEL_MASK               = 0xffff0f00 | ||||||
|  | 	IPV6_FLOW_ECN_MASK                = 0x300 | ||||||
| 	IPV6_FRAGTTL                      = 0x3c | 	IPV6_FRAGTTL                      = 0x3c | ||||||
| 	IPV6_FW_ADD                       = 0x1e | 	IPV6_FW_ADD                       = 0x1e | ||||||
| 	IPV6_FW_DEL                       = 0x1f | 	IPV6_FW_DEL                       = 0x1f | ||||||
| @@ -771,6 +862,7 @@ const ( | |||||||
| 	IP_RECVOPTS                       = 0x5 | 	IP_RECVOPTS                       = 0x5 | ||||||
| 	IP_RECVPKTINFO                    = 0x1a | 	IP_RECVPKTINFO                    = 0x1a | ||||||
| 	IP_RECVRETOPTS                    = 0x6 | 	IP_RECVRETOPTS                    = 0x6 | ||||||
|  | 	IP_RECVTOS                        = 0x1b | ||||||
| 	IP_RECVTTL                        = 0x18 | 	IP_RECVTTL                        = 0x18 | ||||||
| 	IP_RETOPTS                        = 0x8 | 	IP_RETOPTS                        = 0x8 | ||||||
| 	IP_RF                             = 0x8000 | 	IP_RF                             = 0x8000 | ||||||
| @@ -789,6 +881,10 @@ const ( | |||||||
| 	IXANY                             = 0x800 | 	IXANY                             = 0x800 | ||||||
| 	IXOFF                             = 0x400 | 	IXOFF                             = 0x400 | ||||||
| 	IXON                              = 0x200 | 	IXON                              = 0x200 | ||||||
|  | 	KERN_HOSTNAME                     = 0xa | ||||||
|  | 	KERN_OSRELEASE                    = 0x2 | ||||||
|  | 	KERN_OSTYPE                       = 0x1 | ||||||
|  | 	KERN_VERSION                      = 0x4 | ||||||
| 	LOCK_EX                           = 0x2 | 	LOCK_EX                           = 0x2 | ||||||
| 	LOCK_NB                           = 0x4 | 	LOCK_NB                           = 0x4 | ||||||
| 	LOCK_SH                           = 0x1 | 	LOCK_SH                           = 0x1 | ||||||
| @@ -1377,6 +1473,12 @@ const ( | |||||||
| 	WORDSIZE                          = 0x40 | 	WORDSIZE                          = 0x40 | ||||||
| 	WSTOPPED                          = 0x8 | 	WSTOPPED                          = 0x8 | ||||||
| 	WUNTRACED                         = 0x2 | 	WUNTRACED                         = 0x2 | ||||||
|  | 	XATTR_CREATE                      = 0x2 | ||||||
|  | 	XATTR_NODEFAULT                   = 0x10 | ||||||
|  | 	XATTR_NOFOLLOW                    = 0x1 | ||||||
|  | 	XATTR_NOSECURITY                  = 0x8 | ||||||
|  | 	XATTR_REPLACE                     = 0x4 | ||||||
|  | 	XATTR_SHOWCOMPRESSION             = 0x20 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Errors | // Errors | ||||||
| @@ -1528,146 +1630,154 @@ const ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| // Error table | // Error table | ||||||
| var errors = [...]string{ | var errorList = [...]struct { | ||||||
| 	1:   "operation not permitted", | 	num  syscall.Errno | ||||||
| 	2:   "no such file or directory", | 	name string | ||||||
| 	3:   "no such process", | 	desc string | ||||||
| 	4:   "interrupted system call", | }{ | ||||||
| 	5:   "input/output error", | 	{1, "EPERM", "operation not permitted"}, | ||||||
| 	6:   "device not configured", | 	{2, "ENOENT", "no such file or directory"}, | ||||||
| 	7:   "argument list too long", | 	{3, "ESRCH", "no such process"}, | ||||||
| 	8:   "exec format error", | 	{4, "EINTR", "interrupted system call"}, | ||||||
| 	9:   "bad file descriptor", | 	{5, "EIO", "input/output error"}, | ||||||
| 	10:  "no child processes", | 	{6, "ENXIO", "device not configured"}, | ||||||
| 	11:  "resource deadlock avoided", | 	{7, "E2BIG", "argument list too long"}, | ||||||
| 	12:  "cannot allocate memory", | 	{8, "ENOEXEC", "exec format error"}, | ||||||
| 	13:  "permission denied", | 	{9, "EBADF", "bad file descriptor"}, | ||||||
| 	14:  "bad address", | 	{10, "ECHILD", "no child processes"}, | ||||||
| 	15:  "block device required", | 	{11, "EDEADLK", "resource deadlock avoided"}, | ||||||
| 	16:  "resource busy", | 	{12, "ENOMEM", "cannot allocate memory"}, | ||||||
| 	17:  "file exists", | 	{13, "EACCES", "permission denied"}, | ||||||
| 	18:  "cross-device link", | 	{14, "EFAULT", "bad address"}, | ||||||
| 	19:  "operation not supported by device", | 	{15, "ENOTBLK", "block device required"}, | ||||||
| 	20:  "not a directory", | 	{16, "EBUSY", "resource busy"}, | ||||||
| 	21:  "is a directory", | 	{17, "EEXIST", "file exists"}, | ||||||
| 	22:  "invalid argument", | 	{18, "EXDEV", "cross-device link"}, | ||||||
| 	23:  "too many open files in system", | 	{19, "ENODEV", "operation not supported by device"}, | ||||||
| 	24:  "too many open files", | 	{20, "ENOTDIR", "not a directory"}, | ||||||
| 	25:  "inappropriate ioctl for device", | 	{21, "EISDIR", "is a directory"}, | ||||||
| 	26:  "text file busy", | 	{22, "EINVAL", "invalid argument"}, | ||||||
| 	27:  "file too large", | 	{23, "ENFILE", "too many open files in system"}, | ||||||
| 	28:  "no space left on device", | 	{24, "EMFILE", "too many open files"}, | ||||||
| 	29:  "illegal seek", | 	{25, "ENOTTY", "inappropriate ioctl for device"}, | ||||||
| 	30:  "read-only file system", | 	{26, "ETXTBSY", "text file busy"}, | ||||||
| 	31:  "too many links", | 	{27, "EFBIG", "file too large"}, | ||||||
| 	32:  "broken pipe", | 	{28, "ENOSPC", "no space left on device"}, | ||||||
| 	33:  "numerical argument out of domain", | 	{29, "ESPIPE", "illegal seek"}, | ||||||
| 	34:  "result too large", | 	{30, "EROFS", "read-only file system"}, | ||||||
| 	35:  "resource temporarily unavailable", | 	{31, "EMLINK", "too many links"}, | ||||||
| 	36:  "operation now in progress", | 	{32, "EPIPE", "broken pipe"}, | ||||||
| 	37:  "operation already in progress", | 	{33, "EDOM", "numerical argument out of domain"}, | ||||||
| 	38:  "socket operation on non-socket", | 	{34, "ERANGE", "result too large"}, | ||||||
| 	39:  "destination address required", | 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||||
| 	40:  "message too long", | 	{36, "EINPROGRESS", "operation now in progress"}, | ||||||
| 	41:  "protocol wrong type for socket", | 	{37, "EALREADY", "operation already in progress"}, | ||||||
| 	42:  "protocol not available", | 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||||
| 	43:  "protocol not supported", | 	{39, "EDESTADDRREQ", "destination address required"}, | ||||||
| 	44:  "socket type not supported", | 	{40, "EMSGSIZE", "message too long"}, | ||||||
| 	45:  "operation not supported", | 	{41, "EPROTOTYPE", "protocol wrong type for socket"}, | ||||||
| 	46:  "protocol family not supported", | 	{42, "ENOPROTOOPT", "protocol not available"}, | ||||||
| 	47:  "address family not supported by protocol family", | 	{43, "EPROTONOSUPPORT", "protocol not supported"}, | ||||||
| 	48:  "address already in use", | 	{44, "ESOCKTNOSUPPORT", "socket type not supported"}, | ||||||
| 	49:  "can't assign requested address", | 	{45, "ENOTSUP", "operation not supported"}, | ||||||
| 	50:  "network is down", | 	{46, "EPFNOSUPPORT", "protocol family not supported"}, | ||||||
| 	51:  "network is unreachable", | 	{47, "EAFNOSUPPORT", "address family not supported by protocol family"}, | ||||||
| 	52:  "network dropped connection on reset", | 	{48, "EADDRINUSE", "address already in use"}, | ||||||
| 	53:  "software caused connection abort", | 	{49, "EADDRNOTAVAIL", "can't assign requested address"}, | ||||||
| 	54:  "connection reset by peer", | 	{50, "ENETDOWN", "network is down"}, | ||||||
| 	55:  "no buffer space available", | 	{51, "ENETUNREACH", "network is unreachable"}, | ||||||
| 	56:  "socket is already connected", | 	{52, "ENETRESET", "network dropped connection on reset"}, | ||||||
| 	57:  "socket is not connected", | 	{53, "ECONNABORTED", "software caused connection abort"}, | ||||||
| 	58:  "can't send after socket shutdown", | 	{54, "ECONNRESET", "connection reset by peer"}, | ||||||
| 	59:  "too many references: can't splice", | 	{55, "ENOBUFS", "no buffer space available"}, | ||||||
| 	60:  "operation timed out", | 	{56, "EISCONN", "socket is already connected"}, | ||||||
| 	61:  "connection refused", | 	{57, "ENOTCONN", "socket is not connected"}, | ||||||
| 	62:  "too many levels of symbolic links", | 	{58, "ESHUTDOWN", "can't send after socket shutdown"}, | ||||||
| 	63:  "file name too long", | 	{59, "ETOOMANYREFS", "too many references: can't splice"}, | ||||||
| 	64:  "host is down", | 	{60, "ETIMEDOUT", "operation timed out"}, | ||||||
| 	65:  "no route to host", | 	{61, "ECONNREFUSED", "connection refused"}, | ||||||
| 	66:  "directory not empty", | 	{62, "ELOOP", "too many levels of symbolic links"}, | ||||||
| 	67:  "too many processes", | 	{63, "ENAMETOOLONG", "file name too long"}, | ||||||
| 	68:  "too many users", | 	{64, "EHOSTDOWN", "host is down"}, | ||||||
| 	69:  "disc quota exceeded", | 	{65, "EHOSTUNREACH", "no route to host"}, | ||||||
| 	70:  "stale NFS file handle", | 	{66, "ENOTEMPTY", "directory not empty"}, | ||||||
| 	71:  "too many levels of remote in path", | 	{67, "EPROCLIM", "too many processes"}, | ||||||
| 	72:  "RPC struct is bad", | 	{68, "EUSERS", "too many users"}, | ||||||
| 	73:  "RPC version wrong", | 	{69, "EDQUOT", "disc quota exceeded"}, | ||||||
| 	74:  "RPC prog. not avail", | 	{70, "ESTALE", "stale NFS file handle"}, | ||||||
| 	75:  "program version wrong", | 	{71, "EREMOTE", "too many levels of remote in path"}, | ||||||
| 	76:  "bad procedure for program", | 	{72, "EBADRPC", "RPC struct is bad"}, | ||||||
| 	77:  "no locks available", | 	{73, "ERPCMISMATCH", "RPC version wrong"}, | ||||||
| 	78:  "function not implemented", | 	{74, "EPROGUNAVAIL", "RPC prog. not avail"}, | ||||||
| 	79:  "inappropriate file type or format", | 	{75, "EPROGMISMATCH", "program version wrong"}, | ||||||
| 	80:  "authentication error", | 	{76, "EPROCUNAVAIL", "bad procedure for program"}, | ||||||
| 	81:  "need authenticator", | 	{77, "ENOLCK", "no locks available"}, | ||||||
| 	82:  "device power is off", | 	{78, "ENOSYS", "function not implemented"}, | ||||||
| 	83:  "device error", | 	{79, "EFTYPE", "inappropriate file type or format"}, | ||||||
| 	84:  "value too large to be stored in data type", | 	{80, "EAUTH", "authentication error"}, | ||||||
| 	85:  "bad executable (or shared library)", | 	{81, "ENEEDAUTH", "need authenticator"}, | ||||||
| 	86:  "bad CPU type in executable", | 	{82, "EPWROFF", "device power is off"}, | ||||||
| 	87:  "shared library version mismatch", | 	{83, "EDEVERR", "device error"}, | ||||||
| 	88:  "malformed Mach-o file", | 	{84, "EOVERFLOW", "value too large to be stored in data type"}, | ||||||
| 	89:  "operation canceled", | 	{85, "EBADEXEC", "bad executable (or shared library)"}, | ||||||
| 	90:  "identifier removed", | 	{86, "EBADARCH", "bad CPU type in executable"}, | ||||||
| 	91:  "no message of desired type", | 	{87, "ESHLIBVERS", "shared library version mismatch"}, | ||||||
| 	92:  "illegal byte sequence", | 	{88, "EBADMACHO", "malformed Mach-o file"}, | ||||||
| 	93:  "attribute not found", | 	{89, "ECANCELED", "operation canceled"}, | ||||||
| 	94:  "bad message", | 	{90, "EIDRM", "identifier removed"}, | ||||||
| 	95:  "EMULTIHOP (Reserved)", | 	{91, "ENOMSG", "no message of desired type"}, | ||||||
| 	96:  "no message available on STREAM", | 	{92, "EILSEQ", "illegal byte sequence"}, | ||||||
| 	97:  "ENOLINK (Reserved)", | 	{93, "ENOATTR", "attribute not found"}, | ||||||
| 	98:  "no STREAM resources", | 	{94, "EBADMSG", "bad message"}, | ||||||
| 	99:  "not a STREAM", | 	{95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, | ||||||
| 	100: "protocol error", | 	{96, "ENODATA", "no message available on STREAM"}, | ||||||
| 	101: "STREAM ioctl timeout", | 	{97, "ENOLINK", "ENOLINK (Reserved)"}, | ||||||
| 	102: "operation not supported on socket", | 	{98, "ENOSR", "no STREAM resources"}, | ||||||
| 	103: "policy not found", | 	{99, "ENOSTR", "not a STREAM"}, | ||||||
| 	104: "state not recoverable", | 	{100, "EPROTO", "protocol error"}, | ||||||
| 	105: "previous owner died", | 	{101, "ETIME", "STREAM ioctl timeout"}, | ||||||
| 	106: "interface output queue is full", | 	{102, "EOPNOTSUPP", "operation not supported on socket"}, | ||||||
|  | 	{103, "ENOPOLICY", "policy not found"}, | ||||||
|  | 	{104, "ENOTRECOVERABLE", "state not recoverable"}, | ||||||
|  | 	{105, "EOWNERDEAD", "previous owner died"}, | ||||||
|  | 	{106, "EQFULL", "interface output queue is full"}, | ||||||
| } | } | ||||||
|  |  | ||||||
| // Signal table | // Signal table | ||||||
| var signals = [...]string{ | var signalList = [...]struct { | ||||||
| 	1:  "hangup", | 	num  syscall.Signal | ||||||
| 	2:  "interrupt", | 	name string | ||||||
| 	3:  "quit", | 	desc string | ||||||
| 	4:  "illegal instruction", | }{ | ||||||
| 	5:  "trace/BPT trap", | 	{1, "SIGHUP", "hangup"}, | ||||||
| 	6:  "abort trap", | 	{2, "SIGINT", "interrupt"}, | ||||||
| 	7:  "EMT trap", | 	{3, "SIGQUIT", "quit"}, | ||||||
| 	8:  "floating point exception", | 	{4, "SIGILL", "illegal instruction"}, | ||||||
| 	9:  "killed", | 	{5, "SIGTRAP", "trace/BPT trap"}, | ||||||
| 	10: "bus error", | 	{6, "SIGABRT", "abort trap"}, | ||||||
| 	11: "segmentation fault", | 	{7, "SIGEMT", "EMT trap"}, | ||||||
| 	12: "bad system call", | 	{8, "SIGFPE", "floating point exception"}, | ||||||
| 	13: "broken pipe", | 	{9, "SIGKILL", "killed"}, | ||||||
| 	14: "alarm clock", | 	{10, "SIGBUS", "bus error"}, | ||||||
| 	15: "terminated", | 	{11, "SIGSEGV", "segmentation fault"}, | ||||||
| 	16: "urgent I/O condition", | 	{12, "SIGSYS", "bad system call"}, | ||||||
| 	17: "suspended (signal)", | 	{13, "SIGPIPE", "broken pipe"}, | ||||||
| 	18: "suspended", | 	{14, "SIGALRM", "alarm clock"}, | ||||||
| 	19: "continued", | 	{15, "SIGTERM", "terminated"}, | ||||||
| 	20: "child exited", | 	{16, "SIGURG", "urgent I/O condition"}, | ||||||
| 	21: "stopped (tty input)", | 	{17, "SIGSTOP", "suspended (signal)"}, | ||||||
| 	22: "stopped (tty output)", | 	{18, "SIGTSTP", "suspended"}, | ||||||
| 	23: "I/O possible", | 	{19, "SIGCONT", "continued"}, | ||||||
| 	24: "cputime limit exceeded", | 	{20, "SIGCHLD", "child exited"}, | ||||||
| 	25: "filesize limit exceeded", | 	{21, "SIGTTIN", "stopped (tty input)"}, | ||||||
| 	26: "virtual timer expired", | 	{22, "SIGTTOU", "stopped (tty output)"}, | ||||||
| 	27: "profiling timer expired", | 	{23, "SIGIO", "I/O possible"}, | ||||||
| 	28: "window size changes", | 	{24, "SIGXCPU", "cputime limit exceeded"}, | ||||||
| 	29: "information request", | 	{25, "SIGXFSZ", "filesize limit exceeded"}, | ||||||
| 	30: "user defined signal 1", | 	{26, "SIGVTALRM", "virtual timer expired"}, | ||||||
| 	31: "user defined signal 2", | 	{27, "SIGPROF", "profiling timer expired"}, | ||||||
|  | 	{28, "SIGWINCH", "window size changes"}, | ||||||
|  | 	{29, "SIGINFO", "information request"}, | ||||||
|  | 	{30, "SIGUSR1", "user defined signal 1"}, | ||||||
|  | 	{31, "SIGUSR2", "user defined signal 2"}, | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										288
									
								
								vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										288
									
								
								vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -168,6 +168,8 @@ const ( | |||||||
| 	CSTOP                             = 0x13 | 	CSTOP                             = 0x13 | ||||||
| 	CSTOPB                            = 0x400 | 	CSTOPB                            = 0x400 | ||||||
| 	CSUSP                             = 0x1a | 	CSUSP                             = 0x1a | ||||||
|  | 	CTL_HW                            = 0x6 | ||||||
|  | 	CTL_KERN                          = 0x1 | ||||||
| 	CTL_MAXNAME                       = 0xc | 	CTL_MAXNAME                       = 0xc | ||||||
| 	CTL_NET                           = 0x4 | 	CTL_NET                           = 0x4 | ||||||
| 	DLT_A429                          = 0xb8 | 	DLT_A429                          = 0xb8 | ||||||
| @@ -353,6 +355,7 @@ const ( | |||||||
| 	F_UNLCK                           = 0x2 | 	F_UNLCK                           = 0x2 | ||||||
| 	F_WRLCK                           = 0x3 | 	F_WRLCK                           = 0x3 | ||||||
| 	HUPCL                             = 0x4000 | 	HUPCL                             = 0x4000 | ||||||
|  | 	HW_MACHINE                        = 0x1 | ||||||
| 	ICANON                            = 0x100 | 	ICANON                            = 0x100 | ||||||
| 	ICMP6_FILTER                      = 0x12 | 	ICMP6_FILTER                      = 0x12 | ||||||
| 	ICRNL                             = 0x100 | 	ICRNL                             = 0x100 | ||||||
| @@ -835,6 +838,10 @@ const ( | |||||||
| 	IXANY                             = 0x800 | 	IXANY                             = 0x800 | ||||||
| 	IXOFF                             = 0x400 | 	IXOFF                             = 0x400 | ||||||
| 	IXON                              = 0x200 | 	IXON                              = 0x200 | ||||||
|  | 	KERN_HOSTNAME                     = 0xa | ||||||
|  | 	KERN_OSRELEASE                    = 0x2 | ||||||
|  | 	KERN_OSTYPE                       = 0x1 | ||||||
|  | 	KERN_VERSION                      = 0x4 | ||||||
| 	LOCK_EX                           = 0x2 | 	LOCK_EX                           = 0x2 | ||||||
| 	LOCK_NB                           = 0x4 | 	LOCK_NB                           = 0x4 | ||||||
| 	LOCK_SH                           = 0x1 | 	LOCK_SH                           = 0x1 | ||||||
| @@ -973,7 +980,10 @@ const ( | |||||||
| 	RLIMIT_CPU                        = 0x0 | 	RLIMIT_CPU                        = 0x0 | ||||||
| 	RLIMIT_DATA                       = 0x2 | 	RLIMIT_DATA                       = 0x2 | ||||||
| 	RLIMIT_FSIZE                      = 0x1 | 	RLIMIT_FSIZE                      = 0x1 | ||||||
|  | 	RLIMIT_MEMLOCK                    = 0x6 | ||||||
| 	RLIMIT_NOFILE                     = 0x8 | 	RLIMIT_NOFILE                     = 0x8 | ||||||
|  | 	RLIMIT_NPROC                      = 0x7 | ||||||
|  | 	RLIMIT_RSS                        = 0x5 | ||||||
| 	RLIMIT_STACK                      = 0x3 | 	RLIMIT_STACK                      = 0x3 | ||||||
| 	RLIM_INFINITY                     = 0x7fffffffffffffff | 	RLIM_INFINITY                     = 0x7fffffffffffffff | ||||||
| 	RTAX_AUTHOR                       = 0x6 | 	RTAX_AUTHOR                       = 0x6 | ||||||
| @@ -1427,142 +1437,150 @@ const ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| // Error table | // Error table | ||||||
| var errors = [...]string{ | var errorList = [...]struct { | ||||||
| 	1:  "operation not permitted", | 	num  syscall.Errno | ||||||
| 	2:  "no such file or directory", | 	name string | ||||||
| 	3:  "no such process", | 	desc string | ||||||
| 	4:  "interrupted system call", | }{ | ||||||
| 	5:  "input/output error", | 	{1, "EPERM", "operation not permitted"}, | ||||||
| 	6:  "device not configured", | 	{2, "ENOENT", "no such file or directory"}, | ||||||
| 	7:  "argument list too long", | 	{3, "ESRCH", "no such process"}, | ||||||
| 	8:  "exec format error", | 	{4, "EINTR", "interrupted system call"}, | ||||||
| 	9:  "bad file descriptor", | 	{5, "EIO", "input/output error"}, | ||||||
| 	10: "no child processes", | 	{6, "ENXIO", "device not configured"}, | ||||||
| 	11: "resource deadlock avoided", | 	{7, "E2BIG", "argument list too long"}, | ||||||
| 	12: "cannot allocate memory", | 	{8, "ENOEXEC", "exec format error"}, | ||||||
| 	13: "permission denied", | 	{9, "EBADF", "bad file descriptor"}, | ||||||
| 	14: "bad address", | 	{10, "ECHILD", "no child processes"}, | ||||||
| 	15: "block device required", | 	{11, "EDEADLK", "resource deadlock avoided"}, | ||||||
| 	16: "device busy", | 	{12, "ENOMEM", "cannot allocate memory"}, | ||||||
| 	17: "file exists", | 	{13, "EACCES", "permission denied"}, | ||||||
| 	18: "cross-device link", | 	{14, "EFAULT", "bad address"}, | ||||||
| 	19: "operation not supported by device", | 	{15, "ENOTBLK", "block device required"}, | ||||||
| 	20: "not a directory", | 	{16, "EBUSY", "device busy"}, | ||||||
| 	21: "is a directory", | 	{17, "EEXIST", "file exists"}, | ||||||
| 	22: "invalid argument", | 	{18, "EXDEV", "cross-device link"}, | ||||||
| 	23: "too many open files in system", | 	{19, "ENODEV", "operation not supported by device"}, | ||||||
| 	24: "too many open files", | 	{20, "ENOTDIR", "not a directory"}, | ||||||
| 	25: "inappropriate ioctl for device", | 	{21, "EISDIR", "is a directory"}, | ||||||
| 	26: "text file busy", | 	{22, "EINVAL", "invalid argument"}, | ||||||
| 	27: "file too large", | 	{23, "ENFILE", "too many open files in system"}, | ||||||
| 	28: "no space left on device", | 	{24, "EMFILE", "too many open files"}, | ||||||
| 	29: "illegal seek", | 	{25, "ENOTTY", "inappropriate ioctl for device"}, | ||||||
| 	30: "read-only file system", | 	{26, "ETXTBSY", "text file busy"}, | ||||||
| 	31: "too many links", | 	{27, "EFBIG", "file too large"}, | ||||||
| 	32: "broken pipe", | 	{28, "ENOSPC", "no space left on device"}, | ||||||
| 	33: "numerical argument out of domain", | 	{29, "ESPIPE", "illegal seek"}, | ||||||
| 	34: "result too large", | 	{30, "EROFS", "read-only file system"}, | ||||||
| 	35: "resource temporarily unavailable", | 	{31, "EMLINK", "too many links"}, | ||||||
| 	36: "operation now in progress", | 	{32, "EPIPE", "broken pipe"}, | ||||||
| 	37: "operation already in progress", | 	{33, "EDOM", "numerical argument out of domain"}, | ||||||
| 	38: "socket operation on non-socket", | 	{34, "ERANGE", "result too large"}, | ||||||
| 	39: "destination address required", | 	{35, "EWOULDBLOCK", "resource temporarily unavailable"}, | ||||||
| 	40: "message too long", | 	{36, "EINPROGRESS", "operation now in progress"}, | ||||||
| 	41: "protocol wrong type for socket", | 	{37, "EALREADY", "operation already in progress"}, | ||||||
| 	42: "protocol not available", | 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||||
| 	43: "protocol not supported", | 	{39, "EDESTADDRREQ", "destination address required"}, | ||||||
| 	44: "socket type not supported", | 	{40, "EMSGSIZE", "message too long"}, | ||||||
| 	45: "operation not supported", | 	{41, "EPROTOTYPE", "protocol wrong type for socket"}, | ||||||
| 	46: "protocol family not supported", | 	{42, "ENOPROTOOPT", "protocol not available"}, | ||||||
| 	47: "address family not supported by protocol family", | 	{43, "EPROTONOSUPPORT", "protocol not supported"}, | ||||||
| 	48: "address already in use", | 	{44, "ESOCKTNOSUPPORT", "socket type not supported"}, | ||||||
| 	49: "can't assign requested address", | 	{45, "EOPNOTSUPP", "operation not supported"}, | ||||||
| 	50: "network is down", | 	{46, "EPFNOSUPPORT", "protocol family not supported"}, | ||||||
| 	51: "network is unreachable", | 	{47, "EAFNOSUPPORT", "address family not supported by protocol family"}, | ||||||
| 	52: "network dropped connection on reset", | 	{48, "EADDRINUSE", "address already in use"}, | ||||||
| 	53: "software caused connection abort", | 	{49, "EADDRNOTAVAIL", "can't assign requested address"}, | ||||||
| 	54: "connection reset by peer", | 	{50, "ENETDOWN", "network is down"}, | ||||||
| 	55: "no buffer space available", | 	{51, "ENETUNREACH", "network is unreachable"}, | ||||||
| 	56: "socket is already connected", | 	{52, "ENETRESET", "network dropped connection on reset"}, | ||||||
| 	57: "socket is not connected", | 	{53, "ECONNABORTED", "software caused connection abort"}, | ||||||
| 	58: "can't send after socket shutdown", | 	{54, "ECONNRESET", "connection reset by peer"}, | ||||||
| 	59: "too many references: can't splice", | 	{55, "ENOBUFS", "no buffer space available"}, | ||||||
| 	60: "operation timed out", | 	{56, "EISCONN", "socket is already connected"}, | ||||||
| 	61: "connection refused", | 	{57, "ENOTCONN", "socket is not connected"}, | ||||||
| 	62: "too many levels of symbolic links", | 	{58, "ESHUTDOWN", "can't send after socket shutdown"}, | ||||||
| 	63: "file name too long", | 	{59, "ETOOMANYREFS", "too many references: can't splice"}, | ||||||
| 	64: "host is down", | 	{60, "ETIMEDOUT", "operation timed out"}, | ||||||
| 	65: "no route to host", | 	{61, "ECONNREFUSED", "connection refused"}, | ||||||
| 	66: "directory not empty", | 	{62, "ELOOP", "too many levels of symbolic links"}, | ||||||
| 	67: "too many processes", | 	{63, "ENAMETOOLONG", "file name too long"}, | ||||||
| 	68: "too many users", | 	{64, "EHOSTDOWN", "host is down"}, | ||||||
| 	69: "disc quota exceeded", | 	{65, "EHOSTUNREACH", "no route to host"}, | ||||||
| 	70: "stale NFS file handle", | 	{66, "ENOTEMPTY", "directory not empty"}, | ||||||
| 	71: "too many levels of remote in path", | 	{67, "EPROCLIM", "too many processes"}, | ||||||
| 	72: "RPC struct is bad", | 	{68, "EUSERS", "too many users"}, | ||||||
| 	73: "RPC version wrong", | 	{69, "EDQUOT", "disc quota exceeded"}, | ||||||
| 	74: "RPC prog. not avail", | 	{70, "ESTALE", "stale NFS file handle"}, | ||||||
| 	75: "program version wrong", | 	{71, "EREMOTE", "too many levels of remote in path"}, | ||||||
| 	76: "bad procedure for program", | 	{72, "EBADRPC", "RPC struct is bad"}, | ||||||
| 	77: "no locks available", | 	{73, "ERPCMISMATCH", "RPC version wrong"}, | ||||||
| 	78: "function not implemented", | 	{74, "EPROGUNAVAIL", "RPC prog. not avail"}, | ||||||
| 	79: "inappropriate file type or format", | 	{75, "EPROGMISMATCH", "program version wrong"}, | ||||||
| 	80: "authentication error", | 	{76, "EPROCUNAVAIL", "bad procedure for program"}, | ||||||
| 	81: "need authenticator", | 	{77, "ENOLCK", "no locks available"}, | ||||||
| 	82: "identifier removed", | 	{78, "ENOSYS", "function not implemented"}, | ||||||
| 	83: "no message of desired type", | 	{79, "EFTYPE", "inappropriate file type or format"}, | ||||||
| 	84: "value too large to be stored in data type", | 	{80, "EAUTH", "authentication error"}, | ||||||
| 	85: "operation canceled", | 	{81, "ENEEDAUTH", "need authenticator"}, | ||||||
| 	86: "illegal byte sequence", | 	{82, "EIDRM", "identifier removed"}, | ||||||
| 	87: "attribute not found", | 	{83, "ENOMSG", "no message of desired type"}, | ||||||
| 	88: "programming error", | 	{84, "EOVERFLOW", "value too large to be stored in data type"}, | ||||||
| 	89: "bad message", | 	{85, "ECANCELED", "operation canceled"}, | ||||||
| 	90: "multihop attempted", | 	{86, "EILSEQ", "illegal byte sequence"}, | ||||||
| 	91: "link has been severed", | 	{87, "ENOATTR", "attribute not found"}, | ||||||
| 	92: "protocol error", | 	{88, "EDOOFUS", "programming error"}, | ||||||
| 	93: "no medium found", | 	{89, "EBADMSG", "bad message"}, | ||||||
| 	94: "unknown error: 94", | 	{90, "EMULTIHOP", "multihop attempted"}, | ||||||
| 	95: "unknown error: 95", | 	{91, "ENOLINK", "link has been severed"}, | ||||||
| 	96: "unknown error: 96", | 	{92, "EPROTO", "protocol error"}, | ||||||
| 	97: "unknown error: 97", | 	{93, "ENOMEDIUM", "no medium found"}, | ||||||
| 	98: "unknown error: 98", | 	{94, "EUNUSED94", "unknown error: 94"}, | ||||||
| 	99: "unknown error: 99", | 	{95, "EUNUSED95", "unknown error: 95"}, | ||||||
|  | 	{96, "EUNUSED96", "unknown error: 96"}, | ||||||
|  | 	{97, "EUNUSED97", "unknown error: 97"}, | ||||||
|  | 	{98, "EUNUSED98", "unknown error: 98"}, | ||||||
|  | 	{99, "ELAST", "unknown error: 99"}, | ||||||
| } | } | ||||||
|  |  | ||||||
| // Signal table | // Signal table | ||||||
| var signals = [...]string{ | var signalList = [...]struct { | ||||||
| 	1:  "hangup", | 	num  syscall.Signal | ||||||
| 	2:  "interrupt", | 	name string | ||||||
| 	3:  "quit", | 	desc string | ||||||
| 	4:  "illegal instruction", | }{ | ||||||
| 	5:  "trace/BPT trap", | 	{1, "SIGHUP", "hangup"}, | ||||||
| 	6:  "abort trap", | 	{2, "SIGINT", "interrupt"}, | ||||||
| 	7:  "EMT trap", | 	{3, "SIGQUIT", "quit"}, | ||||||
| 	8:  "floating point exception", | 	{4, "SIGILL", "illegal instruction"}, | ||||||
| 	9:  "killed", | 	{5, "SIGTRAP", "trace/BPT trap"}, | ||||||
| 	10: "bus error", | 	{6, "SIGIOT", "abort trap"}, | ||||||
| 	11: "segmentation fault", | 	{7, "SIGEMT", "EMT trap"}, | ||||||
| 	12: "bad system call", | 	{8, "SIGFPE", "floating point exception"}, | ||||||
| 	13: "broken pipe", | 	{9, "SIGKILL", "killed"}, | ||||||
| 	14: "alarm clock", | 	{10, "SIGBUS", "bus error"}, | ||||||
| 	15: "terminated", | 	{11, "SIGSEGV", "segmentation fault"}, | ||||||
| 	16: "urgent I/O condition", | 	{12, "SIGSYS", "bad system call"}, | ||||||
| 	17: "suspended (signal)", | 	{13, "SIGPIPE", "broken pipe"}, | ||||||
| 	18: "suspended", | 	{14, "SIGALRM", "alarm clock"}, | ||||||
| 	19: "continued", | 	{15, "SIGTERM", "terminated"}, | ||||||
| 	20: "child exited", | 	{16, "SIGURG", "urgent I/O condition"}, | ||||||
| 	21: "stopped (tty input)", | 	{17, "SIGSTOP", "suspended (signal)"}, | ||||||
| 	22: "stopped (tty output)", | 	{18, "SIGTSTP", "suspended"}, | ||||||
| 	23: "I/O possible", | 	{19, "SIGCONT", "continued"}, | ||||||
| 	24: "cputime limit exceeded", | 	{20, "SIGCHLD", "child exited"}, | ||||||
| 	25: "filesize limit exceeded", | 	{21, "SIGTTIN", "stopped (tty input)"}, | ||||||
| 	26: "virtual timer expired", | 	{22, "SIGTTOU", "stopped (tty output)"}, | ||||||
| 	27: "profiling timer expired", | 	{23, "SIGIO", "I/O possible"}, | ||||||
| 	28: "window size changes", | 	{24, "SIGXCPU", "cputime limit exceeded"}, | ||||||
| 	29: "information request", | 	{25, "SIGXFSZ", "filesize limit exceeded"}, | ||||||
| 	30: "user defined signal 1", | 	{26, "SIGVTALRM", "virtual timer expired"}, | ||||||
| 	31: "user defined signal 2", | 	{27, "SIGPROF", "profiling timer expired"}, | ||||||
| 	32: "thread Scheduler", | 	{28, "SIGWINCH", "window size changes"}, | ||||||
| 	33: "checkPoint", | 	{29, "SIGINFO", "information request"}, | ||||||
| 	34: "checkPointExit", | 	{30, "SIGUSR1", "user defined signal 1"}, | ||||||
|  | 	{31, "SIGUSR2", "user defined signal 2"}, | ||||||
|  | 	{32, "SIGTHR", "thread Scheduler"}, | ||||||
|  | 	{33, "SIGCKPT", "checkPoint"}, | ||||||
|  | 	{34, "SIGCKPTEXIT", "checkPointExit"}, | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										320
									
								
								vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										320
									
								
								vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -351,6 +351,8 @@ const ( | |||||||
| 	CSTOP                          = 0x13 | 	CSTOP                          = 0x13 | ||||||
| 	CSTOPB                         = 0x400 | 	CSTOPB                         = 0x400 | ||||||
| 	CSUSP                          = 0x1a | 	CSUSP                          = 0x1a | ||||||
|  | 	CTL_HW                         = 0x6 | ||||||
|  | 	CTL_KERN                       = 0x1 | ||||||
| 	CTL_MAXNAME                    = 0x18 | 	CTL_MAXNAME                    = 0x18 | ||||||
| 	CTL_NET                        = 0x4 | 	CTL_NET                        = 0x4 | ||||||
| 	DLT_A429                       = 0xb8 | 	DLT_A429                       = 0xb8 | ||||||
| @@ -608,6 +610,7 @@ const ( | |||||||
| 	F_UNLCKSYS                     = 0x4 | 	F_UNLCKSYS                     = 0x4 | ||||||
| 	F_WRLCK                        = 0x3 | 	F_WRLCK                        = 0x3 | ||||||
| 	HUPCL                          = 0x4000 | 	HUPCL                          = 0x4000 | ||||||
|  | 	HW_MACHINE                     = 0x1 | ||||||
| 	ICANON                         = 0x100 | 	ICANON                         = 0x100 | ||||||
| 	ICMP6_FILTER                   = 0x12 | 	ICMP6_FILTER                   = 0x12 | ||||||
| 	ICRNL                          = 0x100 | 	ICRNL                          = 0x100 | ||||||
| @@ -944,6 +947,10 @@ const ( | |||||||
| 	IXANY                          = 0x800 | 	IXANY                          = 0x800 | ||||||
| 	IXOFF                          = 0x400 | 	IXOFF                          = 0x400 | ||||||
| 	IXON                           = 0x200 | 	IXON                           = 0x200 | ||||||
|  | 	KERN_HOSTNAME                  = 0xa | ||||||
|  | 	KERN_OSRELEASE                 = 0x2 | ||||||
|  | 	KERN_OSTYPE                    = 0x1 | ||||||
|  | 	KERN_VERSION                   = 0x4 | ||||||
| 	LOCK_EX                        = 0x2 | 	LOCK_EX                        = 0x2 | ||||||
| 	LOCK_NB                        = 0x4 | 	LOCK_NB                        = 0x4 | ||||||
| 	LOCK_SH                        = 0x1 | 	LOCK_SH                        = 0x1 | ||||||
| @@ -981,6 +988,49 @@ const ( | |||||||
| 	MAP_STACK                      = 0x400 | 	MAP_STACK                      = 0x400 | ||||||
| 	MCL_CURRENT                    = 0x1 | 	MCL_CURRENT                    = 0x1 | ||||||
| 	MCL_FUTURE                     = 0x2 | 	MCL_FUTURE                     = 0x2 | ||||||
|  | 	MNT_ACLS                       = 0x8000000 | ||||||
|  | 	MNT_ASYNC                      = 0x40 | ||||||
|  | 	MNT_AUTOMOUNTED                = 0x200000000 | ||||||
|  | 	MNT_BYFSID                     = 0x8000000 | ||||||
|  | 	MNT_CMDFLAGS                   = 0xd0f0000 | ||||||
|  | 	MNT_DEFEXPORTED                = 0x200 | ||||||
|  | 	MNT_DELEXPORT                  = 0x20000 | ||||||
|  | 	MNT_EXKERB                     = 0x800 | ||||||
|  | 	MNT_EXPORTANON                 = 0x400 | ||||||
|  | 	MNT_EXPORTED                   = 0x100 | ||||||
|  | 	MNT_EXPUBLIC                   = 0x20000000 | ||||||
|  | 	MNT_EXRDONLY                   = 0x80 | ||||||
|  | 	MNT_FORCE                      = 0x80000 | ||||||
|  | 	MNT_GJOURNAL                   = 0x2000000 | ||||||
|  | 	MNT_IGNORE                     = 0x800000 | ||||||
|  | 	MNT_LAZY                       = 0x3 | ||||||
|  | 	MNT_LOCAL                      = 0x1000 | ||||||
|  | 	MNT_MULTILABEL                 = 0x4000000 | ||||||
|  | 	MNT_NFS4ACLS                   = 0x10 | ||||||
|  | 	MNT_NOATIME                    = 0x10000000 | ||||||
|  | 	MNT_NOCLUSTERR                 = 0x40000000 | ||||||
|  | 	MNT_NOCLUSTERW                 = 0x80000000 | ||||||
|  | 	MNT_NOEXEC                     = 0x4 | ||||||
|  | 	MNT_NONBUSY                    = 0x4000000 | ||||||
|  | 	MNT_NOSUID                     = 0x8 | ||||||
|  | 	MNT_NOSYMFOLLOW                = 0x400000 | ||||||
|  | 	MNT_NOWAIT                     = 0x2 | ||||||
|  | 	MNT_QUOTA                      = 0x2000 | ||||||
|  | 	MNT_RDONLY                     = 0x1 | ||||||
|  | 	MNT_RELOAD                     = 0x40000 | ||||||
|  | 	MNT_ROOTFS                     = 0x4000 | ||||||
|  | 	MNT_SNAPSHOT                   = 0x1000000 | ||||||
|  | 	MNT_SOFTDEP                    = 0x200000 | ||||||
|  | 	MNT_SUIDDIR                    = 0x100000 | ||||||
|  | 	MNT_SUJ                        = 0x100000000 | ||||||
|  | 	MNT_SUSPEND                    = 0x4 | ||||||
|  | 	MNT_SYNCHRONOUS                = 0x2 | ||||||
|  | 	MNT_UNION                      = 0x20 | ||||||
|  | 	MNT_UPDATE                     = 0x10000 | ||||||
|  | 	MNT_UPDATEMASK                 = 0x2d8d0807e | ||||||
|  | 	MNT_USER                       = 0x8000 | ||||||
|  | 	MNT_VISFLAGMASK                = 0x3fef0ffff | ||||||
|  | 	MNT_WAIT                       = 0x1 | ||||||
| 	MSG_CMSG_CLOEXEC               = 0x40000 | 	MSG_CMSG_CLOEXEC               = 0x40000 | ||||||
| 	MSG_COMPAT                     = 0x8000 | 	MSG_COMPAT                     = 0x8000 | ||||||
| 	MSG_CTRUNC                     = 0x20 | 	MSG_CTRUNC                     = 0x20 | ||||||
| @@ -1569,138 +1619,146 @@ const ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| // Error table | // Error table | ||||||
| var errors = [...]string{ | var errorList = [...]struct { | ||||||
| 	1:  "operation not permitted", | 	num  syscall.Errno | ||||||
| 	2:  "no such file or directory", | 	name string | ||||||
| 	3:  "no such process", | 	desc string | ||||||
| 	4:  "interrupted system call", | }{ | ||||||
| 	5:  "input/output error", | 	{1, "EPERM", "operation not permitted"}, | ||||||
| 	6:  "device not configured", | 	{2, "ENOENT", "no such file or directory"}, | ||||||
| 	7:  "argument list too long", | 	{3, "ESRCH", "no such process"}, | ||||||
| 	8:  "exec format error", | 	{4, "EINTR", "interrupted system call"}, | ||||||
| 	9:  "bad file descriptor", | 	{5, "EIO", "input/output error"}, | ||||||
| 	10: "no child processes", | 	{6, "ENXIO", "device not configured"}, | ||||||
| 	11: "resource deadlock avoided", | 	{7, "E2BIG", "argument list too long"}, | ||||||
| 	12: "cannot allocate memory", | 	{8, "ENOEXEC", "exec format error"}, | ||||||
| 	13: "permission denied", | 	{9, "EBADF", "bad file descriptor"}, | ||||||
| 	14: "bad address", | 	{10, "ECHILD", "no child processes"}, | ||||||
| 	15: "block device required", | 	{11, "EDEADLK", "resource deadlock avoided"}, | ||||||
| 	16: "device busy", | 	{12, "ENOMEM", "cannot allocate memory"}, | ||||||
| 	17: "file exists", | 	{13, "EACCES", "permission denied"}, | ||||||
| 	18: "cross-device link", | 	{14, "EFAULT", "bad address"}, | ||||||
| 	19: "operation not supported by device", | 	{15, "ENOTBLK", "block device required"}, | ||||||
| 	20: "not a directory", | 	{16, "EBUSY", "device busy"}, | ||||||
| 	21: "is a directory", | 	{17, "EEXIST", "file exists"}, | ||||||
| 	22: "invalid argument", | 	{18, "EXDEV", "cross-device link"}, | ||||||
| 	23: "too many open files in system", | 	{19, "ENODEV", "operation not supported by device"}, | ||||||
| 	24: "too many open files", | 	{20, "ENOTDIR", "not a directory"}, | ||||||
| 	25: "inappropriate ioctl for device", | 	{21, "EISDIR", "is a directory"}, | ||||||
| 	26: "text file busy", | 	{22, "EINVAL", "invalid argument"}, | ||||||
| 	27: "file too large", | 	{23, "ENFILE", "too many open files in system"}, | ||||||
| 	28: "no space left on device", | 	{24, "EMFILE", "too many open files"}, | ||||||
| 	29: "illegal seek", | 	{25, "ENOTTY", "inappropriate ioctl for device"}, | ||||||
| 	30: "read-only file system", | 	{26, "ETXTBSY", "text file busy"}, | ||||||
| 	31: "too many links", | 	{27, "EFBIG", "file too large"}, | ||||||
| 	32: "broken pipe", | 	{28, "ENOSPC", "no space left on device"}, | ||||||
| 	33: "numerical argument out of domain", | 	{29, "ESPIPE", "illegal seek"}, | ||||||
| 	34: "result too large", | 	{30, "EROFS", "read-only file system"}, | ||||||
| 	35: "resource temporarily unavailable", | 	{31, "EMLINK", "too many links"}, | ||||||
| 	36: "operation now in progress", | 	{32, "EPIPE", "broken pipe"}, | ||||||
| 	37: "operation already in progress", | 	{33, "EDOM", "numerical argument out of domain"}, | ||||||
| 	38: "socket operation on non-socket", | 	{34, "ERANGE", "result too large"}, | ||||||
| 	39: "destination address required", | 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||||
| 	40: "message too long", | 	{36, "EINPROGRESS", "operation now in progress"}, | ||||||
| 	41: "protocol wrong type for socket", | 	{37, "EALREADY", "operation already in progress"}, | ||||||
| 	42: "protocol not available", | 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||||
| 	43: "protocol not supported", | 	{39, "EDESTADDRREQ", "destination address required"}, | ||||||
| 	44: "socket type not supported", | 	{40, "EMSGSIZE", "message too long"}, | ||||||
| 	45: "operation not supported", | 	{41, "EPROTOTYPE", "protocol wrong type for socket"}, | ||||||
| 	46: "protocol family not supported", | 	{42, "ENOPROTOOPT", "protocol not available"}, | ||||||
| 	47: "address family not supported by protocol family", | 	{43, "EPROTONOSUPPORT", "protocol not supported"}, | ||||||
| 	48: "address already in use", | 	{44, "ESOCKTNOSUPPORT", "socket type not supported"}, | ||||||
| 	49: "can't assign requested address", | 	{45, "EOPNOTSUPP", "operation not supported"}, | ||||||
| 	50: "network is down", | 	{46, "EPFNOSUPPORT", "protocol family not supported"}, | ||||||
| 	51: "network is unreachable", | 	{47, "EAFNOSUPPORT", "address family not supported by protocol family"}, | ||||||
| 	52: "network dropped connection on reset", | 	{48, "EADDRINUSE", "address already in use"}, | ||||||
| 	53: "software caused connection abort", | 	{49, "EADDRNOTAVAIL", "can't assign requested address"}, | ||||||
| 	54: "connection reset by peer", | 	{50, "ENETDOWN", "network is down"}, | ||||||
| 	55: "no buffer space available", | 	{51, "ENETUNREACH", "network is unreachable"}, | ||||||
| 	56: "socket is already connected", | 	{52, "ENETRESET", "network dropped connection on reset"}, | ||||||
| 	57: "socket is not connected", | 	{53, "ECONNABORTED", "software caused connection abort"}, | ||||||
| 	58: "can't send after socket shutdown", | 	{54, "ECONNRESET", "connection reset by peer"}, | ||||||
| 	59: "too many references: can't splice", | 	{55, "ENOBUFS", "no buffer space available"}, | ||||||
| 	60: "operation timed out", | 	{56, "EISCONN", "socket is already connected"}, | ||||||
| 	61: "connection refused", | 	{57, "ENOTCONN", "socket is not connected"}, | ||||||
| 	62: "too many levels of symbolic links", | 	{58, "ESHUTDOWN", "can't send after socket shutdown"}, | ||||||
| 	63: "file name too long", | 	{59, "ETOOMANYREFS", "too many references: can't splice"}, | ||||||
| 	64: "host is down", | 	{60, "ETIMEDOUT", "operation timed out"}, | ||||||
| 	65: "no route to host", | 	{61, "ECONNREFUSED", "connection refused"}, | ||||||
| 	66: "directory not empty", | 	{62, "ELOOP", "too many levels of symbolic links"}, | ||||||
| 	67: "too many processes", | 	{63, "ENAMETOOLONG", "file name too long"}, | ||||||
| 	68: "too many users", | 	{64, "EHOSTDOWN", "host is down"}, | ||||||
| 	69: "disc quota exceeded", | 	{65, "EHOSTUNREACH", "no route to host"}, | ||||||
| 	70: "stale NFS file handle", | 	{66, "ENOTEMPTY", "directory not empty"}, | ||||||
| 	71: "too many levels of remote in path", | 	{67, "EPROCLIM", "too many processes"}, | ||||||
| 	72: "RPC struct is bad", | 	{68, "EUSERS", "too many users"}, | ||||||
| 	73: "RPC version wrong", | 	{69, "EDQUOT", "disc quota exceeded"}, | ||||||
| 	74: "RPC prog. not avail", | 	{70, "ESTALE", "stale NFS file handle"}, | ||||||
| 	75: "program version wrong", | 	{71, "EREMOTE", "too many levels of remote in path"}, | ||||||
| 	76: "bad procedure for program", | 	{72, "EBADRPC", "RPC struct is bad"}, | ||||||
| 	77: "no locks available", | 	{73, "ERPCMISMATCH", "RPC version wrong"}, | ||||||
| 	78: "function not implemented", | 	{74, "EPROGUNAVAIL", "RPC prog. not avail"}, | ||||||
| 	79: "inappropriate file type or format", | 	{75, "EPROGMISMATCH", "program version wrong"}, | ||||||
| 	80: "authentication error", | 	{76, "EPROCUNAVAIL", "bad procedure for program"}, | ||||||
| 	81: "need authenticator", | 	{77, "ENOLCK", "no locks available"}, | ||||||
| 	82: "identifier removed", | 	{78, "ENOSYS", "function not implemented"}, | ||||||
| 	83: "no message of desired type", | 	{79, "EFTYPE", "inappropriate file type or format"}, | ||||||
| 	84: "value too large to be stored in data type", | 	{80, "EAUTH", "authentication error"}, | ||||||
| 	85: "operation canceled", | 	{81, "ENEEDAUTH", "need authenticator"}, | ||||||
| 	86: "illegal byte sequence", | 	{82, "EIDRM", "identifier removed"}, | ||||||
| 	87: "attribute not found", | 	{83, "ENOMSG", "no message of desired type"}, | ||||||
| 	88: "programming error", | 	{84, "EOVERFLOW", "value too large to be stored in data type"}, | ||||||
| 	89: "bad message", | 	{85, "ECANCELED", "operation canceled"}, | ||||||
| 	90: "multihop attempted", | 	{86, "EILSEQ", "illegal byte sequence"}, | ||||||
| 	91: "link has been severed", | 	{87, "ENOATTR", "attribute not found"}, | ||||||
| 	92: "protocol error", | 	{88, "EDOOFUS", "programming error"}, | ||||||
| 	93: "capabilities insufficient", | 	{89, "EBADMSG", "bad message"}, | ||||||
| 	94: "not permitted in capability mode", | 	{90, "EMULTIHOP", "multihop attempted"}, | ||||||
| 	95: "state not recoverable", | 	{91, "ENOLINK", "link has been severed"}, | ||||||
| 	96: "previous owner died", | 	{92, "EPROTO", "protocol error"}, | ||||||
|  | 	{93, "ENOTCAPABLE", "capabilities insufficient"}, | ||||||
|  | 	{94, "ECAPMODE", "not permitted in capability mode"}, | ||||||
|  | 	{95, "ENOTRECOVERABLE", "state not recoverable"}, | ||||||
|  | 	{96, "EOWNERDEAD", "previous owner died"}, | ||||||
| } | } | ||||||
|  |  | ||||||
| // Signal table | // Signal table | ||||||
| var signals = [...]string{ | var signalList = [...]struct { | ||||||
| 	1:  "hangup", | 	num  syscall.Signal | ||||||
| 	2:  "interrupt", | 	name string | ||||||
| 	3:  "quit", | 	desc string | ||||||
| 	4:  "illegal instruction", | }{ | ||||||
| 	5:  "trace/BPT trap", | 	{1, "SIGHUP", "hangup"}, | ||||||
| 	6:  "abort trap", | 	{2, "SIGINT", "interrupt"}, | ||||||
| 	7:  "EMT trap", | 	{3, "SIGQUIT", "quit"}, | ||||||
| 	8:  "floating point exception", | 	{4, "SIGILL", "illegal instruction"}, | ||||||
| 	9:  "killed", | 	{5, "SIGTRAP", "trace/BPT trap"}, | ||||||
| 	10: "bus error", | 	{6, "SIGIOT", "abort trap"}, | ||||||
| 	11: "segmentation fault", | 	{7, "SIGEMT", "EMT trap"}, | ||||||
| 	12: "bad system call", | 	{8, "SIGFPE", "floating point exception"}, | ||||||
| 	13: "broken pipe", | 	{9, "SIGKILL", "killed"}, | ||||||
| 	14: "alarm clock", | 	{10, "SIGBUS", "bus error"}, | ||||||
| 	15: "terminated", | 	{11, "SIGSEGV", "segmentation fault"}, | ||||||
| 	16: "urgent I/O condition", | 	{12, "SIGSYS", "bad system call"}, | ||||||
| 	17: "suspended (signal)", | 	{13, "SIGPIPE", "broken pipe"}, | ||||||
| 	18: "suspended", | 	{14, "SIGALRM", "alarm clock"}, | ||||||
| 	19: "continued", | 	{15, "SIGTERM", "terminated"}, | ||||||
| 	20: "child exited", | 	{16, "SIGURG", "urgent I/O condition"}, | ||||||
| 	21: "stopped (tty input)", | 	{17, "SIGSTOP", "suspended (signal)"}, | ||||||
| 	22: "stopped (tty output)", | 	{18, "SIGTSTP", "suspended"}, | ||||||
| 	23: "I/O possible", | 	{19, "SIGCONT", "continued"}, | ||||||
| 	24: "cputime limit exceeded", | 	{20, "SIGCHLD", "child exited"}, | ||||||
| 	25: "filesize limit exceeded", | 	{21, "SIGTTIN", "stopped (tty input)"}, | ||||||
| 	26: "virtual timer expired", | 	{22, "SIGTTOU", "stopped (tty output)"}, | ||||||
| 	27: "profiling timer expired", | 	{23, "SIGIO", "I/O possible"}, | ||||||
| 	28: "window size changes", | 	{24, "SIGXCPU", "cputime limit exceeded"}, | ||||||
| 	29: "information request", | 	{25, "SIGXFSZ", "filesize limit exceeded"}, | ||||||
| 	30: "user defined signal 1", | 	{26, "SIGVTALRM", "virtual timer expired"}, | ||||||
| 	31: "user defined signal 2", | 	{27, "SIGPROF", "profiling timer expired"}, | ||||||
| 	32: "unknown signal", | 	{28, "SIGWINCH", "window size changes"}, | ||||||
| 	33: "unknown signal", | 	{29, "SIGINFO", "information request"}, | ||||||
|  | 	{30, "SIGUSR1", "user defined signal 1"}, | ||||||
|  | 	{31, "SIGUSR2", "user defined signal 2"}, | ||||||
|  | 	{32, "SIGTHR", "unknown signal"}, | ||||||
|  | 	{33, "SIGLIBRT", "unknown signal"}, | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										320
									
								
								vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										320
									
								
								vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -351,6 +351,8 @@ const ( | |||||||
| 	CSTOP                          = 0x13 | 	CSTOP                          = 0x13 | ||||||
| 	CSTOPB                         = 0x400 | 	CSTOPB                         = 0x400 | ||||||
| 	CSUSP                          = 0x1a | 	CSUSP                          = 0x1a | ||||||
|  | 	CTL_HW                         = 0x6 | ||||||
|  | 	CTL_KERN                       = 0x1 | ||||||
| 	CTL_MAXNAME                    = 0x18 | 	CTL_MAXNAME                    = 0x18 | ||||||
| 	CTL_NET                        = 0x4 | 	CTL_NET                        = 0x4 | ||||||
| 	DLT_A429                       = 0xb8 | 	DLT_A429                       = 0xb8 | ||||||
| @@ -608,6 +610,7 @@ const ( | |||||||
| 	F_UNLCKSYS                     = 0x4 | 	F_UNLCKSYS                     = 0x4 | ||||||
| 	F_WRLCK                        = 0x3 | 	F_WRLCK                        = 0x3 | ||||||
| 	HUPCL                          = 0x4000 | 	HUPCL                          = 0x4000 | ||||||
|  | 	HW_MACHINE                     = 0x1 | ||||||
| 	ICANON                         = 0x100 | 	ICANON                         = 0x100 | ||||||
| 	ICMP6_FILTER                   = 0x12 | 	ICMP6_FILTER                   = 0x12 | ||||||
| 	ICRNL                          = 0x100 | 	ICRNL                          = 0x100 | ||||||
| @@ -944,6 +947,10 @@ const ( | |||||||
| 	IXANY                          = 0x800 | 	IXANY                          = 0x800 | ||||||
| 	IXOFF                          = 0x400 | 	IXOFF                          = 0x400 | ||||||
| 	IXON                           = 0x200 | 	IXON                           = 0x200 | ||||||
|  | 	KERN_HOSTNAME                  = 0xa | ||||||
|  | 	KERN_OSRELEASE                 = 0x2 | ||||||
|  | 	KERN_OSTYPE                    = 0x1 | ||||||
|  | 	KERN_VERSION                   = 0x4 | ||||||
| 	LOCK_EX                        = 0x2 | 	LOCK_EX                        = 0x2 | ||||||
| 	LOCK_NB                        = 0x4 | 	LOCK_NB                        = 0x4 | ||||||
| 	LOCK_SH                        = 0x1 | 	LOCK_SH                        = 0x1 | ||||||
| @@ -982,6 +989,49 @@ const ( | |||||||
| 	MAP_STACK                      = 0x400 | 	MAP_STACK                      = 0x400 | ||||||
| 	MCL_CURRENT                    = 0x1 | 	MCL_CURRENT                    = 0x1 | ||||||
| 	MCL_FUTURE                     = 0x2 | 	MCL_FUTURE                     = 0x2 | ||||||
|  | 	MNT_ACLS                       = 0x8000000 | ||||||
|  | 	MNT_ASYNC                      = 0x40 | ||||||
|  | 	MNT_AUTOMOUNTED                = 0x200000000 | ||||||
|  | 	MNT_BYFSID                     = 0x8000000 | ||||||
|  | 	MNT_CMDFLAGS                   = 0xd0f0000 | ||||||
|  | 	MNT_DEFEXPORTED                = 0x200 | ||||||
|  | 	MNT_DELEXPORT                  = 0x20000 | ||||||
|  | 	MNT_EXKERB                     = 0x800 | ||||||
|  | 	MNT_EXPORTANON                 = 0x400 | ||||||
|  | 	MNT_EXPORTED                   = 0x100 | ||||||
|  | 	MNT_EXPUBLIC                   = 0x20000000 | ||||||
|  | 	MNT_EXRDONLY                   = 0x80 | ||||||
|  | 	MNT_FORCE                      = 0x80000 | ||||||
|  | 	MNT_GJOURNAL                   = 0x2000000 | ||||||
|  | 	MNT_IGNORE                     = 0x800000 | ||||||
|  | 	MNT_LAZY                       = 0x3 | ||||||
|  | 	MNT_LOCAL                      = 0x1000 | ||||||
|  | 	MNT_MULTILABEL                 = 0x4000000 | ||||||
|  | 	MNT_NFS4ACLS                   = 0x10 | ||||||
|  | 	MNT_NOATIME                    = 0x10000000 | ||||||
|  | 	MNT_NOCLUSTERR                 = 0x40000000 | ||||||
|  | 	MNT_NOCLUSTERW                 = 0x80000000 | ||||||
|  | 	MNT_NOEXEC                     = 0x4 | ||||||
|  | 	MNT_NONBUSY                    = 0x4000000 | ||||||
|  | 	MNT_NOSUID                     = 0x8 | ||||||
|  | 	MNT_NOSYMFOLLOW                = 0x400000 | ||||||
|  | 	MNT_NOWAIT                     = 0x2 | ||||||
|  | 	MNT_QUOTA                      = 0x2000 | ||||||
|  | 	MNT_RDONLY                     = 0x1 | ||||||
|  | 	MNT_RELOAD                     = 0x40000 | ||||||
|  | 	MNT_ROOTFS                     = 0x4000 | ||||||
|  | 	MNT_SNAPSHOT                   = 0x1000000 | ||||||
|  | 	MNT_SOFTDEP                    = 0x200000 | ||||||
|  | 	MNT_SUIDDIR                    = 0x100000 | ||||||
|  | 	MNT_SUJ                        = 0x100000000 | ||||||
|  | 	MNT_SUSPEND                    = 0x4 | ||||||
|  | 	MNT_SYNCHRONOUS                = 0x2 | ||||||
|  | 	MNT_UNION                      = 0x20 | ||||||
|  | 	MNT_UPDATE                     = 0x10000 | ||||||
|  | 	MNT_UPDATEMASK                 = 0x2d8d0807e | ||||||
|  | 	MNT_USER                       = 0x8000 | ||||||
|  | 	MNT_VISFLAGMASK                = 0x3fef0ffff | ||||||
|  | 	MNT_WAIT                       = 0x1 | ||||||
| 	MSG_CMSG_CLOEXEC               = 0x40000 | 	MSG_CMSG_CLOEXEC               = 0x40000 | ||||||
| 	MSG_COMPAT                     = 0x8000 | 	MSG_COMPAT                     = 0x8000 | ||||||
| 	MSG_CTRUNC                     = 0x20 | 	MSG_CTRUNC                     = 0x20 | ||||||
| @@ -1570,138 +1620,146 @@ const ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| // Error table | // Error table | ||||||
| var errors = [...]string{ | var errorList = [...]struct { | ||||||
| 	1:  "operation not permitted", | 	num  syscall.Errno | ||||||
| 	2:  "no such file or directory", | 	name string | ||||||
| 	3:  "no such process", | 	desc string | ||||||
| 	4:  "interrupted system call", | }{ | ||||||
| 	5:  "input/output error", | 	{1, "EPERM", "operation not permitted"}, | ||||||
| 	6:  "device not configured", | 	{2, "ENOENT", "no such file or directory"}, | ||||||
| 	7:  "argument list too long", | 	{3, "ESRCH", "no such process"}, | ||||||
| 	8:  "exec format error", | 	{4, "EINTR", "interrupted system call"}, | ||||||
| 	9:  "bad file descriptor", | 	{5, "EIO", "input/output error"}, | ||||||
| 	10: "no child processes", | 	{6, "ENXIO", "device not configured"}, | ||||||
| 	11: "resource deadlock avoided", | 	{7, "E2BIG", "argument list too long"}, | ||||||
| 	12: "cannot allocate memory", | 	{8, "ENOEXEC", "exec format error"}, | ||||||
| 	13: "permission denied", | 	{9, "EBADF", "bad file descriptor"}, | ||||||
| 	14: "bad address", | 	{10, "ECHILD", "no child processes"}, | ||||||
| 	15: "block device required", | 	{11, "EDEADLK", "resource deadlock avoided"}, | ||||||
| 	16: "device busy", | 	{12, "ENOMEM", "cannot allocate memory"}, | ||||||
| 	17: "file exists", | 	{13, "EACCES", "permission denied"}, | ||||||
| 	18: "cross-device link", | 	{14, "EFAULT", "bad address"}, | ||||||
| 	19: "operation not supported by device", | 	{15, "ENOTBLK", "block device required"}, | ||||||
| 	20: "not a directory", | 	{16, "EBUSY", "device busy"}, | ||||||
| 	21: "is a directory", | 	{17, "EEXIST", "file exists"}, | ||||||
| 	22: "invalid argument", | 	{18, "EXDEV", "cross-device link"}, | ||||||
| 	23: "too many open files in system", | 	{19, "ENODEV", "operation not supported by device"}, | ||||||
| 	24: "too many open files", | 	{20, "ENOTDIR", "not a directory"}, | ||||||
| 	25: "inappropriate ioctl for device", | 	{21, "EISDIR", "is a directory"}, | ||||||
| 	26: "text file busy", | 	{22, "EINVAL", "invalid argument"}, | ||||||
| 	27: "file too large", | 	{23, "ENFILE", "too many open files in system"}, | ||||||
| 	28: "no space left on device", | 	{24, "EMFILE", "too many open files"}, | ||||||
| 	29: "illegal seek", | 	{25, "ENOTTY", "inappropriate ioctl for device"}, | ||||||
| 	30: "read-only file system", | 	{26, "ETXTBSY", "text file busy"}, | ||||||
| 	31: "too many links", | 	{27, "EFBIG", "file too large"}, | ||||||
| 	32: "broken pipe", | 	{28, "ENOSPC", "no space left on device"}, | ||||||
| 	33: "numerical argument out of domain", | 	{29, "ESPIPE", "illegal seek"}, | ||||||
| 	34: "result too large", | 	{30, "EROFS", "read-only file system"}, | ||||||
| 	35: "resource temporarily unavailable", | 	{31, "EMLINK", "too many links"}, | ||||||
| 	36: "operation now in progress", | 	{32, "EPIPE", "broken pipe"}, | ||||||
| 	37: "operation already in progress", | 	{33, "EDOM", "numerical argument out of domain"}, | ||||||
| 	38: "socket operation on non-socket", | 	{34, "ERANGE", "result too large"}, | ||||||
| 	39: "destination address required", | 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||||
| 	40: "message too long", | 	{36, "EINPROGRESS", "operation now in progress"}, | ||||||
| 	41: "protocol wrong type for socket", | 	{37, "EALREADY", "operation already in progress"}, | ||||||
| 	42: "protocol not available", | 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||||
| 	43: "protocol not supported", | 	{39, "EDESTADDRREQ", "destination address required"}, | ||||||
| 	44: "socket type not supported", | 	{40, "EMSGSIZE", "message too long"}, | ||||||
| 	45: "operation not supported", | 	{41, "EPROTOTYPE", "protocol wrong type for socket"}, | ||||||
| 	46: "protocol family not supported", | 	{42, "ENOPROTOOPT", "protocol not available"}, | ||||||
| 	47: "address family not supported by protocol family", | 	{43, "EPROTONOSUPPORT", "protocol not supported"}, | ||||||
| 	48: "address already in use", | 	{44, "ESOCKTNOSUPPORT", "socket type not supported"}, | ||||||
| 	49: "can't assign requested address", | 	{45, "EOPNOTSUPP", "operation not supported"}, | ||||||
| 	50: "network is down", | 	{46, "EPFNOSUPPORT", "protocol family not supported"}, | ||||||
| 	51: "network is unreachable", | 	{47, "EAFNOSUPPORT", "address family not supported by protocol family"}, | ||||||
| 	52: "network dropped connection on reset", | 	{48, "EADDRINUSE", "address already in use"}, | ||||||
| 	53: "software caused connection abort", | 	{49, "EADDRNOTAVAIL", "can't assign requested address"}, | ||||||
| 	54: "connection reset by peer", | 	{50, "ENETDOWN", "network is down"}, | ||||||
| 	55: "no buffer space available", | 	{51, "ENETUNREACH", "network is unreachable"}, | ||||||
| 	56: "socket is already connected", | 	{52, "ENETRESET", "network dropped connection on reset"}, | ||||||
| 	57: "socket is not connected", | 	{53, "ECONNABORTED", "software caused connection abort"}, | ||||||
| 	58: "can't send after socket shutdown", | 	{54, "ECONNRESET", "connection reset by peer"}, | ||||||
| 	59: "too many references: can't splice", | 	{55, "ENOBUFS", "no buffer space available"}, | ||||||
| 	60: "operation timed out", | 	{56, "EISCONN", "socket is already connected"}, | ||||||
| 	61: "connection refused", | 	{57, "ENOTCONN", "socket is not connected"}, | ||||||
| 	62: "too many levels of symbolic links", | 	{58, "ESHUTDOWN", "can't send after socket shutdown"}, | ||||||
| 	63: "file name too long", | 	{59, "ETOOMANYREFS", "too many references: can't splice"}, | ||||||
| 	64: "host is down", | 	{60, "ETIMEDOUT", "operation timed out"}, | ||||||
| 	65: "no route to host", | 	{61, "ECONNREFUSED", "connection refused"}, | ||||||
| 	66: "directory not empty", | 	{62, "ELOOP", "too many levels of symbolic links"}, | ||||||
| 	67: "too many processes", | 	{63, "ENAMETOOLONG", "file name too long"}, | ||||||
| 	68: "too many users", | 	{64, "EHOSTDOWN", "host is down"}, | ||||||
| 	69: "disc quota exceeded", | 	{65, "EHOSTUNREACH", "no route to host"}, | ||||||
| 	70: "stale NFS file handle", | 	{66, "ENOTEMPTY", "directory not empty"}, | ||||||
| 	71: "too many levels of remote in path", | 	{67, "EPROCLIM", "too many processes"}, | ||||||
| 	72: "RPC struct is bad", | 	{68, "EUSERS", "too many users"}, | ||||||
| 	73: "RPC version wrong", | 	{69, "EDQUOT", "disc quota exceeded"}, | ||||||
| 	74: "RPC prog. not avail", | 	{70, "ESTALE", "stale NFS file handle"}, | ||||||
| 	75: "program version wrong", | 	{71, "EREMOTE", "too many levels of remote in path"}, | ||||||
| 	76: "bad procedure for program", | 	{72, "EBADRPC", "RPC struct is bad"}, | ||||||
| 	77: "no locks available", | 	{73, "ERPCMISMATCH", "RPC version wrong"}, | ||||||
| 	78: "function not implemented", | 	{74, "EPROGUNAVAIL", "RPC prog. not avail"}, | ||||||
| 	79: "inappropriate file type or format", | 	{75, "EPROGMISMATCH", "program version wrong"}, | ||||||
| 	80: "authentication error", | 	{76, "EPROCUNAVAIL", "bad procedure for program"}, | ||||||
| 	81: "need authenticator", | 	{77, "ENOLCK", "no locks available"}, | ||||||
| 	82: "identifier removed", | 	{78, "ENOSYS", "function not implemented"}, | ||||||
| 	83: "no message of desired type", | 	{79, "EFTYPE", "inappropriate file type or format"}, | ||||||
| 	84: "value too large to be stored in data type", | 	{80, "EAUTH", "authentication error"}, | ||||||
| 	85: "operation canceled", | 	{81, "ENEEDAUTH", "need authenticator"}, | ||||||
| 	86: "illegal byte sequence", | 	{82, "EIDRM", "identifier removed"}, | ||||||
| 	87: "attribute not found", | 	{83, "ENOMSG", "no message of desired type"}, | ||||||
| 	88: "programming error", | 	{84, "EOVERFLOW", "value too large to be stored in data type"}, | ||||||
| 	89: "bad message", | 	{85, "ECANCELED", "operation canceled"}, | ||||||
| 	90: "multihop attempted", | 	{86, "EILSEQ", "illegal byte sequence"}, | ||||||
| 	91: "link has been severed", | 	{87, "ENOATTR", "attribute not found"}, | ||||||
| 	92: "protocol error", | 	{88, "EDOOFUS", "programming error"}, | ||||||
| 	93: "capabilities insufficient", | 	{89, "EBADMSG", "bad message"}, | ||||||
| 	94: "not permitted in capability mode", | 	{90, "EMULTIHOP", "multihop attempted"}, | ||||||
| 	95: "state not recoverable", | 	{91, "ENOLINK", "link has been severed"}, | ||||||
| 	96: "previous owner died", | 	{92, "EPROTO", "protocol error"}, | ||||||
|  | 	{93, "ENOTCAPABLE", "capabilities insufficient"}, | ||||||
|  | 	{94, "ECAPMODE", "not permitted in capability mode"}, | ||||||
|  | 	{95, "ENOTRECOVERABLE", "state not recoverable"}, | ||||||
|  | 	{96, "EOWNERDEAD", "previous owner died"}, | ||||||
| } | } | ||||||
|  |  | ||||||
| // Signal table | // Signal table | ||||||
| var signals = [...]string{ | var signalList = [...]struct { | ||||||
| 	1:  "hangup", | 	num  syscall.Signal | ||||||
| 	2:  "interrupt", | 	name string | ||||||
| 	3:  "quit", | 	desc string | ||||||
| 	4:  "illegal instruction", | }{ | ||||||
| 	5:  "trace/BPT trap", | 	{1, "SIGHUP", "hangup"}, | ||||||
| 	6:  "abort trap", | 	{2, "SIGINT", "interrupt"}, | ||||||
| 	7:  "EMT trap", | 	{3, "SIGQUIT", "quit"}, | ||||||
| 	8:  "floating point exception", | 	{4, "SIGILL", "illegal instruction"}, | ||||||
| 	9:  "killed", | 	{5, "SIGTRAP", "trace/BPT trap"}, | ||||||
| 	10: "bus error", | 	{6, "SIGIOT", "abort trap"}, | ||||||
| 	11: "segmentation fault", | 	{7, "SIGEMT", "EMT trap"}, | ||||||
| 	12: "bad system call", | 	{8, "SIGFPE", "floating point exception"}, | ||||||
| 	13: "broken pipe", | 	{9, "SIGKILL", "killed"}, | ||||||
| 	14: "alarm clock", | 	{10, "SIGBUS", "bus error"}, | ||||||
| 	15: "terminated", | 	{11, "SIGSEGV", "segmentation fault"}, | ||||||
| 	16: "urgent I/O condition", | 	{12, "SIGSYS", "bad system call"}, | ||||||
| 	17: "suspended (signal)", | 	{13, "SIGPIPE", "broken pipe"}, | ||||||
| 	18: "suspended", | 	{14, "SIGALRM", "alarm clock"}, | ||||||
| 	19: "continued", | 	{15, "SIGTERM", "terminated"}, | ||||||
| 	20: "child exited", | 	{16, "SIGURG", "urgent I/O condition"}, | ||||||
| 	21: "stopped (tty input)", | 	{17, "SIGSTOP", "suspended (signal)"}, | ||||||
| 	22: "stopped (tty output)", | 	{18, "SIGTSTP", "suspended"}, | ||||||
| 	23: "I/O possible", | 	{19, "SIGCONT", "continued"}, | ||||||
| 	24: "cputime limit exceeded", | 	{20, "SIGCHLD", "child exited"}, | ||||||
| 	25: "filesize limit exceeded", | 	{21, "SIGTTIN", "stopped (tty input)"}, | ||||||
| 	26: "virtual timer expired", | 	{22, "SIGTTOU", "stopped (tty output)"}, | ||||||
| 	27: "profiling timer expired", | 	{23, "SIGIO", "I/O possible"}, | ||||||
| 	28: "window size changes", | 	{24, "SIGXCPU", "cputime limit exceeded"}, | ||||||
| 	29: "information request", | 	{25, "SIGXFSZ", "filesize limit exceeded"}, | ||||||
| 	30: "user defined signal 1", | 	{26, "SIGVTALRM", "virtual timer expired"}, | ||||||
| 	31: "user defined signal 2", | 	{27, "SIGPROF", "profiling timer expired"}, | ||||||
| 	32: "unknown signal", | 	{28, "SIGWINCH", "window size changes"}, | ||||||
| 	33: "unknown signal", | 	{29, "SIGINFO", "information request"}, | ||||||
|  | 	{30, "SIGUSR1", "user defined signal 1"}, | ||||||
|  | 	{31, "SIGUSR2", "user defined signal 2"}, | ||||||
|  | 	{32, "SIGTHR", "unknown signal"}, | ||||||
|  | 	{33, "SIGLIBRT", "unknown signal"}, | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										320
									
								
								vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										320
									
								
								vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -351,6 +351,8 @@ const ( | |||||||
| 	CSTOP                          = 0x13 | 	CSTOP                          = 0x13 | ||||||
| 	CSTOPB                         = 0x400 | 	CSTOPB                         = 0x400 | ||||||
| 	CSUSP                          = 0x1a | 	CSUSP                          = 0x1a | ||||||
|  | 	CTL_HW                         = 0x6 | ||||||
|  | 	CTL_KERN                       = 0x1 | ||||||
| 	CTL_MAXNAME                    = 0x18 | 	CTL_MAXNAME                    = 0x18 | ||||||
| 	CTL_NET                        = 0x4 | 	CTL_NET                        = 0x4 | ||||||
| 	DLT_A429                       = 0xb8 | 	DLT_A429                       = 0xb8 | ||||||
| @@ -615,6 +617,7 @@ const ( | |||||||
| 	F_UNLCKSYS                     = 0x4 | 	F_UNLCKSYS                     = 0x4 | ||||||
| 	F_WRLCK                        = 0x3 | 	F_WRLCK                        = 0x3 | ||||||
| 	HUPCL                          = 0x4000 | 	HUPCL                          = 0x4000 | ||||||
|  | 	HW_MACHINE                     = 0x1 | ||||||
| 	ICANON                         = 0x100 | 	ICANON                         = 0x100 | ||||||
| 	ICMP6_FILTER                   = 0x12 | 	ICMP6_FILTER                   = 0x12 | ||||||
| 	ICRNL                          = 0x100 | 	ICRNL                          = 0x100 | ||||||
| @@ -951,6 +954,10 @@ const ( | |||||||
| 	IXANY                          = 0x800 | 	IXANY                          = 0x800 | ||||||
| 	IXOFF                          = 0x400 | 	IXOFF                          = 0x400 | ||||||
| 	IXON                           = 0x200 | 	IXON                           = 0x200 | ||||||
|  | 	KERN_HOSTNAME                  = 0xa | ||||||
|  | 	KERN_OSRELEASE                 = 0x2 | ||||||
|  | 	KERN_OSTYPE                    = 0x1 | ||||||
|  | 	KERN_VERSION                   = 0x4 | ||||||
| 	LOCK_EX                        = 0x2 | 	LOCK_EX                        = 0x2 | ||||||
| 	LOCK_NB                        = 0x4 | 	LOCK_NB                        = 0x4 | ||||||
| 	LOCK_SH                        = 0x1 | 	LOCK_SH                        = 0x1 | ||||||
| @@ -989,6 +996,49 @@ const ( | |||||||
| 	MAP_STACK                      = 0x400 | 	MAP_STACK                      = 0x400 | ||||||
| 	MCL_CURRENT                    = 0x1 | 	MCL_CURRENT                    = 0x1 | ||||||
| 	MCL_FUTURE                     = 0x2 | 	MCL_FUTURE                     = 0x2 | ||||||
|  | 	MNT_ACLS                       = 0x8000000 | ||||||
|  | 	MNT_ASYNC                      = 0x40 | ||||||
|  | 	MNT_AUTOMOUNTED                = 0x200000000 | ||||||
|  | 	MNT_BYFSID                     = 0x8000000 | ||||||
|  | 	MNT_CMDFLAGS                   = 0xd0f0000 | ||||||
|  | 	MNT_DEFEXPORTED                = 0x200 | ||||||
|  | 	MNT_DELEXPORT                  = 0x20000 | ||||||
|  | 	MNT_EXKERB                     = 0x800 | ||||||
|  | 	MNT_EXPORTANON                 = 0x400 | ||||||
|  | 	MNT_EXPORTED                   = 0x100 | ||||||
|  | 	MNT_EXPUBLIC                   = 0x20000000 | ||||||
|  | 	MNT_EXRDONLY                   = 0x80 | ||||||
|  | 	MNT_FORCE                      = 0x80000 | ||||||
|  | 	MNT_GJOURNAL                   = 0x2000000 | ||||||
|  | 	MNT_IGNORE                     = 0x800000 | ||||||
|  | 	MNT_LAZY                       = 0x3 | ||||||
|  | 	MNT_LOCAL                      = 0x1000 | ||||||
|  | 	MNT_MULTILABEL                 = 0x4000000 | ||||||
|  | 	MNT_NFS4ACLS                   = 0x10 | ||||||
|  | 	MNT_NOATIME                    = 0x10000000 | ||||||
|  | 	MNT_NOCLUSTERR                 = 0x40000000 | ||||||
|  | 	MNT_NOCLUSTERW                 = 0x80000000 | ||||||
|  | 	MNT_NOEXEC                     = 0x4 | ||||||
|  | 	MNT_NONBUSY                    = 0x4000000 | ||||||
|  | 	MNT_NOSUID                     = 0x8 | ||||||
|  | 	MNT_NOSYMFOLLOW                = 0x400000 | ||||||
|  | 	MNT_NOWAIT                     = 0x2 | ||||||
|  | 	MNT_QUOTA                      = 0x2000 | ||||||
|  | 	MNT_RDONLY                     = 0x1 | ||||||
|  | 	MNT_RELOAD                     = 0x40000 | ||||||
|  | 	MNT_ROOTFS                     = 0x4000 | ||||||
|  | 	MNT_SNAPSHOT                   = 0x1000000 | ||||||
|  | 	MNT_SOFTDEP                    = 0x200000 | ||||||
|  | 	MNT_SUIDDIR                    = 0x100000 | ||||||
|  | 	MNT_SUJ                        = 0x100000000 | ||||||
|  | 	MNT_SUSPEND                    = 0x4 | ||||||
|  | 	MNT_SYNCHRONOUS                = 0x2 | ||||||
|  | 	MNT_UNION                      = 0x20 | ||||||
|  | 	MNT_UPDATE                     = 0x10000 | ||||||
|  | 	MNT_UPDATEMASK                 = 0x2d8d0807e | ||||||
|  | 	MNT_USER                       = 0x8000 | ||||||
|  | 	MNT_VISFLAGMASK                = 0x3fef0ffff | ||||||
|  | 	MNT_WAIT                       = 0x1 | ||||||
| 	MSG_CMSG_CLOEXEC               = 0x40000 | 	MSG_CMSG_CLOEXEC               = 0x40000 | ||||||
| 	MSG_COMPAT                     = 0x8000 | 	MSG_COMPAT                     = 0x8000 | ||||||
| 	MSG_CTRUNC                     = 0x20 | 	MSG_CTRUNC                     = 0x20 | ||||||
| @@ -1578,138 +1628,146 @@ const ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| // Error table | // Error table | ||||||
| var errors = [...]string{ | var errorList = [...]struct { | ||||||
| 	1:  "operation not permitted", | 	num  syscall.Errno | ||||||
| 	2:  "no such file or directory", | 	name string | ||||||
| 	3:  "no such process", | 	desc string | ||||||
| 	4:  "interrupted system call", | }{ | ||||||
| 	5:  "input/output error", | 	{1, "EPERM", "operation not permitted"}, | ||||||
| 	6:  "device not configured", | 	{2, "ENOENT", "no such file or directory"}, | ||||||
| 	7:  "argument list too long", | 	{3, "ESRCH", "no such process"}, | ||||||
| 	8:  "exec format error", | 	{4, "EINTR", "interrupted system call"}, | ||||||
| 	9:  "bad file descriptor", | 	{5, "EIO", "input/output error"}, | ||||||
| 	10: "no child processes", | 	{6, "ENXIO", "device not configured"}, | ||||||
| 	11: "resource deadlock avoided", | 	{7, "E2BIG", "argument list too long"}, | ||||||
| 	12: "cannot allocate memory", | 	{8, "ENOEXEC", "exec format error"}, | ||||||
| 	13: "permission denied", | 	{9, "EBADF", "bad file descriptor"}, | ||||||
| 	14: "bad address", | 	{10, "ECHILD", "no child processes"}, | ||||||
| 	15: "block device required", | 	{11, "EDEADLK", "resource deadlock avoided"}, | ||||||
| 	16: "device busy", | 	{12, "ENOMEM", "cannot allocate memory"}, | ||||||
| 	17: "file exists", | 	{13, "EACCES", "permission denied"}, | ||||||
| 	18: "cross-device link", | 	{14, "EFAULT", "bad address"}, | ||||||
| 	19: "operation not supported by device", | 	{15, "ENOTBLK", "block device required"}, | ||||||
| 	20: "not a directory", | 	{16, "EBUSY", "device busy"}, | ||||||
| 	21: "is a directory", | 	{17, "EEXIST", "file exists"}, | ||||||
| 	22: "invalid argument", | 	{18, "EXDEV", "cross-device link"}, | ||||||
| 	23: "too many open files in system", | 	{19, "ENODEV", "operation not supported by device"}, | ||||||
| 	24: "too many open files", | 	{20, "ENOTDIR", "not a directory"}, | ||||||
| 	25: "inappropriate ioctl for device", | 	{21, "EISDIR", "is a directory"}, | ||||||
| 	26: "text file busy", | 	{22, "EINVAL", "invalid argument"}, | ||||||
| 	27: "file too large", | 	{23, "ENFILE", "too many open files in system"}, | ||||||
| 	28: "no space left on device", | 	{24, "EMFILE", "too many open files"}, | ||||||
| 	29: "illegal seek", | 	{25, "ENOTTY", "inappropriate ioctl for device"}, | ||||||
| 	30: "read-only file system", | 	{26, "ETXTBSY", "text file busy"}, | ||||||
| 	31: "too many links", | 	{27, "EFBIG", "file too large"}, | ||||||
| 	32: "broken pipe", | 	{28, "ENOSPC", "no space left on device"}, | ||||||
| 	33: "numerical argument out of domain", | 	{29, "ESPIPE", "illegal seek"}, | ||||||
| 	34: "result too large", | 	{30, "EROFS", "read-only file system"}, | ||||||
| 	35: "resource temporarily unavailable", | 	{31, "EMLINK", "too many links"}, | ||||||
| 	36: "operation now in progress", | 	{32, "EPIPE", "broken pipe"}, | ||||||
| 	37: "operation already in progress", | 	{33, "EDOM", "numerical argument out of domain"}, | ||||||
| 	38: "socket operation on non-socket", | 	{34, "ERANGE", "result too large"}, | ||||||
| 	39: "destination address required", | 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||||
| 	40: "message too long", | 	{36, "EINPROGRESS", "operation now in progress"}, | ||||||
| 	41: "protocol wrong type for socket", | 	{37, "EALREADY", "operation already in progress"}, | ||||||
| 	42: "protocol not available", | 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||||
| 	43: "protocol not supported", | 	{39, "EDESTADDRREQ", "destination address required"}, | ||||||
| 	44: "socket type not supported", | 	{40, "EMSGSIZE", "message too long"}, | ||||||
| 	45: "operation not supported", | 	{41, "EPROTOTYPE", "protocol wrong type for socket"}, | ||||||
| 	46: "protocol family not supported", | 	{42, "ENOPROTOOPT", "protocol not available"}, | ||||||
| 	47: "address family not supported by protocol family", | 	{43, "EPROTONOSUPPORT", "protocol not supported"}, | ||||||
| 	48: "address already in use", | 	{44, "ESOCKTNOSUPPORT", "socket type not supported"}, | ||||||
| 	49: "can't assign requested address", | 	{45, "EOPNOTSUPP", "operation not supported"}, | ||||||
| 	50: "network is down", | 	{46, "EPFNOSUPPORT", "protocol family not supported"}, | ||||||
| 	51: "network is unreachable", | 	{47, "EAFNOSUPPORT", "address family not supported by protocol family"}, | ||||||
| 	52: "network dropped connection on reset", | 	{48, "EADDRINUSE", "address already in use"}, | ||||||
| 	53: "software caused connection abort", | 	{49, "EADDRNOTAVAIL", "can't assign requested address"}, | ||||||
| 	54: "connection reset by peer", | 	{50, "ENETDOWN", "network is down"}, | ||||||
| 	55: "no buffer space available", | 	{51, "ENETUNREACH", "network is unreachable"}, | ||||||
| 	56: "socket is already connected", | 	{52, "ENETRESET", "network dropped connection on reset"}, | ||||||
| 	57: "socket is not connected", | 	{53, "ECONNABORTED", "software caused connection abort"}, | ||||||
| 	58: "can't send after socket shutdown", | 	{54, "ECONNRESET", "connection reset by peer"}, | ||||||
| 	59: "too many references: can't splice", | 	{55, "ENOBUFS", "no buffer space available"}, | ||||||
| 	60: "operation timed out", | 	{56, "EISCONN", "socket is already connected"}, | ||||||
| 	61: "connection refused", | 	{57, "ENOTCONN", "socket is not connected"}, | ||||||
| 	62: "too many levels of symbolic links", | 	{58, "ESHUTDOWN", "can't send after socket shutdown"}, | ||||||
| 	63: "file name too long", | 	{59, "ETOOMANYREFS", "too many references: can't splice"}, | ||||||
| 	64: "host is down", | 	{60, "ETIMEDOUT", "operation timed out"}, | ||||||
| 	65: "no route to host", | 	{61, "ECONNREFUSED", "connection refused"}, | ||||||
| 	66: "directory not empty", | 	{62, "ELOOP", "too many levels of symbolic links"}, | ||||||
| 	67: "too many processes", | 	{63, "ENAMETOOLONG", "file name too long"}, | ||||||
| 	68: "too many users", | 	{64, "EHOSTDOWN", "host is down"}, | ||||||
| 	69: "disc quota exceeded", | 	{65, "EHOSTUNREACH", "no route to host"}, | ||||||
| 	70: "stale NFS file handle", | 	{66, "ENOTEMPTY", "directory not empty"}, | ||||||
| 	71: "too many levels of remote in path", | 	{67, "EPROCLIM", "too many processes"}, | ||||||
| 	72: "RPC struct is bad", | 	{68, "EUSERS", "too many users"}, | ||||||
| 	73: "RPC version wrong", | 	{69, "EDQUOT", "disc quota exceeded"}, | ||||||
| 	74: "RPC prog. not avail", | 	{70, "ESTALE", "stale NFS file handle"}, | ||||||
| 	75: "program version wrong", | 	{71, "EREMOTE", "too many levels of remote in path"}, | ||||||
| 	76: "bad procedure for program", | 	{72, "EBADRPC", "RPC struct is bad"}, | ||||||
| 	77: "no locks available", | 	{73, "ERPCMISMATCH", "RPC version wrong"}, | ||||||
| 	78: "function not implemented", | 	{74, "EPROGUNAVAIL", "RPC prog. not avail"}, | ||||||
| 	79: "inappropriate file type or format", | 	{75, "EPROGMISMATCH", "program version wrong"}, | ||||||
| 	80: "authentication error", | 	{76, "EPROCUNAVAIL", "bad procedure for program"}, | ||||||
| 	81: "need authenticator", | 	{77, "ENOLCK", "no locks available"}, | ||||||
| 	82: "identifier removed", | 	{78, "ENOSYS", "function not implemented"}, | ||||||
| 	83: "no message of desired type", | 	{79, "EFTYPE", "inappropriate file type or format"}, | ||||||
| 	84: "value too large to be stored in data type", | 	{80, "EAUTH", "authentication error"}, | ||||||
| 	85: "operation canceled", | 	{81, "ENEEDAUTH", "need authenticator"}, | ||||||
| 	86: "illegal byte sequence", | 	{82, "EIDRM", "identifier removed"}, | ||||||
| 	87: "attribute not found", | 	{83, "ENOMSG", "no message of desired type"}, | ||||||
| 	88: "programming error", | 	{84, "EOVERFLOW", "value too large to be stored in data type"}, | ||||||
| 	89: "bad message", | 	{85, "ECANCELED", "operation canceled"}, | ||||||
| 	90: "multihop attempted", | 	{86, "EILSEQ", "illegal byte sequence"}, | ||||||
| 	91: "link has been severed", | 	{87, "ENOATTR", "attribute not found"}, | ||||||
| 	92: "protocol error", | 	{88, "EDOOFUS", "programming error"}, | ||||||
| 	93: "capabilities insufficient", | 	{89, "EBADMSG", "bad message"}, | ||||||
| 	94: "not permitted in capability mode", | 	{90, "EMULTIHOP", "multihop attempted"}, | ||||||
| 	95: "state not recoverable", | 	{91, "ENOLINK", "link has been severed"}, | ||||||
| 	96: "previous owner died", | 	{92, "EPROTO", "protocol error"}, | ||||||
|  | 	{93, "ENOTCAPABLE", "capabilities insufficient"}, | ||||||
|  | 	{94, "ECAPMODE", "not permitted in capability mode"}, | ||||||
|  | 	{95, "ENOTRECOVERABLE", "state not recoverable"}, | ||||||
|  | 	{96, "EOWNERDEAD", "previous owner died"}, | ||||||
| } | } | ||||||
|  |  | ||||||
| // Signal table | // Signal table | ||||||
| var signals = [...]string{ | var signalList = [...]struct { | ||||||
| 	1:  "hangup", | 	num  syscall.Signal | ||||||
| 	2:  "interrupt", | 	name string | ||||||
| 	3:  "quit", | 	desc string | ||||||
| 	4:  "illegal instruction", | }{ | ||||||
| 	5:  "trace/BPT trap", | 	{1, "SIGHUP", "hangup"}, | ||||||
| 	6:  "abort trap", | 	{2, "SIGINT", "interrupt"}, | ||||||
| 	7:  "EMT trap", | 	{3, "SIGQUIT", "quit"}, | ||||||
| 	8:  "floating point exception", | 	{4, "SIGILL", "illegal instruction"}, | ||||||
| 	9:  "killed", | 	{5, "SIGTRAP", "trace/BPT trap"}, | ||||||
| 	10: "bus error", | 	{6, "SIGIOT", "abort trap"}, | ||||||
| 	11: "segmentation fault", | 	{7, "SIGEMT", "EMT trap"}, | ||||||
| 	12: "bad system call", | 	{8, "SIGFPE", "floating point exception"}, | ||||||
| 	13: "broken pipe", | 	{9, "SIGKILL", "killed"}, | ||||||
| 	14: "alarm clock", | 	{10, "SIGBUS", "bus error"}, | ||||||
| 	15: "terminated", | 	{11, "SIGSEGV", "segmentation fault"}, | ||||||
| 	16: "urgent I/O condition", | 	{12, "SIGSYS", "bad system call"}, | ||||||
| 	17: "suspended (signal)", | 	{13, "SIGPIPE", "broken pipe"}, | ||||||
| 	18: "suspended", | 	{14, "SIGALRM", "alarm clock"}, | ||||||
| 	19: "continued", | 	{15, "SIGTERM", "terminated"}, | ||||||
| 	20: "child exited", | 	{16, "SIGURG", "urgent I/O condition"}, | ||||||
| 	21: "stopped (tty input)", | 	{17, "SIGSTOP", "suspended (signal)"}, | ||||||
| 	22: "stopped (tty output)", | 	{18, "SIGTSTP", "suspended"}, | ||||||
| 	23: "I/O possible", | 	{19, "SIGCONT", "continued"}, | ||||||
| 	24: "cputime limit exceeded", | 	{20, "SIGCHLD", "child exited"}, | ||||||
| 	25: "filesize limit exceeded", | 	{21, "SIGTTIN", "stopped (tty input)"}, | ||||||
| 	26: "virtual timer expired", | 	{22, "SIGTTOU", "stopped (tty output)"}, | ||||||
| 	27: "profiling timer expired", | 	{23, "SIGIO", "I/O possible"}, | ||||||
| 	28: "window size changes", | 	{24, "SIGXCPU", "cputime limit exceeded"}, | ||||||
| 	29: "information request", | 	{25, "SIGXFSZ", "filesize limit exceeded"}, | ||||||
| 	30: "user defined signal 1", | 	{26, "SIGVTALRM", "virtual timer expired"}, | ||||||
| 	31: "user defined signal 2", | 	{27, "SIGPROF", "profiling timer expired"}, | ||||||
| 	32: "unknown signal", | 	{28, "SIGWINCH", "window size changes"}, | ||||||
| 	33: "unknown signal", | 	{29, "SIGINFO", "information request"}, | ||||||
|  | 	{30, "SIGUSR1", "user defined signal 1"}, | ||||||
|  | 	{31, "SIGUSR2", "user defined signal 2"}, | ||||||
|  | 	{32, "SIGTHR", "unknown signal"}, | ||||||
|  | 	{33, "SIGLIBRT", "unknown signal"}, | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										705
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										705
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_386.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										706
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										706
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										706
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										706
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										707
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										707
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										709
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										709
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										711
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										711
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										711
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										711
									
								
								vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user
	 Phil Estes
					Phil Estes