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 21 #define TYPE_VHOST_SCSI_COMMON "vhost-scsi-common" 22 #define VHOST_SCSI_COMMON(obj) \ 23 OBJECT_CHECK(VHostSCSICommon, (obj), TYPE_VHOST_SCSI_COMMON) 24 25 typedef 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 } VHostSCSICommon; 39 40 int vhost_scsi_common_start(VHostSCSICommon *vsc); 41 void vhost_scsi_common_stop(VHostSCSICommon *vsc); 42 char *vhost_scsi_common_get_fw_dev_path(FWPathProvider *p, BusState *bus, 43 DeviceState *dev); 44 void vhost_scsi_common_set_config(VirtIODevice *vdev, const uint8_t *config); 45 uint64_t vhost_scsi_common_get_features(VirtIODevice *vdev, uint64_t features, 46 Error **errp); 47 48 #endif /* VHOST_SCSI_COMMON_H */ 49