Statistics
| Branch: | Revision:

root / hw / ide / core.c @ cd8722bb

History | View | Annotate | Download (87.1 kB)

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

ide: Replace IDEState members is_cdrom, is_cf by drive_kind

The two aren't independent variables. Make that obvious.

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

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...

abd7f68d 06/15/2010 10:41 am Markus Armbruster

block: Move error actions from DriveInfo to BlockDriverState

That's where they belong semantically (block device host part), even
though the actions are actually executed by guest device code.

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

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 <>

57dac7ef 06/04/2010 12:43 pm Markus Armbruster

ide: Remove redundant IDEState member conf

Commit 428c149b added IDEState member conf to let commit 0009baf1 find
the BlockConf from there. It exists only for qdev drives, created via
ide_drive_initfn(), not for drives created via ide_init2().

But for a qdev drive, we can just as well reach its IDEDevice, which...

d459da0e 06/04/2010 12:43 pm Markus Armbruster

ide: Split ide_init1() off ide_init2()

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

870111c8 06/04/2010 12:43 pm Markus Armbruster

ide: Change ide_init_drive() to require valid dinfo argument

IDEState members drive_serial_str and version are now left empty until
an actual drive is connected. Before, they got a default value that
was overwritten when a drive got connected. Doesn't matter, because...

57234ee4 06/04/2010 12:43 pm Markus Armbruster

ide: Split non-qdev code off ide_init2()

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

6ced55a5 06/04/2010 12:43 pm Markus Armbruster

ide: Turn drive serial into a qdev property ide-drive.serial

It needs to be a qdev property, because it belongs to the drive's
guest part.

Bonus: info qtree now shows the serial number.

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

38d8dfa1 05/17/2010 11:20 am Kevin Wolf

ide: Fix ide_dma_cancel

When cancelling a request, bdrv_aio_cancel may decide that it waits for
completion of a request rather than for cancellation. IDE therefore can't
abandon its DMA status before calling bdrv_aio_cancel; otherwise the callback
of a completed request would use invalid data....

117e1e82 05/14/2010 10:32 pm Blue Swirl

ide: make a table 'const'

Signed-off-by: Blue Swirl <>

6450a334 03/27/2010 08:58 am Blue Swirl

Fix build

Actually some systems don't define PAGE_SIZE. Fixes build breakage
by f7736b91c40a617e93505e32dcbd2cb56aad8a23.

Signed-off-by: Blue Swirl <>

f7736b91 03/27/2010 08:20 am Blue Swirl

Compile ide/core only once

Make win2k install hack unconditional as it is still restricted to
x86 only in vl.c.

Replace TARGET_PAGE_SIZE and 4096 with PAGE_SIZE.

Signed-off-by: Blue Swirl <>

554a310b 03/08/2010 07:30 pm Luiz Capitulino

block: Emit BLOCK_IO_ERROR before vm_stop() call

The next commit will move the STOP event into do_vm_stop(), to
have the expected event sequence we need to emit the I/O error
event before calling vm_stop().

The expected sequence is:

{ "event": "BLOCK_IO_ERROR" [...] }...

4fc8d671 02/20/2010 10:29 am Blue Swirl

Fix warning on mingw32

/src/qemu/hw/ide/core.c: In function 'ide_drive_pre_save':
/src/qemu/hw/ide/core.c:2740: warning: comparison is always false due to limited range of data type

Signed-off-by: Blue Swirl <>

ed487bb1 02/19/2010 11:33 pm Marcelo Tosatti

ide save/restore pio/atapi cmd transfer fields and io buffer

Save/restore information necessary to continue in progress PIO/ATAPI CMD
transfers.

This includes the IO buffer.

Signed-off-by: Marcelo Tosatti <>
Signed-off-by: Anthony Liguori <>

0009baf1 02/11/2010 12:53 am Christoph Hellwig

ide: add topology support

Export the physical block size in the ATA IDENTIFY command. The
other topology values are not supported in ATA so skip them.

Signed-off-by: Christoph Hellwig <>
Signed-off-by: Anthony Liguori <>

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,...
7ad7e3c3 02/10/2010 07:57 pm Luiz Capitulino

ide: Generate BLOCK_IO_ERROR QMP event

Just call bdrv_mon_event() in the right place.

Signed-off-by: Luiz Capitulino <>
Signed-off-by: Anthony Liguori <>

47c06340 01/20/2010 12:31 am Gerd Hoffmann

ide: device version property

This patch adds a new property named 'ver' to ide-drive which allows to
specify the version which the virtual disk/cdrom should report to the
guest. By default this is the qemu version (i.e. 0.12). usage:

-drive if=none,id=disk,file=......
a70089ce 12/03/2009 11:26 pm Thadeu Lima de Souza Cascardo

ide: Use some already defined page macros instead of constants

Some PAGE constants were used instead of the macros we already have
defined in internal.h.

Signed-off-by: Thadeu Lima de Souza Cascardo <>
Signed-off-by: Anthony Liguori <>

fe0d6123 12/03/2009 11:26 pm Thadeu Lima de Souza Cascardo

ide: implement stub for audio control/volume read

This implements the audio control or volume read support as needed by
some systems. A Conectiva Parolin system required this to detect an IDE
device as CD-ROM, through the CDVOLREAD ioctl.

Signed-off-by: Thadeu Lima de Souza Cascardo <>...

f7850099 12/03/2009 07:45 pm Kevin Wolf

Rename DriveInfo.onerror to on_write_error

Either rename variables and functions to refer to write errors (which is what
they actually do) or introduce a parameter to distinguish reads and writes.

Signed-off-by: Kevin Wolf <>
Signed-off-by: Anthony Liguori <>

ce4b6522 12/03/2009 07:45 pm Kevin Wolf

ide: Implement rerror option

Signed-off-by: Kevin Wolf <>
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 <>

4a643563 11/07/2009 04:13 pm Blue Swirl

IDE: Fix reset handling

Problem: x86 systems could not survive a few system_resets.

Clear most of IDE state when reset. Implement the missing reset handlers.

Signed-off-by: Blue Swirl <>

b3a7d328 10/27/2009 07:28 pm Juan Quintela

ide: pre VMState functions are not needed anymore

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

37159f13 10/27/2009 07:28 pm Juan Quintela

ide: port ide_drive to vmstate

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

6521dc62 10/27/2009 07:28 pm Juan Quintela

ide: port idebus to vmstate

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

96c35ceb 10/27/2009 07:28 pm Juan Quintela

ide: change identify_data type to uint8_t

It is used everywhere as uint8_t except in one place. Cast to uint16_t
in that place
Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

88804180 09/15/2009 10:23 pm Gerd Hoffmann

split away drive init from ide_init2()

This allows the ide bus being initialized without drives attached
and the drives being attached and initialization later on as
separate step.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Blue Swirl <>

6ee093c9 09/11/2009 06:19 pm Juan Quintela

Unexport ticks_per_sec variable. Create get_ticks_per_sec() function

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

e900a7b7 09/11/2009 06:19 pm Christoph Hellwig

block: add enable_write_cache flag

Add a enable_write_cache flag in the block driver state, and use it to
decide if we claim to have a volatile write cache that needs controlled
flushing from the guest. The flag is off if cache=writethrough is
defined because O_DSYNC guarantees that every write goes to stable...

b0484ae4 09/11/2009 06:19 pm Christoph Hellwig

ide: use bdrv_aio_flush

Signed-off-by: Christoph Hellwig <>
Signed-off-by: Anthony Liguori <>

f455e98c 09/04/2009 05:37 pm Gerd Hoffmann

ide: pass down DriveInfo instead of BlockDriverState

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

9cdd03a7 09/04/2009 05:37 pm Gerd Hoffmann

ide: move cmd+irq from IDEState to IDEBus.

These variables are per bus, not per drive. Lets move them and
cleanup things a bit. And fix the cmd migration bug for real.

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

59f2a787 08/28/2009 04:46 am Gerd Hoffmann

ide: move code to hw/ide/

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