2 * USB Mass Storage Device emulation
4 * Copyright (c) 2006 CodeSourcery.
5 * Written by Paul Brook
7 * This code is licensed under the LGPL.
11 #include "hw/scsi/scsi.h"
14 USB_MSDM_CBW
, /* Command Block. */
15 USB_MSDM_DATAOUT
, /* Transfer data to device. */
16 USB_MSDM_DATAIN
, /* Transfer data from device. */
17 USB_MSDM_CSW
/* Command Status. */
33 struct usb_msd_csw csw
;
36 /* For async completion. */
38 /* usb-storage only */
45 typedef struct MSDState MSDState
;
46 #define TYPE_USB_STORAGE "usb-storage-dev"
47 DECLARE_INSTANCE_CHECKER(MSDState
, USB_STORAGE_DEV
,
50 void usb_msd_transfer_data(SCSIRequest
*req
, uint32_t len
);
51 void usb_msd_command_complete(SCSIRequest
*req
, size_t resid
);
52 void usb_msd_request_cancelled(SCSIRequest
*req
);
53 void *usb_msd_load_request(QEMUFile
*f
, SCSIRequest
*req
);
54 void usb_msd_handle_reset(USBDevice
*dev
);