...
1 package sys
2
3 import (
4 "unsafe"
5
6 "github.com/cilium/ebpf/internal/unix"
7 )
8
9
10 func NewPointer(ptr unsafe.Pointer) Pointer {
11 return Pointer{ptr: ptr}
12 }
13
14
15 func NewSlicePointer(buf []byte) Pointer {
16 if len(buf) == 0 {
17 return Pointer{}
18 }
19
20 return Pointer{ptr: unsafe.Pointer(&buf[0])}
21 }
22
23
24
25
26 func NewSlicePointerLen(buf []byte) (Pointer, uint32) {
27 return NewSlicePointer(buf), uint32(len(buf))
28 }
29
30
31 func NewStringPointer(str string) Pointer {
32 p, err := unix.BytePtrFromString(str)
33 if err != nil {
34 return Pointer{}
35 }
36
37 return Pointer{ptr: unsafe.Pointer(p)}
38 }
39
View as plain text