1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   Copied and modified from bionic/libc/kernel/uapi/linux/vm_sockets.h
11  ***
12  ****************************************************************************
13  ****************************************************************************/
14 #ifndef _UAPI_VM_SOCKETS_H
15 #define _UAPI_VM_SOCKETS_H
16 #include <linux/socket.h>
17 #define SO_VM_SOCKETS_BUFFER_SIZE 0
18 #define SO_VM_SOCKETS_BUFFER_MIN_SIZE 1
19 #define SO_VM_SOCKETS_BUFFER_MAX_SIZE 2
20 #define SO_VM_SOCKETS_PEER_HOST_VM_ID 3
21 #define SO_VM_SOCKETS_TRUSTED 5
22 #define SO_VM_SOCKETS_CONNECT_TIMEOUT 6
23 #define SO_VM_SOCKETS_NONBLOCK_TXRX 7
24 #define VMADDR_CID_ANY - 1U
25 #define VMADDR_PORT_ANY - 1U
26 #define VMADDR_CID_HYPERVISOR 0
27 #define VMADDR_CID_RESERVED 1
28 #define VMADDR_CID_HOST 2
29 #define VM_SOCKETS_INVALID_VERSION - 1U
30 #define VM_SOCKETS_VERSION_EPOCH(_v) (((_v) & 0xFF000000) >> 24)
31 #define VM_SOCKETS_VERSION_MAJOR(_v) (((_v) & 0x00FF0000) >> 16)
32 #define VM_SOCKETS_VERSION_MINOR(_v) (((_v) & 0x0000FFFF))
33 struct sockaddr_vm {
34   __kernel_sa_family_t svm_family;
35   unsigned short svm_reserved1;
36   unsigned int svm_port;
37   unsigned int svm_cid;
38   unsigned char svm_zero[sizeof(struct sockaddr) - sizeof(sa_family_t) - sizeof(unsigned short) - sizeof(unsigned int) - sizeof(unsigned int)];
39 };
40 #define IOCTL_VM_SOCKETS_GET_LOCAL_CID _IO(7, 0xb9)
41 #ifndef AF_VSOCK
42 #define AF_VSOCK 40
43 #endif
44 #endif
45