1
- // Copyright 2011 The Go Authors. All rights reserved.
1
+ // Copyright 2018 The Go Authors. All rights reserved.
2
2
// Use of this source code is governed by a BSD-style
3
3
// license that can be found in the LICENSE file.
4
4
5
- //go:build dragonfly || freebsd || netbsd || openbsd
5
+ //go:build darwin || dragonfly || freebsd || netbsd || openbsd
6
6
7
7
// Berkeley packet filter for BSD variants
8
8
@@ -25,55 +25,55 @@ func BpfJump(code, k, jt, jf int) *BpfInsn {
25
25
// Deprecated: Use golang.org/x/net/bpf instead.
26
26
func BpfBuflen (fd int ) (int , error ) {
27
27
var l int
28
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCGBLEN , uintptr ( unsafe .Pointer (& l ) ))
29
- if err != 0 {
30
- return 0 , Errno ( err )
28
+ err := ioctlPtr ( fd , BIOCGBLEN , unsafe .Pointer (& l ))
29
+ if err != nil {
30
+ return 0 , err
31
31
}
32
32
return l , nil
33
33
}
34
34
35
35
// Deprecated: Use golang.org/x/net/bpf instead.
36
36
func SetBpfBuflen (fd , l int ) (int , error ) {
37
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCSBLEN , uintptr ( unsafe .Pointer (& l ) ))
38
- if err != 0 {
39
- return 0 , Errno ( err )
37
+ err := ioctlPtr ( fd , BIOCSBLEN , unsafe .Pointer (& l ))
38
+ if err != nil {
39
+ return 0 , err
40
40
}
41
41
return l , nil
42
42
}
43
43
44
44
// Deprecated: Use golang.org/x/net/bpf instead.
45
45
func BpfDatalink (fd int ) (int , error ) {
46
46
var t int
47
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCGDLT , uintptr ( unsafe .Pointer (& t ) ))
48
- if err != 0 {
49
- return 0 , Errno ( err )
47
+ err := ioctlPtr ( fd , BIOCGDLT , unsafe .Pointer (& t ))
48
+ if err != nil {
49
+ return 0 , err
50
50
}
51
51
return t , nil
52
52
}
53
53
54
54
// Deprecated: Use golang.org/x/net/bpf instead.
55
55
func SetBpfDatalink (fd , t int ) (int , error ) {
56
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCSDLT , uintptr ( unsafe .Pointer (& t ) ))
57
- if err != 0 {
58
- return 0 , Errno ( err )
56
+ err := ioctlPtr ( fd , BIOCSDLT , unsafe .Pointer (& t ))
57
+ if err != nil {
58
+ return 0 , err
59
59
}
60
60
return t , nil
61
61
}
62
62
63
63
// Deprecated: Use golang.org/x/net/bpf instead.
64
64
func SetBpfPromisc (fd , m int ) error {
65
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCPROMISC , uintptr ( unsafe .Pointer (& m ) ))
66
- if err != 0 {
67
- return Errno ( err )
65
+ err := ioctlPtr ( fd , BIOCPROMISC , unsafe .Pointer (& m ))
66
+ if err != nil {
67
+ return err
68
68
}
69
69
return nil
70
70
}
71
71
72
72
// Deprecated: Use golang.org/x/net/bpf instead.
73
73
func FlushBpf (fd int ) error {
74
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCFLUSH , 0 )
75
- if err != 0 {
76
- return Errno ( err )
74
+ err := ioctlPtr ( fd , BIOCFLUSH , nil )
75
+ if err != nil {
76
+ return err
77
77
}
78
78
return nil
79
79
}
@@ -86,9 +86,9 @@ type ivalue struct {
86
86
// Deprecated: Use golang.org/x/net/bpf instead.
87
87
func BpfInterface (fd int , name string ) (string , error ) {
88
88
var iv ivalue
89
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCGETIF , uintptr ( unsafe .Pointer (& iv ) ))
90
- if err != 0 {
91
- return "" , Errno ( err )
89
+ err := ioctlPtr ( fd , BIOCGETIF , unsafe .Pointer (& iv ))
90
+ if err != nil {
91
+ return "" , err
92
92
}
93
93
return name , nil
94
94
}
@@ -97,47 +97,47 @@ func BpfInterface(fd int, name string) (string, error) {
97
97
func SetBpfInterface (fd int , name string ) error {
98
98
var iv ivalue
99
99
copy (iv .name [:], []byte (name ))
100
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCSETIF , uintptr ( unsafe .Pointer (& iv ) ))
101
- if err != 0 {
102
- return Errno ( err )
100
+ err := ioctlPtr ( fd , BIOCSETIF , unsafe .Pointer (& iv ))
101
+ if err != nil {
102
+ return err
103
103
}
104
104
return nil
105
105
}
106
106
107
107
// Deprecated: Use golang.org/x/net/bpf instead.
108
108
func BpfTimeout (fd int ) (* Timeval , error ) {
109
109
var tv Timeval
110
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCGRTIMEOUT , uintptr ( unsafe .Pointer (& tv ) ))
111
- if err != 0 {
112
- return nil , Errno ( err )
110
+ err := ioctlPtr ( fd , BIOCGRTIMEOUT , unsafe .Pointer (& tv ))
111
+ if err != nil {
112
+ return nil , err
113
113
}
114
114
return & tv , nil
115
115
}
116
116
117
117
// Deprecated: Use golang.org/x/net/bpf instead.
118
118
func SetBpfTimeout (fd int , tv * Timeval ) error {
119
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCSRTIMEOUT , uintptr ( unsafe .Pointer (tv ) ))
120
- if err != 0 {
121
- return Errno ( err )
119
+ err := ioctlPtr ( fd , BIOCSRTIMEOUT , unsafe .Pointer (tv ))
120
+ if err != nil {
121
+ return err
122
122
}
123
123
return nil
124
124
}
125
125
126
126
// Deprecated: Use golang.org/x/net/bpf instead.
127
127
func BpfStats (fd int ) (* BpfStat , error ) {
128
128
var s BpfStat
129
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCGSTATS , uintptr ( unsafe .Pointer (& s ) ))
130
- if err != 0 {
131
- return nil , Errno ( err )
129
+ err := ioctlPtr ( fd , BIOCGSTATS , unsafe .Pointer (& s ))
130
+ if err != nil {
131
+ return nil , err
132
132
}
133
133
return & s , nil
134
134
}
135
135
136
136
// Deprecated: Use golang.org/x/net/bpf instead.
137
137
func SetBpfImmediate (fd , m int ) error {
138
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCIMMEDIATE , uintptr ( unsafe .Pointer (& m ) ))
139
- if err != 0 {
140
- return Errno ( err )
138
+ err := ioctlPtr ( fd , BIOCIMMEDIATE , unsafe .Pointer (& m ))
139
+ if err != nil {
140
+ return err
141
141
}
142
142
return nil
143
143
}
@@ -147,19 +147,19 @@ func SetBpf(fd int, i []BpfInsn) error {
147
147
var p BpfProgram
148
148
p .Len = uint32 (len (i ))
149
149
p .Insns = (* BpfInsn )(unsafe .Pointer (& i [0 ]))
150
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCSETF , uintptr ( unsafe .Pointer (& p ) ))
151
- if err != 0 {
152
- return Errno ( err )
150
+ err := ioctlPtr ( fd , BIOCSETF , unsafe .Pointer (& p ))
151
+ if err != nil {
152
+ return err
153
153
}
154
154
return nil
155
155
}
156
156
157
157
// Deprecated: Use golang.org/x/net/bpf instead.
158
158
func CheckBpfVersion (fd int ) error {
159
159
var v BpfVersion
160
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCVERSION , uintptr ( unsafe .Pointer (& v ) ))
161
- if err != 0 {
162
- return Errno ( err )
160
+ err := ioctlPtr ( fd , BIOCVERSION , unsafe .Pointer (& v ))
161
+ if err != nil {
162
+ return err
163
163
}
164
164
if v .Major != BPF_MAJOR_VERSION || v .Minor != BPF_MINOR_VERSION {
165
165
return EINVAL
@@ -170,18 +170,18 @@ func CheckBpfVersion(fd int) error {
170
170
// Deprecated: Use golang.org/x/net/bpf instead.
171
171
func BpfHeadercmpl (fd int ) (int , error ) {
172
172
var f int
173
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCGHDRCMPLT , uintptr ( unsafe .Pointer (& f ) ))
174
- if err != 0 {
175
- return 0 , Errno ( err )
173
+ err := ioctlPtr ( fd , BIOCGHDRCMPLT , unsafe .Pointer (& f ))
174
+ if err != nil {
175
+ return 0 , err
176
176
}
177
177
return f , nil
178
178
}
179
179
180
180
// Deprecated: Use golang.org/x/net/bpf instead.
181
181
func SetBpfHeadercmpl (fd , f int ) error {
182
- _ , _ , err := Syscall ( SYS_IOCTL , uintptr ( fd ) , BIOCSHDRCMPLT , uintptr ( unsafe .Pointer (& f ) ))
183
- if err != 0 {
184
- return Errno ( err )
182
+ err := ioctlPtr ( fd , BIOCSHDRCMPLT , unsafe .Pointer (& f ))
183
+ if err != nil {
184
+ return err
185
185
}
186
186
return nil
187
187
}
0 commit comments