X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fsyscall%2Fbpf_bsd.go;h=27d0ca3768ca8bf82451bea51589ebd8b2647068;hb=1d9040bf08cf8cda30b203c21de12a4b6ab66153;hp=735c0788950db27593a88be7591ae40d3c0f15f9;hpb=fd59c87ec1d5e65f697925a0d40e3f6d6254457e;p=gostls13.git diff --git a/src/syscall/bpf_bsd.go b/src/syscall/bpf_bsd.go index 735c078895..27d0ca3768 100644 --- a/src/syscall/bpf_bsd.go +++ b/src/syscall/bpf_bsd.go @@ -1,8 +1,8 @@ -// Copyright 2011 The Go Authors. All rights reserved. +// 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. -//go:build dragonfly || freebsd || netbsd || openbsd +//go:build darwin || dragonfly || freebsd || netbsd || openbsd // Berkeley packet filter for BSD variants @@ -25,18 +25,18 @@ func BpfJump(code, k, jt, jf int) *BpfInsn { // Deprecated: Use golang.org/x/net/bpf instead. func BpfBuflen(fd int) (int, error) { var l int - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCGBLEN, uintptr(unsafe.Pointer(&l))) - if err != 0 { - return 0, Errno(err) + err := ioctlPtr(fd, BIOCGBLEN, unsafe.Pointer(&l)) + if err != nil { + return 0, err } return l, nil } // Deprecated: Use golang.org/x/net/bpf instead. func SetBpfBuflen(fd, l int) (int, error) { - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSBLEN, uintptr(unsafe.Pointer(&l))) - if err != 0 { - return 0, Errno(err) + err := ioctlPtr(fd, BIOCSBLEN, unsafe.Pointer(&l)) + if err != nil { + return 0, err } return l, nil } @@ -44,36 +44,36 @@ func SetBpfBuflen(fd, l int) (int, error) { // Deprecated: Use golang.org/x/net/bpf instead. func BpfDatalink(fd int) (int, error) { var t int - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCGDLT, uintptr(unsafe.Pointer(&t))) - if err != 0 { - return 0, Errno(err) + err := ioctlPtr(fd, BIOCGDLT, unsafe.Pointer(&t)) + if err != nil { + return 0, err } return t, nil } // Deprecated: Use golang.org/x/net/bpf instead. func SetBpfDatalink(fd, t int) (int, error) { - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSDLT, uintptr(unsafe.Pointer(&t))) - if err != 0 { - return 0, Errno(err) + err := ioctlPtr(fd, BIOCSDLT, unsafe.Pointer(&t)) + if err != nil { + return 0, err } return t, nil } // Deprecated: Use golang.org/x/net/bpf instead. func SetBpfPromisc(fd, m int) error { - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCPROMISC, uintptr(unsafe.Pointer(&m))) - if err != 0 { - return Errno(err) + err := ioctlPtr(fd, BIOCPROMISC, unsafe.Pointer(&m)) + if err != nil { + return err } return nil } // Deprecated: Use golang.org/x/net/bpf instead. func FlushBpf(fd int) error { - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCFLUSH, 0) - if err != 0 { - return Errno(err) + err := ioctlPtr(fd, BIOCFLUSH, nil) + if err != nil { + return err } return nil } @@ -86,9 +86,9 @@ type ivalue struct { // Deprecated: Use golang.org/x/net/bpf instead. func BpfInterface(fd int, name string) (string, error) { var iv ivalue - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCGETIF, uintptr(unsafe.Pointer(&iv))) - if err != 0 { - return "", Errno(err) + err := ioctlPtr(fd, BIOCGETIF, unsafe.Pointer(&iv)) + if err != nil { + return "", err } return name, nil } @@ -97,9 +97,9 @@ func BpfInterface(fd int, name string) (string, error) { func SetBpfInterface(fd int, name string) error { var iv ivalue copy(iv.name[:], []byte(name)) - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSETIF, uintptr(unsafe.Pointer(&iv))) - if err != 0 { - return Errno(err) + err := ioctlPtr(fd, BIOCSETIF, unsafe.Pointer(&iv)) + if err != nil { + return err } return nil } @@ -107,18 +107,18 @@ func SetBpfInterface(fd int, name string) error { // Deprecated: Use golang.org/x/net/bpf instead. func BpfTimeout(fd int) (*Timeval, error) { var tv Timeval - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCGRTIMEOUT, uintptr(unsafe.Pointer(&tv))) - if err != 0 { - return nil, Errno(err) + err := ioctlPtr(fd, BIOCGRTIMEOUT, unsafe.Pointer(&tv)) + if err != nil { + return nil, err } return &tv, nil } // Deprecated: Use golang.org/x/net/bpf instead. func SetBpfTimeout(fd int, tv *Timeval) error { - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSRTIMEOUT, uintptr(unsafe.Pointer(tv))) - if err != 0 { - return Errno(err) + err := ioctlPtr(fd, BIOCSRTIMEOUT, unsafe.Pointer(tv)) + if err != nil { + return err } return nil } @@ -126,18 +126,18 @@ func SetBpfTimeout(fd int, tv *Timeval) error { // Deprecated: Use golang.org/x/net/bpf instead. func BpfStats(fd int) (*BpfStat, error) { var s BpfStat - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCGSTATS, uintptr(unsafe.Pointer(&s))) - if err != 0 { - return nil, Errno(err) + err := ioctlPtr(fd, BIOCGSTATS, unsafe.Pointer(&s)) + if err != nil { + return nil, err } return &s, nil } // Deprecated: Use golang.org/x/net/bpf instead. func SetBpfImmediate(fd, m int) error { - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCIMMEDIATE, uintptr(unsafe.Pointer(&m))) - if err != 0 { - return Errno(err) + err := ioctlPtr(fd, BIOCIMMEDIATE, unsafe.Pointer(&m)) + if err != nil { + return err } return nil } @@ -147,9 +147,9 @@ func SetBpf(fd int, i []BpfInsn) error { var p BpfProgram p.Len = uint32(len(i)) p.Insns = (*BpfInsn)(unsafe.Pointer(&i[0])) - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSETF, uintptr(unsafe.Pointer(&p))) - if err != 0 { - return Errno(err) + err := ioctlPtr(fd, BIOCSETF, unsafe.Pointer(&p)) + if err != nil { + return err } return nil } @@ -157,9 +157,9 @@ func SetBpf(fd int, i []BpfInsn) error { // Deprecated: Use golang.org/x/net/bpf instead. func CheckBpfVersion(fd int) error { var v BpfVersion - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCVERSION, uintptr(unsafe.Pointer(&v))) - if err != 0 { - return Errno(err) + err := ioctlPtr(fd, BIOCVERSION, unsafe.Pointer(&v)) + if err != nil { + return err } if v.Major != BPF_MAJOR_VERSION || v.Minor != BPF_MINOR_VERSION { return EINVAL @@ -170,18 +170,18 @@ func CheckBpfVersion(fd int) error { // Deprecated: Use golang.org/x/net/bpf instead. func BpfHeadercmpl(fd int) (int, error) { var f int - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCGHDRCMPLT, uintptr(unsafe.Pointer(&f))) - if err != 0 { - return 0, Errno(err) + err := ioctlPtr(fd, BIOCGHDRCMPLT, unsafe.Pointer(&f)) + if err != nil { + return 0, err } return f, nil } // Deprecated: Use golang.org/x/net/bpf instead. func SetBpfHeadercmpl(fd, f int) error { - _, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSHDRCMPLT, uintptr(unsafe.Pointer(&f))) - if err != 0 { - return Errno(err) + err := ioctlPtr(fd, BIOCSHDRCMPLT, unsafe.Pointer(&f)) + if err != nil { + return err } return nil }