aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go
diff options
context:
space:
mode:
authorMilan Lenco <milan.lenco@pantheon.tech>2017-10-11 16:40:58 +0200
committerMilan Lenco <milan.lenco@pantheon.tech>2017-10-13 08:40:37 +0200
commit3f1edad4e6ba0a7876750aea55507fae14d8badf (patch)
treea473997249d9ba7deb70b1076d14e4c4ed029a43 /vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go
parent8b66677c2382a8e739d437621de4473d5ec0b9f1 (diff)
ODPM 266: Go-libmemif + 2 examples.
Change-Id: Icdb9b9eb2314eff6c96afe7996fcf2728291de4a Signed-off-by: Milan Lenco <milan.lenco@pantheon.tech>
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.go57
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
+}