Commit Graph

4698 Commits

Author SHA1 Message Date
Kevin Wolf
7a2c4b8234 ide/atapi: Introduce CHECK_READY flag for commands
Some commands are supposed to report a Not Ready Condition (i.e. they require
a medium to be present in order to execute successfully). Instead of
duplicating the check in each command implementation, let's add a flag and
check it before calling the command.

This patch only converts existing checks, it does not introduce new checks for
any of the other commands that can/should report a Not Ready Condition.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2011-04-27 16:21:00 +02:00
Kevin Wolf
e119bcaceb ide/atapi: Replace bdrv_get_geometry calls by s->nb_sectors
The disk size can only change when the medium is changed, and the change
callback takes care of updating s->nb_sectors in this case.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2011-04-27 16:20:59 +02:00
Kevin Wolf
e1a064f982 ide/atapi: Use table instead of switch for commands
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2011-04-27 16:20:59 +02:00
Kevin Wolf
a60cf7e7eb ide/atapi: Factor commands out
In preparation for a table of function pointers, factor each command out from
ide_atapi_cmd() into its own function.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2011-04-27 16:20:59 +02:00
Kevin Wolf
33231e0e22 ide: Split atapi.c out
Besides moving code, this patch only fixes some whitespace issues in the moved
code and makes all functions in atapi.c static which can be static.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2011-04-27 16:20:27 +02:00
Amit Shah
4b9b7092b4 atapi: Add 'medium ready' to 'medium not ready' transition on cd change
MMC-5 Table F.1 lists errors that can be thrown for the TEST_UNIT_READY
command.  Going from medium not ready to medium ready states is
communicated by throwing an error.

This adds the missing 'tray opened' event that we fail to report to
guests.  After doing this, older Linux guests properly revalidate a disc
on the change command.  HSM violation errors, which caused Linux guests
to do a soft-reset of the link, also go away:

ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
sr 1:0:0:0: CDB: Test Unit Ready: 00 00 00 00 00 00
ata2.00: cmd a0/00:00:00:00:00/00:00:00:00:00/a0 tag 0
         res 01/60:00:00:00:00/00:00:00:00:00/a0 Emask 0x3 (HSM violation)
ata2.00: status: { ERR }
ata2: soft resetting link
ata2.00: configured for MWDMA2
ata2: EH complete

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Acked-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Tested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2011-04-27 14:36:57 +02:00
Stefan Hajnoczi
b4548fcc03 trace: Remove %s in grlib trace events
Trace events cannot use %s in their format strings because trace
backends vary in how they can deference pointers (if at all).  Recording
const char * values is not meaningful if their contents are not recorded
too.

Change grlib trace events that rely on strings so that they communicate
similar information without using strings.

A follow-up patch explains this limitation and updates docs/tracing.txt.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2011-04-26 13:14:49 +01:00
Benjamin Poirier
ec48c7747a rtl8139: add format attribute to DPRINTF
gcc can check the format string for correctness even when debugging output is
not enabled.
Have to make sure arguments are always available. They are optimized out if
unneeded.

Signed-off-by: Benjamin Poirier <benjamin.poirier@gmail.com>
Cc: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2011-04-25 22:17:56 +02:00
Benjamin Poirier
7cdeb319e4 rtl8139: use variadic macro for debug statements
Removes double (( )) to make DEBUG_PRINT compatible with real function calls.
Change the name to DPRINTF to be consistent with other DPRINTF macros
throughout qemu.
Include the "RTL8139: " prefix in the macro. This changes some debug output
slightly since the prefix wasn't present on all lines.

Part of the change was done using the "coccinelle" tool with the following
small semantic match:
    @@ expression E; @@

    - DEBUG_PRINT((E))
    + DPRINTF(E)

Signed-off-by: Benjamin Poirier <benjamin.poirier@gmail.com>
Cc: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2011-04-25 22:17:52 +02:00
Benjamin Poirier
afcd9c0dcd rtl8139: use TARGET_FMT_plx in debug messages
Prevents a compilation failure when DEBUG_RTL8139 is defined:

CC    libhw32/rtl8139.o
cc1: warnings being treated as errors
hw/rtl8139.c: In function ‘rtl8139_cplus_transmit_one’:
hw/rtl8139.c:1960: error: format ‘%8lx’ expects type ‘long unsigned int’, but argument 5 has type ‘target_phys_addr_t’
make[1]: *** [rtl8139.o] Error 1

Signed-off-by: Benjamin Poirier <benjamin.poirier@gmail.com>
Cc: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2011-04-25 22:17:47 +02:00
Anthony Liguori
dbf352ad6e Merge remote-tracking branch 'awilliam/ipxe' into staging 2011-04-25 10:26:10 -05:00
Juan Quintela
da26fdc314 vmstate: port mac_dbdma
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
c20df14b13 mac_dbdma: create DBDMAState instead of passing one array around
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
9039d78e64 vmstate: port piix4
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
1fc7cee0b4 piix4: create PIIX4State
It only contains a PCIDevice by know, but it makes easy to use migration code

Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
8e470f8a77 vmstate: port mac_nvram
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
8a11f43bd5 mac_nvram: size is a size, no need to be a target dependent type
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
7b9a3d86c1 vmstate: port nand
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
51db57f7e8 nand: pin values are uint8_t
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
38cb3aa9b4 vmstate: port max111x
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
54d970d134 max111x: input field is only used as uint8_t
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
99838363ba vmstate: port pxa2xx_lcd
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
469954090f pxa2xx_lcd: up field is used as a bool and migrated as an uint8_t
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
2b7251e0f2 pxa2xx_lcd: name anonymous struct
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:43 -05:00
Juan Quintela
dd8a4dcda4 vmstate: stellaris use unused for placeholder entries
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:42 -05:00
Juan Quintela
4483c7ac31 vmstate: port stellaris gamepad
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:42 -05:00
Juan Quintela
0c067bbb26 vmstate: port syborg_keyboard
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:42 -05:00
Juan Quintela
8dc5907090 vmstate: port syborg_serial
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:42 -05:00
Juan Quintela
cf1d31dc5c vmstate: port stellaris_adc
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:42 -05:00
Juan Quintela
80a526802c vmstate: port syborg_pointer
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:42 -05:00
Juan Quintela
b605f22212 vmstate: port ppc4xx_pci
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:42 -05:00
Juan Quintela
e0433ecc6e vmstate: port ppce500_pci
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
f0ab24ce69 vmstate: port pxa2xx_pm
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
d102d49545 vmstate: port pxa2xx_mm
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
ae1f90de06 vmstate: port pxa2xx_cm
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
9f5dfe298b vmstate: port pxa2xx_i2s
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
10f85a2934 vmstate: port stellaris gptm
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
c0a93a9efa vmstate: port cuda
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
4acd38cef0 vmstate: port heathrow_pic
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
075790c2c2 vmstate: port pl022 ssp
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
293c16aa37 vmstate: port stellaris sys
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
a4dec1d0d4 vmstate: port stellaris ssi bus
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
ff269cd041 vmstate: port stellaris i2c
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
0797226c56 vmstate: port armv7m nvic
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
02b6875795 vmstate: port pl011
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:41 -05:00
Juan Quintela
25f5a1b7df vmstate: port pxa2xx_keypad
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:40 -05:00
Juan Quintela
4ba673ce62 vmstate: port syborg_rtc
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:40 -05:00
Juan Quintela
852f771ec9 vmstate: port pmtimer
It was a half conversion.  Finish it.
enabled can only get values of 0, 1 or 2, was declared as an int but
sent as an unint8_t, change its type.

Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:40 -05:00
Juan Quintela
22a3faf507 vmstate: port sysborg_timer
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:40 -05:00
Juan Quintela
eecd33a578 vmstate: port arm_timer
Signed-off-by: Juan Quintela <quintela@redhat.com>
2011-04-22 14:41:40 -05:00