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