Statistics
| Branch: | Revision:

root / hw / scsi-generic.c @ bc20ba98

History | View | Annotate | Download (15 kB)

# Date Author Comment
620f862e 07/06/2010 06:05 pm Markus Armbruster

scsi: Reject unimplemented error actions

drive_init() doesn't permit rerror for if=scsi, but that's worthless:
we get it via if=none and -device.

Moreover, scsi-generic doesn't support werror. Since drive_init()
doesn't catch that, option werror was silently ignored even with...

f8b6cc00 07/02/2010 02:18 pm Markus Armbruster

qdev: Decouple qdev_prop_drive from DriveInfo

Make the property point to BlockDriverState, cutting out the DriveInfo
middleman. This prepares the ground for block devices that don't have
a DriveInfo.

Currently all user-defined ones have a DriveInfo, because the only way...

7d0d6950 07/02/2010 02:18 pm Markus Armbruster

block: Fix virtual media change for if=none

BlockDriverState member removable controls whether virtual media
change (monitor commands change, eject) is allowed. It is set when
the "type hint" is BDRV_TYPE_CDROM or BDRV_TYPE_FLOPPY.

The type hint is only set by drive_init(). It sets BDRV_TYPE_FLOPPY...

14bafc54 07/02/2010 02:18 pm Markus Armbruster

blockdev: Clean up automatic drive deletion

We automatically delete blockdev host parts on unplug of the guest
device. Too much magic, but we can't change that now.

The delete happens early in the guest device teardown, before the
connection to the host part is severed. Thus, the guest part's...

666daa68 06/04/2010 04:20 pm Markus Armbruster

blockdev: Collect block device code in new blockdev.c

Anything that moves hundreds of lines out of vl.c can't be all bad.

Signed-off-by: Markus Armbruster <>
Signed-off-by: Kevin Wolf <>

1ecda02b 03/16/2010 05:58 pm Markus Armbruster

error: Replace qemu_error() by error_report()

error_report() terminates the message with a newline. Strip it it
from its arguments.

This fixes a few error messages lacking a newline:
net_handle_fd_param()'s "No file descriptor named %s found", and
tap_open()'s "vnet_hdr=1 requested, but no kernel support for...

2f792016 03/16/2010 05:55 pm Markus Armbruster

error: Move qemu_error & friends into their own header

428c149b 02/11/2010 12:53 am Christoph Hellwig

block: add topology qdev properties

Add three new qdev properties to export block topology information to
the guest. This is needed to get optimal I/O alignment for RAID arrays
or SSDs.

The options are:

- physical_block_size to specify the physical block size of the device,...
97a06435 12/03/2009 05:41 pm Gerd Hoffmann

scsi: add xfer mode

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

251882b7 12/03/2009 05:41 pm Gerd Hoffmann

scsi: move dinfo to SCSIDevice

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

ed3a34a3 12/03/2009 05:41 pm Gerd Hoffmann

scsi: move status to SCSIRequest.

Also add and use the scsi_req_complete() helper function for calling the
completion callback.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

4c41d2ef 12/03/2009 05:41 pm Gerd Hoffmann

scsi: create common SCSIRequest structure.

Rename the SCSIRequest structs in scsi-disk.c and scsi-generic.c to
SCSIDiskReq and SCSIGenericReq. Create a SCSIRequest struct and move
the common elements over.

Signed-off-by: Gerd Hoffmann <>...

9af99d98 12/03/2009 05:41 pm Gerd Hoffmann

scsi: move request lists to QTAILQ.

Changes: * Move from open-coded lists to QTAILQ macros. * Move the struct elements to the common data structures
(SCSIDevice + SCSIRequest). * Drop free request pools. * Fix request cleanup in the destroy callback....

89b08ae1 12/03/2009 05:41 pm Gerd Hoffmann

scsi: move SCSIRequest management to common code.

Create generic functions to allocate, find and release SCSIRequest
structs. Make scsi-disk and scsi-generic use them.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

29362ebe 12/03/2009 05:41 pm Gerd Hoffmann

scsi: move scsi command buffer from SCSIGenericReq to SCSIRequest.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

b07995e3 12/03/2009 05:41 pm Gerd Hoffmann

scsi: move blocksize from SCSIGenericState to SCSIDevice

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

0d65e1f8 12/03/2009 05:41 pm Gerd Hoffmann

scsi: add scsi-defs.h

Largely based on <scsi/scsi.h> from linux. Added into the tree so we
can use the defines everywhere, not just in scsi-generic.c (which is
linux-specific).

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

91376656 12/03/2009 05:41 pm Gerd Hoffmann

scsi: move type from SCSIGenericState to SCSIDevice

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

2ec749cb 12/03/2009 05:41 pm Gerd Hoffmann

scsi: add request parsing helpers to common code.

Add helper functions for scsi request parsing to common code. Getting
command length, transfer size, and linear block address is handled.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

e3c916e6 12/02/2009 04:57 pm Jean-Christophe DUBOIS

Fix qemu_free use in scsi-generic.c

scsi-generic.c is using free() instead of qemu_free().
Fix it.

Signed-off-by: Jean-Christophe DUBOIS <>
Signed-off-by: Anthony Liguori <>

43b443b6 11/09/2009 04:43 pm Gerd Hoffmann

scsi: move scsi-disk.h -> scsi.h

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

56a14938 10/05/2009 05:32 pm Gerd Hoffmann

drive cleanup fixes.

Changes: * drive_uninit() wants a DriveInfo now. * drive_uninit() also calls bdrv_delete(),
so callers don't need to do that. * drive_uninit() calls are moved over to the ->exit()
callbacks, destroy_bdrvs() is zapped. * setting bdrv->private is not needed any more as the...

01985dcf 10/05/2009 05:32 pm Gerd Hoffmann

Implement scsi device destruction

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

d52affa7 09/09/2009 10:57 pm Gerd Hoffmann

qdev/scsi: add scsi bus support to qdev, convert drivers.

  • Add SCSIBus. * Add SCSIDeviceInfo, move device callbacks here. * add qdev/scsi helper functions. * convert drivers.

Adding scsi disks via -device works now, i.e. you can do:

-drive id=sda,if=none,......
001faf32 05/13/2009 08:53 pm Blue Swirl

Replace gcc variadic macro extension with C99 version

Signed-off-by: Blue Swirl <>

221f715d 03/28/2009 07:28 pm aliguori

new scsi-generic abstraction, use SG_IO (Christoph Hellwig)

Okay, I started looking into how to handle scsi-generic I/O in the
new world order.

I think the best is to use the SG_IO ioctl instead of the read/write
interface as that allows us to support scsi passthrough on disk/cdrom...

7d780669 03/12/2009 09:57 pm aliguori

Add specialized block driver scsi generic API (Avi Kivity)

When a scsi device is backed by a scsi generic device instead of an
ordinary host block device, the block API is abused in a couple of annoying
ways:

- nb_sectors is negative, and specifies a byte count instead of a sector count...
89c0f643 10/17/2008 11:08 am aurel32

scsi-generic: correct error management

this patch allows to fully use a tape device connected to qemu through
the scsi-generic interface.

Previous patch introduced tape SCSI commands management, this one
improve error case management:

- the SCSI controller command completion must be called with the status...

a9dd6843 09/23/2008 04:38 pm aliguori

scsi-generic: decode correctly SCSI tape commands (Laurent Vivier)

This patch allows to use a "real" SCSI tape with qemu using
"-drive /dev/sgX,if=scsi".

It allows to decode correctly transfer length when the type of the
device is a tape.

Some issues remain when the application reading the tape tries to go...

72ecb8d9 09/22/2008 06:30 pm aliguori

scsi-generic: correct 6-bytes commands transfer length (Laurent Vivier)

According to SCSI documentation, for 6 bytes commands (READ,
WRITE), if transfer length is 0 it specifies 256 blocks.

Signed-off-by: Laurent Vivier <>
Signed-off-by: Anthony Liguori <>...

4f26a486 09/22/2008 06:27 pm aliguori

scsi-generic: correct usage of memset() (Laurent Vivier)

void *memset(void *s, int c, size_t n);

DESCRIPTION
The memset() function fills the first n bytes of the
memory area
pointed to by s with the constant byte c."

Reported by Dietmar Maurer....

37e828b4 09/02/2008 03:08 am aurel32

suppress a couple of spurious warnings in scsi-generic.c

This patch fixes two spurious `may be used uninitialised' warnings
when compiling with some compilers.

Signed-off-by: Andre Przywara <>
Signed-off-by: Ian Jackson <>...

2cc977e2 12/24/2007 06:11 pm ths

scsi-generic implemnentation, missing in last commit.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3852 c046a42c-6fe2-441c-8c8c-71466251a162