On Tue, Jun 18, 2013 at 10:25:54AM +0200, Kevin Wolf wrote: > The ATAPI code has been using a table of callback functions for each > command for quite a while now, this series does the same for ATA > commands (which already got the table, but no function pointers, just > flags) > > The main advantage is that we get a more consistent behaviour of the > commands because we get a clear separation between things that are common > between all (or most) commands, like setting status register bits or > triggering > IRQs, and can be handled in one central place, and command specific code > that is refactored into its own function. In the past we've had bugs > from forgetting to do one of the common things, like setting the BSY > flag, which will be avoided with the new infrastructure. > > It's also a good opportunity to clean up some of the coding style > problems of the IDE code. > > Kevin Wolf (17): > ide: Add handler to ide_cmd_table > ide: Convert WIN_DSM to ide_cmd_table handler > ide: Convert WIN_IDENTIFY to ide_cmd_table handler > ide: Convert cmd_nop commands to ide_cmd_table handler > ide: Convert verify commands to ide_cmd_table handler > ide: Convert read/write multiple commands to ide_cmd_table handler > ide: Convert PIO read/write commands to ide_cmd_table handler > ide: Convert DMA read/write commands to ide_cmd_table handler > ide: Convert READ NATIVE MAX ADDRESS to ide_cmd_table handler > ide: Convert CHECK POWER MDOE to ide_cmd_table handler > ide: Convert SET FEATURES to ide_cmd_table handler > ide: Convert FLUSH CACHE to ide_cmd_table handler > ide: Convert SEEK to ide_cmd_table handler > ide: Convert ATAPI commands to ide_cmd_table handler > ide: Convert CF-ATA commands to ide_cmd_table handler > ide: Convert SMART commands to ide_cmd_table handler > ide: Clean up ide_exec_cmd() > > hw/ide/core.c | 1242 > +++++++++++++++++++++++++++++++-------------------------- > 1 file changed, 669 insertions(+), 573 deletions(-) > > -- > 1.8.1.4
Nice series! Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan