mempool: fix anonymous populate
[dpdk.git] / lib / librte_vhost / vhost_user.h
index 1ad5cf4..86c364a 100644 (file)
                                         (1ULL << VHOST_USER_PROTOCOL_F_REPLY_ACK) | \
                                         (1ULL << VHOST_USER_PROTOCOL_F_NET_MTU) | \
                                         (1ULL << VHOST_USER_PROTOCOL_F_SLAVE_REQ) | \
-                                        (1ULL << VHOST_USER_PROTOCOL_F_CRYPTO_SESSION))
+                                        (1ULL << VHOST_USER_PROTOCOL_F_CRYPTO_SESSION) | \
+                                        (1ULL << VHOST_USER_PROTOCOL_F_SLAVE_SEND_FD) | \
+                                        (1ULL << VHOST_USER_PROTOCOL_F_HOST_NOTIFIER) | \
+                                        (1ULL << VHOST_USER_PROTOCOL_F_PAGEFAULT))
 
 typedef enum VhostUserRequest {
        VHOST_USER_NONE = 0,
@@ -48,12 +51,19 @@ typedef enum VhostUserRequest {
        VHOST_USER_IOTLB_MSG = 22,
        VHOST_USER_CRYPTO_CREATE_SESS = 26,
        VHOST_USER_CRYPTO_CLOSE_SESS = 27,
-       VHOST_USER_MAX = 28
+       VHOST_USER_POSTCOPY_ADVISE = 28,
+       VHOST_USER_POSTCOPY_LISTEN = 29,
+       VHOST_USER_POSTCOPY_END = 30,
+       VHOST_USER_GET_INFLIGHT_FD = 31,
+       VHOST_USER_SET_INFLIGHT_FD = 32,
+       VHOST_USER_MAX = 33
 } VhostUserRequest;
 
 typedef enum VhostUserSlaveRequest {
        VHOST_USER_SLAVE_NONE = 0,
        VHOST_USER_SLAVE_IOTLB_MSG = 1,
+       VHOST_USER_SLAVE_CONFIG_CHANGE_MSG = 2,
+       VHOST_USER_SLAVE_VRING_HOST_NOTIFIER_MSG = 3,
        VHOST_USER_SLAVE_MAX
 } VhostUserSlaveRequest;
 
@@ -99,6 +109,19 @@ typedef struct VhostUserCryptoSessionParam {
        uint8_t auth_key_buf[VHOST_USER_CRYPTO_MAX_HMAC_KEY_LENGTH];
 } VhostUserCryptoSessionParam;
 
+typedef struct VhostUserVringArea {
+       uint64_t u64;
+       uint64_t size;
+       uint64_t offset;
+} VhostUserVringArea;
+
+typedef struct VhostUserInflight {
+       uint64_t mmap_size;
+       uint64_t mmap_offset;
+       uint16_t num_queues;
+       uint16_t queue_size;
+} VhostUserInflight;
+
 typedef struct VhostUserMsg {
        union {
                uint32_t master; /* a VhostUserRequest value */
@@ -120,8 +143,11 @@ typedef struct VhostUserMsg {
                VhostUserLog    log;
                struct vhost_iotlb_msg iotlb;
                VhostUserCryptoSessionParam crypto_session;
+               VhostUserVringArea area;
+               VhostUserInflight inflight;
        } payload;
        int fds[VHOST_MEMORY_MAX_NREGIONS];
+       int fd_num;
 } __attribute((packed)) VhostUserMsg;
 
 #define VHOST_USER_HDR_SIZE offsetof(VhostUserMsg, payload.u64)
@@ -135,7 +161,8 @@ int vhost_user_msg_handler(int vid, int fd);
 int vhost_user_iotlb_miss(struct virtio_net *dev, uint64_t iova, uint8_t perm);
 
 /* socket.c */
-int read_fd_message(int sockfd, char *buf, int buflen, int *fds, int fd_num);
+int read_fd_message(int sockfd, char *buf, int buflen, int *fds, int max_fds,
+               int *fd_num);
 int send_fd_message(int sockfd, char *buf, int buflen, int *fds, int fd_num);
 
 #endif