/* * Vhost Vdpa Device * * Copyright (c) Huawei Technologies Co., Ltd. 2022. All Rights Reserved. * * Authors: * Longpeng * * Largely based on the "vhost-user-blk.h" implemented by: * Changpeng Liu * * This work is licensed under the terms of the GNU LGPL, version 2 or later. * See the COPYING.LIB file in the top-level directory. */ #ifndef _VHOST_VDPA_DEVICE_H #define _VHOST_VDPA_DEVICE_H #include "hw/virtio/vhost.h" #include "hw/virtio/vhost-vdpa.h" #include "qom/object.h" #define TYPE_VHOST_VDPA_DEVICE "vhost-vdpa-device" OBJECT_DECLARE_SIMPLE_TYPE(VhostVdpaDevice, VHOST_VDPA_DEVICE) struct VhostVdpaDevice { VirtIODevice parent_obj; char *vhostdev; int vhostfd; int32_t bootindex; uint32_t vdev_id; uint32_t num_queues; struct vhost_dev dev; struct vhost_vdpa vdpa; VirtQueue **virtqs; uint8_t *config; int config_size; uint16_t queue_size; bool started; int (*post_init)(VhostVdpaDevice *v, Error **errp); }; #endif