From 3f1edad4e6ba0a7876750aea55507fae14d8badf Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Wed, 11 Oct 2017 16:40:58 +0200 Subject: ODPM 266: Go-libmemif + 2 examples. Change-Id: Icdb9b9eb2314eff6c96afe7996fcf2728291de4a Signed-off-by: Milan Lenco --- .../google/gopacket/afpacket/sockopt_linux_386.go | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go (limited to 'vendor/github.com/google/gopacket/afpacket/sockopt_linux_386.go') 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 +} -- cgit 1.2.3-korg