summaryrefslogtreecommitdiff
path: root/syscall_linux.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-04-18 07:54:39 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-04-18 10:17:04 +0200
commit0b940a756838efcb90363ad99cb085d077b78e96 (patch)
tree7438647654e830a76da66758606d03c7826ab5c8 /syscall_linux.go
parenteb6728400ba656990aa4518dc4f5f2a6f0f19f8e (diff)
downloadwireguard-go-0b940a756838efcb90363ad99cb085d077b78e96.tar.gz
wireguard-go-0b940a756838efcb90363ad99cb085d077b78e96.zip
Use socketcall on x86
Diffstat (limited to 'syscall_linux.go')
-rw-r--r--syscall_linux.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/syscall_linux.go b/syscall_linux.go
new file mode 100644
index 0000000..3403544
--- /dev/null
+++ b/syscall_linux.go
@@ -0,0 +1,30 @@
+// +build linux,!386
+
+/* Copyright 2018 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
+ */
+
+package main
+
+import (
+ "golang.org/x/sys/unix"
+ "syscall"
+ "unsafe"
+)
+
+func sendmsg(fd int, msghdr *unix.Msghdr, flags int) (uintptr, uintptr, syscall.Errno) {
+ return unix.Syscall(
+ unix.SYS_SENDMSG,
+ uintptr(fd),
+ uintptr(unsafe.Pointer(msghdr)),
+ uintptr(flags),
+ )
+}
+
+func recvmsg(fd int, msghdr *unix.Msghdr, flags int) (uintptr, uintptr, syscall.Errno) {
+ return unix.Syscall(
+ unix.SYS_RECVMSG,
+ uintptr(fd),
+ uintptr(unsafe.Pointer(msghdr)),
+ uintptr(flags),
+ )
+}