Commit d67a3279 authored by Matt Layher's avatar Matt Layher

unix: implement Linux AF_VSOCK sockets

Adds the required constants and new SockaddrVM type for working
with Linux VM sockets.  For more information, see:
https://vmsplice.net/~stefan/stefanha-kvm-forum-2015.pdf.

Fixes golang/go#19434

Change-Id: I9aefb35441b2c7dc412bdfb806ebe08d5c20f6b1
Reviewed-on: https://go-review.googlesource.com/37937
Run-TryBot: Matt Layher <mdlayher@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
parent e48874b4
...@@ -132,6 +132,7 @@ includes_Linux=' ...@@ -132,6 +132,7 @@ includes_Linux='
#include <linux/icmpv6.h> #include <linux/icmpv6.h>
#include <linux/serial.h> #include <linux/serial.h>
#include <linux/can.h> #include <linux/can.h>
#include <linux/vm_sockets.h>
#include <net/route.h> #include <net/route.h>
#include <asm/termbits.h> #include <asm/termbits.h>
...@@ -352,6 +353,7 @@ ccflags="$@" ...@@ -352,6 +353,7 @@ ccflags="$@"
$2 ~ /^ALG_/ || $2 ~ /^ALG_/ ||
$2 ~ /^GRND_/ || $2 ~ /^GRND_/ ||
$2 ~ /^SPLICE_/ || $2 ~ /^SPLICE_/ ||
$2 ~ /^(VM|VMADDR)_/ ||
$2 !~ "WMESGLEN" && $2 !~ "WMESGLEN" &&
$2 ~ /^W[A-Z0-9]+$/ || $2 ~ /^W[A-Z0-9]+$/ ||
$2 ~ /^BLK/ {printf("\t%s = C.%s\n", $2, $2)} $2 ~ /^BLK/ {printf("\t%s = C.%s\n", $2, $2)}
......
...@@ -551,6 +551,28 @@ func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { ...@@ -551,6 +551,28 @@ func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) {
return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil
} }
// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.
// SockaddrVM provides access to Linux VM sockets: a mechanism that enables
// bidirectional communication between a hypervisor and its guest virtual
// machines.
type SockaddrVM struct {
// CID and Port specify a client ID and port address for a VM socket.
// Guests have a unique CID, and hosts may have a well-known CID of:
// - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.
// - VMADDR_CID_HOST: refers to other processes on the host.
CID uint32
Port uint32
raw RawSockaddrVM
}
func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {
sa.raw.Family = AF_VSOCK
sa.raw.Port = sa.Port
sa.raw.Cid = sa.CID
return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil
}
func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
switch rsa.Addr.Family { switch rsa.Addr.Family {
case AF_NETLINK: case AF_NETLINK:
...@@ -620,6 +642,14 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { ...@@ -620,6 +642,14 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
sa.Addr[i] = pp.Addr[i] sa.Addr[i] = pp.Addr[i]
} }
return sa, nil return sa, nil
case AF_VSOCK:
pp := (*RawSockaddrVM)(unsafe.Pointer(rsa))
sa := &SockaddrVM{
CID: pp.Cid,
Port: pp.Port,
}
return sa, nil
} }
return nil, EAFNOSUPPORT return nil, EAFNOSUPPORT
} }
......
...@@ -60,6 +60,7 @@ package unix ...@@ -60,6 +60,7 @@ package unix
#include <bluetooth/hci.h> #include <bluetooth/hci.h>
#include <linux/can.h> #include <linux/can.h>
#include <linux/if_alg.h> #include <linux/if_alg.h>
#include <linux/vm_sockets.h>
#ifdef TCSETS2 #ifdef TCSETS2
// On systems that have "struct termios2" use this as type Termios. // On systems that have "struct termios2" use this as type Termios.
...@@ -224,6 +225,8 @@ type RawSockaddrCAN C.struct_sockaddr_can ...@@ -224,6 +225,8 @@ type RawSockaddrCAN C.struct_sockaddr_can
type RawSockaddrALG C.struct_sockaddr_alg type RawSockaddrALG C.struct_sockaddr_alg
type RawSockaddrVM C.struct_sockaddr_vm
type RawSockaddr C.struct_sockaddr type RawSockaddr C.struct_sockaddr
type RawSockaddrAny C.struct_sockaddr_any type RawSockaddrAny C.struct_sockaddr_any
...@@ -266,6 +269,7 @@ const ( ...@@ -266,6 +269,7 @@ const (
SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci
SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can
SizeofSockaddrALG = C.sizeof_struct_sockaddr_alg SizeofSockaddrALG = C.sizeof_struct_sockaddr_alg
SizeofSockaddrVM = C.sizeof_struct_sockaddr_vm
SizeofLinger = C.sizeof_struct_linger SizeofLinger = C.sizeof_struct_linger
SizeofIPMreq = C.sizeof_struct_ip_mreq SizeofIPMreq = C.sizeof_struct_ip_mreq
SizeofIPMreqn = C.sizeof_struct_ip_mreqn SizeofIPMreqn = C.sizeof_struct_ip_mreqn
......
...@@ -51,6 +51,7 @@ const ( ...@@ -51,6 +51,7 @@ const (
AF_TIPC = 0x1e AF_TIPC = 0x1e
AF_UNIX = 0x1 AF_UNIX = 0x1
AF_UNSPEC = 0x0 AF_UNSPEC = 0x0
AF_VSOCK = 0x28
AF_WANPIPE = 0x19 AF_WANPIPE = 0x19
AF_X25 = 0x9 AF_X25 = 0x9
ALG_OP_DECRYPT = 0x0 ALG_OP_DECRYPT = 0x0
...@@ -1324,6 +1325,13 @@ const ( ...@@ -1324,6 +1325,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3 SO_TYPE = 0x3
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
SPLICE_F_MOVE = 0x1 SPLICE_F_MOVE = 0x1
...@@ -1500,6 +1508,11 @@ const ( ...@@ -1500,6 +1508,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6 VMIN = 0x6
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
......
...@@ -51,6 +51,7 @@ const ( ...@@ -51,6 +51,7 @@ const (
AF_TIPC = 0x1e AF_TIPC = 0x1e
AF_UNIX = 0x1 AF_UNIX = 0x1
AF_UNSPEC = 0x0 AF_UNSPEC = 0x0
AF_VSOCK = 0x28
AF_WANPIPE = 0x19 AF_WANPIPE = 0x19
AF_X25 = 0x9 AF_X25 = 0x9
ALG_OP_DECRYPT = 0x0 ALG_OP_DECRYPT = 0x0
...@@ -1331,6 +1332,13 @@ const ( ...@@ -1331,6 +1332,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3 SO_TYPE = 0x3
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
SPLICE_F_MOVE = 0x1 SPLICE_F_MOVE = 0x1
...@@ -1507,7 +1515,13 @@ const ( ...@@ -1507,7 +1515,13 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6 VMIN = 0x6
VM_SOCKETS_INVALID_VERSION = 0xffffffff
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
VSTART = 0x8 VSTART = 0x8
......
...@@ -50,6 +50,7 @@ const ( ...@@ -50,6 +50,7 @@ const (
AF_TIPC = 0x1e AF_TIPC = 0x1e
AF_UNIX = 0x1 AF_UNIX = 0x1
AF_UNSPEC = 0x0 AF_UNSPEC = 0x0
AF_VSOCK = 0x28
AF_WANPIPE = 0x19 AF_WANPIPE = 0x19
AF_X25 = 0x9 AF_X25 = 0x9
ALG_OP_DECRYPT = 0x0 ALG_OP_DECRYPT = 0x0
...@@ -1252,6 +1253,13 @@ const ( ...@@ -1252,6 +1253,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3 SO_TYPE = 0x3
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
SPLICE_F_MOVE = 0x1 SPLICE_F_MOVE = 0x1
...@@ -1428,6 +1436,11 @@ const ( ...@@ -1428,6 +1436,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6 VMIN = 0x6
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
......
...@@ -1382,6 +1382,13 @@ const ( ...@@ -1382,6 +1382,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3 SO_TYPE = 0x3
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29 SO_WIFI_STATUS = 0x29
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
...@@ -1581,6 +1588,11 @@ const ( ...@@ -1581,6 +1588,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6 VMIN = 0x6
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
......
...@@ -50,6 +50,7 @@ const ( ...@@ -50,6 +50,7 @@ const (
AF_TIPC = 0x1e AF_TIPC = 0x1e
AF_UNIX = 0x1 AF_UNIX = 0x1
AF_UNSPEC = 0x0 AF_UNSPEC = 0x0
AF_VSOCK = 0x28
AF_WANPIPE = 0x19 AF_WANPIPE = 0x19
AF_X25 = 0x9 AF_X25 = 0x9
ALG_OP_DECRYPT = 0x0 ALG_OP_DECRYPT = 0x0
...@@ -1305,6 +1306,13 @@ const ( ...@@ -1305,6 +1306,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x1008 SO_TYPE = 0x1008
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
SPLICE_F_MOVE = 0x1 SPLICE_F_MOVE = 0x1
...@@ -1477,6 +1485,11 @@ const ( ...@@ -1477,6 +1485,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4 VMIN = 0x4
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
......
...@@ -1394,6 +1394,13 @@ const ( ...@@ -1394,6 +1394,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x1008 SO_TYPE = 0x1008
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29 SO_WIFI_STATUS = 0x29
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
...@@ -1576,6 +1583,11 @@ const ( ...@@ -1576,6 +1583,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4 VMIN = 0x4
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
......
...@@ -1394,6 +1394,13 @@ const ( ...@@ -1394,6 +1394,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x1008 SO_TYPE = 0x1008
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29 SO_WIFI_STATUS = 0x29
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
...@@ -1576,6 +1583,11 @@ const ( ...@@ -1576,6 +1583,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4 VMIN = 0x4
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
......
...@@ -1467,6 +1467,13 @@ const ( ...@@ -1467,6 +1467,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x1008 SO_TYPE = 0x1008
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29 SO_WIFI_STATUS = 0x29
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
...@@ -1675,6 +1682,11 @@ const ( ...@@ -1675,6 +1682,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4 VMIN = 0x4
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
......
...@@ -1450,6 +1450,13 @@ const ( ...@@ -1450,6 +1450,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3 SO_TYPE = 0x3
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29 SO_WIFI_STATUS = 0x29
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
...@@ -1653,6 +1660,11 @@ const ( ...@@ -1653,6 +1660,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x5 VMIN = 0x5
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xb VREPRINT = 0xb
......
...@@ -1446,6 +1446,13 @@ const ( ...@@ -1446,6 +1446,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3 SO_TYPE = 0x3
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29 SO_WIFI_STATUS = 0x29
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
...@@ -1649,6 +1656,11 @@ const ( ...@@ -1649,6 +1656,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x5 VMIN = 0x5
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xb VREPRINT = 0xb
......
...@@ -1500,6 +1500,13 @@ const ( ...@@ -1500,6 +1500,13 @@ const (
SO_TIMESTAMPING = 0x25 SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23 SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3 SO_TYPE = 0x3
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29 SO_WIFI_STATUS = 0x29
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
...@@ -1707,6 +1714,11 @@ const ( ...@@ -1707,6 +1714,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6 VMIN = 0x6
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
......
...@@ -1540,6 +1540,13 @@ const ( ...@@ -1540,6 +1540,13 @@ const (
SO_TIMESTAMPING = 0x23 SO_TIMESTAMPING = 0x23
SO_TIMESTAMPNS = 0x21 SO_TIMESTAMPNS = 0x21
SO_TYPE = 0x1008 SO_TYPE = 0x1008
SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
SO_VM_SOCKETS_BUFFER_SIZE = 0x0
SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x25 SO_WIFI_STATUS = 0x25
SPLICE_F_GIFT = 0x8 SPLICE_F_GIFT = 0x8
SPLICE_F_MORE = 0x4 SPLICE_F_MORE = 0x4
...@@ -1749,6 +1756,11 @@ const ( ...@@ -1749,6 +1756,11 @@ const (
VINTR = 0x0 VINTR = 0x0
VKILL = 0x3 VKILL = 0x3
VLNEXT = 0xf VLNEXT = 0xf
VMADDR_CID_ANY = 0xffffffff
VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_RESERVED = 0x1
VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4 VMIN = 0x4
VQUIT = 0x1 VQUIT = 0x1
VREPRINT = 0xc VREPRINT = 0xc
......
...@@ -218,6 +218,14 @@ type RawSockaddrALG struct { ...@@ -218,6 +218,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -343,6 +351,7 @@ const ( ...@@ -343,6 +351,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -220,6 +220,14 @@ type RawSockaddrALG struct { ...@@ -220,6 +220,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -347,6 +355,7 @@ const ( ...@@ -347,6 +355,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -222,6 +222,14 @@ type RawSockaddrALG struct { ...@@ -222,6 +222,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]uint8 Data [14]uint8
...@@ -347,6 +355,7 @@ const ( ...@@ -347,6 +355,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -221,6 +221,14 @@ type RawSockaddrALG struct { ...@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -348,6 +356,7 @@ const ( ...@@ -348,6 +356,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -221,6 +221,14 @@ type RawSockaddrALG struct { ...@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -345,6 +353,7 @@ const ( ...@@ -345,6 +353,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -221,6 +221,14 @@ type RawSockaddrALG struct { ...@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -347,6 +355,7 @@ const ( ...@@ -347,6 +355,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -221,6 +221,14 @@ type RawSockaddrALG struct { ...@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -347,6 +355,7 @@ const ( ...@@ -347,6 +355,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -221,6 +221,14 @@ type RawSockaddrALG struct { ...@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -345,6 +353,7 @@ const ( ...@@ -345,6 +353,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -222,6 +222,14 @@ type RawSockaddrALG struct { ...@@ -222,6 +222,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]uint8 Data [14]uint8
...@@ -349,6 +357,7 @@ const ( ...@@ -349,6 +357,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -222,6 +222,14 @@ type RawSockaddrALG struct { ...@@ -222,6 +222,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]uint8 Data [14]uint8
...@@ -349,6 +357,7 @@ const ( ...@@ -349,6 +357,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -221,6 +221,14 @@ type RawSockaddrALG struct { ...@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -347,6 +355,7 @@ const ( ...@@ -347,6 +355,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -226,6 +226,14 @@ type RawSockaddrALG struct { ...@@ -226,6 +226,14 @@ type RawSockaddrALG struct {
Name [64]uint8 Name [64]uint8
} }
type RawSockaddrVM struct {
Family uint16
Reserved1 uint16
Port uint32
Cid uint32
Zero [4]uint8
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -352,6 +360,7 @@ const ( ...@@ -352,6 +360,7 @@ const (
SizeofSockaddrHCI = 0x6 SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10 SizeofSockaddrCAN = 0x10
SizeofSockaddrALG = 0x58 SizeofSockaddrALG = 0x58
SizeofSockaddrVM = 0x10
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment