24 lines
441 B
Go
24 lines
441 B
Go
|
package internal
|
||
|
|
||
|
import (
|
||
|
"runtime"
|
||
|
"unsafe"
|
||
|
|
||
|
"github.com/cilium/ebpf/internal/unix"
|
||
|
)
|
||
|
|
||
|
// BPF wraps SYS_BPF.
|
||
|
//
|
||
|
// Any pointers contained in attr must use the Pointer type from this package.
|
||
|
func BPF(cmd int, attr unsafe.Pointer, size uintptr) (uintptr, error) {
|
||
|
r1, _, errNo := unix.Syscall(unix.SYS_BPF, uintptr(cmd), uintptr(attr), size)
|
||
|
runtime.KeepAlive(attr)
|
||
|
|
||
|
var err error
|
||
|
if errNo != 0 {
|
||
|
err = errNo
|
||
|
}
|
||
|
|
||
|
return r1, err
|
||
|
}
|