1
2#ifndef _LINUX_VHOST_H
3#define _LINUX_VHOST_H
4
5
6
7
8
9
10
11
12
13
14#include <linux/vhost_types.h>
15#include <linux/types.h>
16#include <linux/ioctl.h>
17
18#define VHOST_FILE_UNBIND -1
19
20
21
22#define VHOST_VIRTIO 0xAF
23
24
25
26#define VHOST_GET_FEATURES _IOR(VHOST_VIRTIO, 0x00, __u64)
27#define VHOST_SET_FEATURES _IOW(VHOST_VIRTIO, 0x00, __u64)
28
29
30
31
32#define VHOST_SET_OWNER _IO(VHOST_VIRTIO, 0x01)
33
34
35#define VHOST_RESET_OWNER _IO(VHOST_VIRTIO, 0x02)
36
37
38#define VHOST_SET_MEM_TABLE _IOW(VHOST_VIRTIO, 0x03, struct vhost_memory)
39
40
41
42
43
44
45#define VHOST_SET_LOG_BASE _IOW(VHOST_VIRTIO, 0x04, __u64)
46
47#define VHOST_SET_LOG_FD _IOW(VHOST_VIRTIO, 0x07, int)
48
49
50
51
52#define VHOST_SET_VRING_NUM _IOW(VHOST_VIRTIO, 0x10, struct vhost_vring_state)
53
54#define VHOST_SET_VRING_ADDR _IOW(VHOST_VIRTIO, 0x11, struct vhost_vring_addr)
55
56#define VHOST_SET_VRING_BASE _IOW(VHOST_VIRTIO, 0x12, struct vhost_vring_state)
57
58#define VHOST_GET_VRING_BASE _IOWR(VHOST_VIRTIO, 0x12, struct vhost_vring_state)
59
60
61
62
63
64
65
66
67
68
69#define VHOST_VRING_LITTLE_ENDIAN 0
70#define VHOST_VRING_BIG_ENDIAN 1
71#define VHOST_SET_VRING_ENDIAN _IOW(VHOST_VIRTIO, 0x13, struct vhost_vring_state)
72#define VHOST_GET_VRING_ENDIAN _IOW(VHOST_VIRTIO, 0x14, struct vhost_vring_state)
73
74
75
76
77
78#define VHOST_SET_VRING_KICK _IOW(VHOST_VIRTIO, 0x20, struct vhost_vring_file)
79
80#define VHOST_SET_VRING_CALL _IOW(VHOST_VIRTIO, 0x21, struct vhost_vring_file)
81
82#define VHOST_SET_VRING_ERR _IOW(VHOST_VIRTIO, 0x22, struct vhost_vring_file)
83
84#define VHOST_SET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x23, \
85 struct vhost_vring_state)
86
87#define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \
88 struct vhost_vring_state)
89
90
91
92
93#define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1
94
95#define VHOST_BACKEND_F_IOTLB_BATCH 0x2
96
97#define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64)
98#define VHOST_GET_BACKEND_FEATURES _IOR(VHOST_VIRTIO, 0x26, __u64)
99
100
101
102
103
104
105
106#define VHOST_NET_SET_BACKEND _IOW(VHOST_VIRTIO, 0x30, struct vhost_vring_file)
107
108
109
110#define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_scsi_target)
111#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target)
112
113#define VHOST_SCSI_GET_ABI_VERSION _IOW(VHOST_VIRTIO, 0x42, int)
114
115#define VHOST_SCSI_SET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x43, __u32)
116#define VHOST_SCSI_GET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x44, __u32)
117
118
119
120#define VHOST_VSOCK_SET_GUEST_CID _IOW(VHOST_VIRTIO, 0x60, __u64)
121#define VHOST_VSOCK_SET_RUNNING _IOW(VHOST_VIRTIO, 0x61, int)
122
123
124
125
126
127
128#define VHOST_VDPA_GET_DEVICE_ID _IOR(VHOST_VIRTIO, 0x70, __u32)
129
130
131
132#define VHOST_VDPA_GET_STATUS _IOR(VHOST_VIRTIO, 0x71, __u8)
133#define VHOST_VDPA_SET_STATUS _IOW(VHOST_VIRTIO, 0x72, __u8)
134
135
136
137#define VHOST_VDPA_GET_CONFIG _IOR(VHOST_VIRTIO, 0x73, \
138 struct vhost_vdpa_config)
139#define VHOST_VDPA_SET_CONFIG _IOW(VHOST_VIRTIO, 0x74, \
140 struct vhost_vdpa_config)
141
142#define VHOST_VDPA_SET_VRING_ENABLE _IOW(VHOST_VIRTIO, 0x75, \
143 struct vhost_vring_state)
144
145#define VHOST_VDPA_GET_VRING_NUM _IOR(VHOST_VIRTIO, 0x76, __u16)
146
147
148#define VHOST_VDPA_SET_CONFIG_CALL _IOW(VHOST_VIRTIO, 0x77, int)
149
150
151#define VHOST_VDPA_GET_IOVA_RANGE _IOR(VHOST_VIRTIO, 0x78, \
152 struct vhost_vdpa_iova_range)
153#endif
154