master
h 43 lines 1.03 KB
Raw
1 /*
2 * Vhost Vdpa Device
3 *
4 * Copyright (c) Huawei Technologies Co., Ltd. 2022. All Rights Reserved.
5 *
6 * Authors:
7 * Longpeng <longpeng2@huawei.com>
8 *
9 * Largely based on the "vhost-user-blk.h" implemented by:
10 * Changpeng Liu <changpeng.liu@intel.com>
11 *
12 * This work is licensed under the terms of the GNU LGPL, version 2 or later.
13 * See the COPYING.LIB file in the top-level directory.
14 */
15 #ifndef _VHOST_VDPA_DEVICE_H
16 #define _VHOST_VDPA_DEVICE_H
17
18 #include "hw/virtio/vhost.h"
19 #include "hw/virtio/vhost-vdpa.h"
20 #include "qom/object.h"
21
22
23 #define TYPE_VHOST_VDPA_DEVICE "vhost-vdpa-device"
24 OBJECT_DECLARE_SIMPLE_TYPE(VhostVdpaDevice, VHOST_VDPA_DEVICE)
25
26 struct VhostVdpaDevice {
27 VirtIODevice parent_obj;
28 char *vhostdev;
29 int vhostfd;
30 int32_t bootindex;
31 uint32_t vdev_id;
32 uint32_t num_queues;
33 struct vhost_dev dev;
34 struct vhost_vdpa vdpa;
35 VirtQueue **virtqs;
36 uint8_t *config;
37 int config_size;
38 uint16_t queue_size;
39 bool started;
40 int (*post_init)(VhostVdpaDevice *v, Error **errp);
41 };
42
43 #endif