diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-07-27 15:26:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-27 15:26:24 +0200 |
commit | 27a487929e0ee499ca0d7b57cc50923365bef419 (patch) | |
tree | 58853c94b912df478dfdfbb533fbf4c3652dc600 /vendor/golang.org/x/sys/unix/syscall_darwin.go | |
parent | 508dc031c6faee02052d660d16aa91566be3f313 (diff) | |
parent | 23a938fa26ad2b674efb672148d78274bd37686b (diff) | |
download | podman-27a487929e0ee499ca0d7b57cc50923365bef419.tar.gz podman-27a487929e0ee499ca0d7b57cc50923365bef419.tar.bz2 podman-27a487929e0ee499ca0d7b57cc50923365bef419.zip |
Merge pull request #11028 from containers/dependabot/go_modules/github.com/containers/image/v5-5.14.0
Bump github.com/containers/image/v5 from 5.13.2 to 5.14.0
Diffstat (limited to 'vendor/golang.org/x/sys/unix/syscall_darwin.go')
-rw-r--r-- | vendor/golang.org/x/sys/unix/syscall_darwin.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 9945e5f96..23f6b5760 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -13,6 +13,7 @@ package unix import ( + "fmt" "runtime" "syscall" "unsafe" @@ -398,6 +399,38 @@ func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { return x, err } +func SysctlKinfoProcSlice(name string) ([]KinfoProc, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + // Find size. + n := uintptr(0) + if err := sysctl(mib, nil, &n, nil, 0); err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + if n%SizeofKinfoProc != 0 { + return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) + } + + // Read into buffer of that size. + buf := make([]KinfoProc, n/SizeofKinfoProc) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { + return nil, err + } + if n%SizeofKinfoProc != 0 { + return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) + } + + // The actual call may return less than the original reported required + // size so ensure we deal with that. + return buf[:n/SizeofKinfoProc], nil +} + //sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) /* |