1 /* 2 * vhost_scsi host device 3 * 4 * Copyright (c) 2016 Nutanix Inc. All rights reserved. 5 * 6 * Author: 7 * Felipe Franciosi <felipe@nutanix.com> 8 * 9 * This work is licensed under the terms of the GNU LGPL, version 2 or later. 10 * See the COPYING.LIB file in the top-level directory. 11 * 12 */ 13 14 #ifndef VHOST_SCSI_COMMON_H 15 #define VHOST_SCSI_COMMON_H 16 17 #include "qemu-common.h" 18 #include "hw/qdev.h" 19 #include "hw/virtio/virtio-scsi.h" 20 #include "hw/virtio/vhost.h" 21 #include "hw/fw-path-provider.h" 22 23 #define TYPE_VHOST_SCSI_COMMON "vhost-scsi-common" 24 #define VHOST_SCSI_COMMON(obj) \ 25 OBJECT_CHECK(VHostSCSICommon, (obj), TYPE_VHOST_SCSI_COMMON) 26 27 typedef struct VHostSCSICommon { 28 VirtIOSCSICommon parent_obj; 29 30 Error *migration_blocker; 31 32 struct vhost_dev dev; 33 const int *feature_bits; 34 int32_t bootindex; 35 int channel; 36 int target; 37 int lun; 38 uint64_t host_features; 39 } VHostSCSICommon; 40 41 int vhost_scsi_common_start(VHostSCSICommon *vsc); 42 void vhost_scsi_common_stop(VHostSCSICommon *vsc); 43 char *vhost_scsi_common_get_fw_dev_path(FWPathProvider *p, BusState *bus, 44 DeviceState *dev); 45 void vhost_scsi_common_set_config(VirtIODevice *vdev, const uint8_t *config); 46 uint64_t vhost_scsi_common_get_features(VirtIODevice *vdev, uint64_t features, 47 Error **errp); 48 49 #endif /* VHOST_SCSI_COMMON_H */ 50