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 "hw/virtio/virtio-scsi.h" 18 #include "hw/virtio/vhost.h" 19 #include "hw/fw-path-provider.h" 20 #include "qom/object.h" 21 22 #define TYPE_VHOST_SCSI_COMMON "vhost-scsi-common" 23 OBJECT_DECLARE_SIMPLE_TYPE(VHostSCSICommon, VHOST_SCSI_COMMON) 24 25 struct VHostSCSICommon { 26 VirtIOSCSICommon parent_obj; 27 28 Error *migration_blocker; 29 30 struct vhost_dev dev; 31 const int *feature_bits; 32 int32_t bootindex; 33 int channel; 34 int target; 35 int lun; 36 uint64_t host_features; 37 bool migratable; 38 39 struct vhost_inflight *inflight; 40 }; 41 42 int vhost_scsi_common_start(VHostSCSICommon *vsc, Error **errp); 43 void vhost_scsi_common_stop(VHostSCSICommon *vsc); 44 char *vhost_scsi_common_get_fw_dev_path(FWPathProvider *p, BusState *bus, 45 DeviceState *dev); 46 void vhost_scsi_common_set_config(VirtIODevice *vdev, const uint8_t *config); 47 uint64_t vhost_scsi_common_get_features(VirtIODevice *vdev, uint64_t features, 48 Error **errp); 49 50 #endif /* VHOST_SCSI_COMMON_H */ 51