mirror of
https://github.com/golang/sys.git
synced 2026-02-08 19:56:04 +03:00
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: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
@@ -132,6 +132,7 @@ includes_Linux='
|
||||
#include <linux/icmpv6.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/can.h>
|
||||
#include <linux/vm_sockets.h>
|
||||
#include <net/route.h>
|
||||
#include <asm/termbits.h>
|
||||
|
||||
@@ -352,6 +353,7 @@ ccflags="$@"
|
||||
$2 ~ /^ALG_/ ||
|
||||
$2 ~ /^GRND_/ ||
|
||||
$2 ~ /^SPLICE_/ ||
|
||||
$2 ~ /^(VM|VMADDR)_/ ||
|
||||
$2 !~ "WMESGLEN" &&
|
||||
$2 ~ /^W[A-Z0-9]+$/ ||
|
||||
$2 ~ /^BLK/ {printf("\t%s = C.%s\n", $2, $2)}
|
||||
|
||||
@@ -551,6 +551,28 @@ func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||
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) {
|
||||
switch rsa.Addr.Family {
|
||||
case AF_NETLINK:
|
||||
@@ -620,6 +642,14 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
|
||||
sa.Addr[i] = pp.Addr[i]
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
@@ -60,6 +60,7 @@ package unix
|
||||
#include <bluetooth/hci.h>
|
||||
#include <linux/can.h>
|
||||
#include <linux/if_alg.h>
|
||||
#include <linux/vm_sockets.h>
|
||||
|
||||
#ifdef TCSETS2
|
||||
// On systems that have "struct termios2" use this as type Termios.
|
||||
@@ -224,6 +225,8 @@ type RawSockaddrCAN C.struct_sockaddr_can
|
||||
|
||||
type RawSockaddrALG C.struct_sockaddr_alg
|
||||
|
||||
type RawSockaddrVM C.struct_sockaddr_vm
|
||||
|
||||
type RawSockaddr C.struct_sockaddr
|
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any
|
||||
@@ -266,6 +269,7 @@ const (
|
||||
SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci
|
||||
SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can
|
||||
SizeofSockaddrALG = C.sizeof_struct_sockaddr_alg
|
||||
SizeofSockaddrVM = C.sizeof_struct_sockaddr_vm
|
||||
SizeofLinger = C.sizeof_struct_linger
|
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq
|
||||
SizeofIPMreqn = C.sizeof_struct_ip_mreqn
|
||||
|
||||
@@ -51,6 +51,7 @@ const (
|
||||
AF_TIPC = 0x1e
|
||||
AF_UNIX = 0x1
|
||||
AF_UNSPEC = 0x0
|
||||
AF_VSOCK = 0x28
|
||||
AF_WANPIPE = 0x19
|
||||
AF_X25 = 0x9
|
||||
ALG_OP_DECRYPT = 0x0
|
||||
@@ -1324,6 +1325,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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_MORE = 0x4
|
||||
SPLICE_F_MOVE = 0x1
|
||||
@@ -1500,6 +1508,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x6
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
|
||||
@@ -51,6 +51,7 @@ const (
|
||||
AF_TIPC = 0x1e
|
||||
AF_UNIX = 0x1
|
||||
AF_UNSPEC = 0x0
|
||||
AF_VSOCK = 0x28
|
||||
AF_WANPIPE = 0x19
|
||||
AF_X25 = 0x9
|
||||
ALG_OP_DECRYPT = 0x0
|
||||
@@ -1331,6 +1332,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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_MORE = 0x4
|
||||
SPLICE_F_MOVE = 0x1
|
||||
@@ -1507,7 +1515,13 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x6
|
||||
VM_SOCKETS_INVALID_VERSION = 0xffffffff
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
VSTART = 0x8
|
||||
|
||||
@@ -50,6 +50,7 @@ const (
|
||||
AF_TIPC = 0x1e
|
||||
AF_UNIX = 0x1
|
||||
AF_UNSPEC = 0x0
|
||||
AF_VSOCK = 0x28
|
||||
AF_WANPIPE = 0x19
|
||||
AF_X25 = 0x9
|
||||
ALG_OP_DECRYPT = 0x0
|
||||
@@ -1252,6 +1253,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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_MORE = 0x4
|
||||
SPLICE_F_MOVE = 0x1
|
||||
@@ -1428,6 +1436,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x6
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
|
||||
@@ -1382,6 +1382,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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
|
||||
SPLICE_F_GIFT = 0x8
|
||||
SPLICE_F_MORE = 0x4
|
||||
@@ -1581,6 +1588,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x6
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
|
||||
@@ -50,6 +50,7 @@ const (
|
||||
AF_TIPC = 0x1e
|
||||
AF_UNIX = 0x1
|
||||
AF_UNSPEC = 0x0
|
||||
AF_VSOCK = 0x28
|
||||
AF_WANPIPE = 0x19
|
||||
AF_X25 = 0x9
|
||||
ALG_OP_DECRYPT = 0x0
|
||||
@@ -1305,6 +1306,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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_MORE = 0x4
|
||||
SPLICE_F_MOVE = 0x1
|
||||
@@ -1477,6 +1485,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x4
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
|
||||
@@ -1394,6 +1394,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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
|
||||
SPLICE_F_GIFT = 0x8
|
||||
SPLICE_F_MORE = 0x4
|
||||
@@ -1576,6 +1583,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x4
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
|
||||
@@ -1394,6 +1394,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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
|
||||
SPLICE_F_GIFT = 0x8
|
||||
SPLICE_F_MORE = 0x4
|
||||
@@ -1576,6 +1583,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x4
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
|
||||
@@ -1467,6 +1467,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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
|
||||
SPLICE_F_GIFT = 0x8
|
||||
SPLICE_F_MORE = 0x4
|
||||
@@ -1675,6 +1682,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x4
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
|
||||
@@ -1450,6 +1450,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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
|
||||
SPLICE_F_GIFT = 0x8
|
||||
SPLICE_F_MORE = 0x4
|
||||
@@ -1653,6 +1660,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x5
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xb
|
||||
|
||||
@@ -1446,6 +1446,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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
|
||||
SPLICE_F_GIFT = 0x8
|
||||
SPLICE_F_MORE = 0x4
|
||||
@@ -1649,6 +1656,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x5
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xb
|
||||
|
||||
@@ -1500,6 +1500,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x25
|
||||
SO_TIMESTAMPNS = 0x23
|
||||
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
|
||||
SPLICE_F_GIFT = 0x8
|
||||
SPLICE_F_MORE = 0x4
|
||||
@@ -1707,6 +1714,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x6
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
|
||||
@@ -1540,6 +1540,13 @@ const (
|
||||
SO_TIMESTAMPING = 0x23
|
||||
SO_TIMESTAMPNS = 0x21
|
||||
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
|
||||
SPLICE_F_GIFT = 0x8
|
||||
SPLICE_F_MORE = 0x4
|
||||
@@ -1749,6 +1756,11 @@ const (
|
||||
VINTR = 0x0
|
||||
VKILL = 0x3
|
||||
VLNEXT = 0xf
|
||||
VMADDR_CID_ANY = 0xffffffff
|
||||
VMADDR_CID_HOST = 0x2
|
||||
VMADDR_CID_HYPERVISOR = 0x0
|
||||
VMADDR_CID_RESERVED = 0x1
|
||||
VMADDR_PORT_ANY = 0xffffffff
|
||||
VMIN = 0x4
|
||||
VQUIT = 0x1
|
||||
VREPRINT = 0xc
|
||||
|
||||
@@ -218,6 +218,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]int8
|
||||
@@ -343,6 +351,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -220,6 +220,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]int8
|
||||
@@ -347,6 +355,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -222,6 +222,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]uint8
|
||||
@@ -347,6 +355,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]int8
|
||||
@@ -348,6 +356,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]int8
|
||||
@@ -345,6 +353,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]int8
|
||||
@@ -347,6 +355,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]int8
|
||||
@@ -347,6 +355,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]int8
|
||||
@@ -345,6 +353,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -222,6 +222,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]uint8
|
||||
@@ -349,6 +357,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -222,6 +222,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]uint8
|
||||
@@ -349,6 +357,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -221,6 +221,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]int8
|
||||
@@ -347,6 +355,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
@@ -226,6 +226,14 @@ type RawSockaddrALG struct {
|
||||
Name [64]uint8
|
||||
}
|
||||
|
||||
type RawSockaddrVM struct {
|
||||
Family uint16
|
||||
Reserved1 uint16
|
||||
Port uint32
|
||||
Cid uint32
|
||||
Zero [4]uint8
|
||||
}
|
||||
|
||||
type RawSockaddr struct {
|
||||
Family uint16
|
||||
Data [14]int8
|
||||
@@ -352,6 +360,7 @@ const (
|
||||
SizeofSockaddrHCI = 0x6
|
||||
SizeofSockaddrCAN = 0x10
|
||||
SizeofSockaddrALG = 0x58
|
||||
SizeofSockaddrVM = 0x10
|
||||
SizeofLinger = 0x8
|
||||
SizeofIPMreq = 0x8
|
||||
SizeofIPMreqn = 0xc
|
||||
|
||||
Reference in New Issue
Block a user