[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 10/37] usb-storage: add scsi_off, remove scsi_buf
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 10/37] usb-storage: add scsi_off, remove scsi_buf |
Date: |
Thu, 7 Jun 2012 11:30:59 +0200 |
Repace the running buffer pointer (scsi_buf) with a buffer offset
field (scsi_off). The later is alot easier to live-migrate.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/usb/dev-storage.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
index 924a86f..5b9a286 100644
--- a/hw/usb/dev-storage.c
+++ b/hw/usb/dev-storage.c
@@ -48,8 +48,8 @@ struct usb_msd_csw {
typedef struct {
USBDevice dev;
enum USBMSDMode mode;
+ uint32_t scsi_off;
uint32_t scsi_len;
- uint8_t *scsi_buf;
uint32_t data_len;
struct usb_msd_csw csw;
SCSIRequest *req;
@@ -178,9 +178,9 @@ static void usb_msd_copy_data(MSDState *s, USBPacket *p)
len = p->iov.size - p->result;
if (len > s->scsi_len)
len = s->scsi_len;
- usb_packet_copy(p, s->scsi_buf, len);
+ usb_packet_copy(p, scsi_req_get_buf(s->req) + s->scsi_off, len);
s->scsi_len -= len;
- s->scsi_buf += len;
+ s->scsi_off += len;
s->data_len -= len;
if (s->scsi_len == 0 || s->data_len == 0) {
scsi_req_continue(s->req);
@@ -219,7 +219,7 @@ static void usb_msd_transfer_data(SCSIRequest *req,
uint32_t len)
assert((s->mode == USB_MSDM_DATAOUT) == (req->cmd.mode ==
SCSI_XFER_TO_DEV));
s->scsi_len = len;
- s->scsi_buf = scsi_req_get_buf(req);
+ s->scsi_off = 0;
if (p) {
usb_msd_copy_data(s, p);
p = s->packet;
--
1.7.1
- [Qemu-devel] [PATCH 17/37] xhci: trace: endpoints, (continued)
- [Qemu-devel] [PATCH 17/37] xhci: trace: endpoints, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 29/37] ehci: kick async schedule on wakeup, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 05/37] uhci: zap uhci_pre_save, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 30/37] ehci: fix reset, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 04/37] uhci: fix trace format strings, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 09/37] usb-storage: add usb_msd_packet_complete(), Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 32/37] ehci: update status bits in ehci_set_state, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 27/37] ehci: move async schedule to bottom half, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 01/37] uhci: fix bandwidth management, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 22/37] ehci: cache USBDevice in EHCIQueue, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 10/37] usb-storage: add scsi_off, remove scsi_buf,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH 06/37] uhci: fix irq routing, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 18/37] xhci: trace: transfers, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 26/37] ehci: add async field to EHCIQueue, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 12/37] xhci: Clean up reset function, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 21/37] ehci: make ehci_execute work on EHCIPacket instead of EHCIQueue, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 11/37] usb-storage: migration support, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 07/37] scsi: prepare migration code for usb-storage support, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 16/37] xhci: trace: ring fetch, Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 36/37] ehci: adaptive wakeup rate., Gerd Hoffmann, 2012/06/07
- [Qemu-devel] [PATCH 31/37] ehci: add ehci_*_enabled() helpers, Gerd Hoffmann, 2012/06/07