mirror of https://github.com/xemu-project/xemu.git
scsi/scsi_bus: Add scsi_device_get
Add scsi_device_get which finds the scsi device and takes a reference to it. Suggested-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> Message-Id: <20200913160259.32145-8-mlevitsk@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20201006123904.610658-12-mlevitsk@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
8ddf958e8d
commit
8ff3449560
|
@ -73,6 +73,17 @@ SCSIDevice *scsi_device_find(SCSIBus *bus, int channel, int id, int lun)
|
||||||
return do_scsi_device_find(bus, channel, id, lun, false);
|
return do_scsi_device_find(bus, channel, id, lun, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SCSIDevice *scsi_device_get(SCSIBus *bus, int channel, int id, int lun)
|
||||||
|
{
|
||||||
|
SCSIDevice *d;
|
||||||
|
RCU_READ_LOCK_GUARD();
|
||||||
|
d = do_scsi_device_find(bus, channel, id, lun, false);
|
||||||
|
if (d) {
|
||||||
|
object_ref(d);
|
||||||
|
}
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
static void scsi_device_realize(SCSIDevice *s, Error **errp)
|
static void scsi_device_realize(SCSIDevice *s, Error **errp)
|
||||||
{
|
{
|
||||||
SCSIDeviceClass *sc = SCSI_DEVICE_GET_CLASS(s);
|
SCSIDeviceClass *sc = SCSI_DEVICE_GET_CLASS(s);
|
||||||
|
|
|
@ -190,6 +190,7 @@ int scsi_device_get_sense(SCSIDevice *dev, uint8_t *buf, int len, bool fixed);
|
||||||
int scsi_SG_IO_FROM_DEV(BlockBackend *blk, uint8_t *cmd, uint8_t cmd_size,
|
int scsi_SG_IO_FROM_DEV(BlockBackend *blk, uint8_t *cmd, uint8_t cmd_size,
|
||||||
uint8_t *buf, uint8_t buf_size);
|
uint8_t *buf, uint8_t buf_size);
|
||||||
SCSIDevice *scsi_device_find(SCSIBus *bus, int channel, int target, int lun);
|
SCSIDevice *scsi_device_find(SCSIBus *bus, int channel, int target, int lun);
|
||||||
|
SCSIDevice *scsi_device_get(SCSIBus *bus, int channel, int target, int lun);
|
||||||
|
|
||||||
/* scsi-generic.c. */
|
/* scsi-generic.c. */
|
||||||
extern const SCSIReqOps scsi_generic_req_ops;
|
extern const SCSIReqOps scsi_generic_req_ops;
|
||||||
|
|
Loading…
Reference in New Issue