mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-06 00:57:18 -04:00
go.sys/unix: use syscall.Errno for errors
If we use a local type, it won't compare properly with errors from the rest of the standard library. Errors are the one type from syscall that propagates through the system, so it's important to have only one type for them. Ditto for syscall.Signal. LGTM=dave R=rsc, dave CC=golang-codereviews https://golang.org/cl/123490043
This commit is contained in:
+17
-16
@@ -9,6 +9,7 @@
|
||||
package unix
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
@@ -24,7 +25,7 @@ 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)
|
||||
return 0, syscall.Errno(err)
|
||||
}
|
||||
return l, nil
|
||||
}
|
||||
@@ -32,7 +33,7 @@ func BpfBuflen(fd int) (int, error) {
|
||||
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)
|
||||
return 0, syscall.Errno(err)
|
||||
}
|
||||
return l, nil
|
||||
}
|
||||
@@ -41,7 +42,7 @@ 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)
|
||||
return 0, syscall.Errno(err)
|
||||
}
|
||||
return t, nil
|
||||
}
|
||||
@@ -49,7 +50,7 @@ func BpfDatalink(fd int) (int, error) {
|
||||
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)
|
||||
return 0, syscall.Errno(err)
|
||||
}
|
||||
return t, nil
|
||||
}
|
||||
@@ -57,7 +58,7 @@ func SetBpfDatalink(fd, t int) (int, error) {
|
||||
func SetBpfPromisc(fd, m int) error {
|
||||
_, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCPROMISC, uintptr(unsafe.Pointer(&m)))
|
||||
if err != 0 {
|
||||
return Errno(err)
|
||||
return syscall.Errno(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -65,7 +66,7 @@ func SetBpfPromisc(fd, m int) error {
|
||||
func FlushBpf(fd int) error {
|
||||
_, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCFLUSH, 0)
|
||||
if err != 0 {
|
||||
return Errno(err)
|
||||
return syscall.Errno(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -79,7 +80,7 @@ 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)
|
||||
return "", syscall.Errno(err)
|
||||
}
|
||||
return name, nil
|
||||
}
|
||||
@@ -89,7 +90,7 @@ func SetBpfInterface(fd int, name string) error {
|
||||
copy(iv.name[:], []byte(name))
|
||||
_, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSETIF, uintptr(unsafe.Pointer(&iv)))
|
||||
if err != 0 {
|
||||
return Errno(err)
|
||||
return syscall.Errno(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -98,7 +99,7 @@ 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)
|
||||
return nil, syscall.Errno(err)
|
||||
}
|
||||
return &tv, nil
|
||||
}
|
||||
@@ -106,7 +107,7 @@ func BpfTimeout(fd int) (*Timeval, error) {
|
||||
func SetBpfTimeout(fd int, tv *Timeval) error {
|
||||
_, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSRTIMEOUT, uintptr(unsafe.Pointer(tv)))
|
||||
if err != 0 {
|
||||
return Errno(err)
|
||||
return syscall.Errno(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -115,7 +116,7 @@ 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)
|
||||
return nil, syscall.Errno(err)
|
||||
}
|
||||
return &s, nil
|
||||
}
|
||||
@@ -123,7 +124,7 @@ func BpfStats(fd int) (*BpfStat, error) {
|
||||
func SetBpfImmediate(fd, m int) error {
|
||||
_, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCIMMEDIATE, uintptr(unsafe.Pointer(&m)))
|
||||
if err != 0 {
|
||||
return Errno(err)
|
||||
return syscall.Errno(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -134,7 +135,7 @@ func SetBpf(fd int, i []BpfInsn) error {
|
||||
p.Insns = (*BpfInsn)(unsafe.Pointer(&i[0]))
|
||||
_, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSETF, uintptr(unsafe.Pointer(&p)))
|
||||
if err != 0 {
|
||||
return Errno(err)
|
||||
return syscall.Errno(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -143,7 +144,7 @@ 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)
|
||||
return syscall.Errno(err)
|
||||
}
|
||||
if v.Major != BPF_MAJOR_VERSION || v.Minor != BPF_MINOR_VERSION {
|
||||
return EINVAL
|
||||
@@ -155,7 +156,7 @@ 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)
|
||||
return 0, syscall.Errno(err)
|
||||
}
|
||||
return f, nil
|
||||
}
|
||||
@@ -163,7 +164,7 @@ func BpfHeadercmpl(fd int) (int, error) {
|
||||
func SetBpfHeadercmpl(fd, f int) error {
|
||||
_, _, err := Syscall(SYS_IOCTL, uintptr(fd), BIOCSHDRCMPLT, uintptr(unsafe.Pointer(&f)))
|
||||
if err != 0 {
|
||||
return Errno(err)
|
||||
return syscall.Errno(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user