diff options
Diffstat (limited to 'vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go')
-rw-r--r-- | vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go b/vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go new file mode 100644 index 0000000..8c3eb42 --- /dev/null +++ b/vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go @@ -0,0 +1,57 @@ +// Copyright 2012 Google, Inc. All rights reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the LICENSE file in the root of the source +// tree. + +// +build linux,386 + +package afpacket + +import ( + "unsafe" + + "golang.org/x/sys/unix" +) + +const ( + sysSETSOCKOPT = 0xe + sysGETSOCKOPT = 0xf +) + +func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, unix.Errno) + +// setsockopt provides access to the setsockopt syscall. +func setsockopt(fd, level, name int, v unsafe.Pointer, l uintptr) error { + _, errno := socketcall( + sysSETSOCKOPT, + uintptr(fd), + uintptr(level), + uintptr(name), + uintptr(v), + l, + 0, + ) + if errno != 0 { + return error(errno) + } + + return nil +} + +func getsockopt(fd, level, name int, v unsafe.Pointer, l uintptr) error { + _, errno := socketcall( + sysGETSOCKOPT, + uintptr(fd), + uintptr(level), + uintptr(name), + uintptr(v), + l, + 0, + ) + if errno != 0 { + return error(errno) + } + + return nil +} |