Skip to content

ide: Use ide_cmd_table function pointers for command execution

Kevin Wolf qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest17 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/17ide: Add handler to ide_cmd_tablehw/ide/core.c+86 -581 reply
2/17ide: Convert WIN_DSM to ide_cmd_table handlerhw/ide/core.c+16 -130 replies
3/17ide: Convert WIN_IDENTIFY to ide_cmd_table handlerhw/ide/core.c+23 -170 replies
4/17ide: Convert cmd_nop commands to ide_cmd_table handlerhw/ide/core.c+17 -310 replies
5/17ide: Convert verify commands to ide_cmd_table handlerhw/ide/core.c+13 -140 replies
6/17ide: Convert read/write multiple commands to ide_cmd_table handlerhw/ide/core.c+60 -590 replies
7/17ide: Convert PIO read/write commands to ide_cmd_table handlerhw/ide/core.c+50 -430 replies
8/17ide: Convert DMA read/write commands to ide_cmd_table handlerhw/ide/core.c+38 -310 replies
9/17ide: Convert READ NATIVE MAX ADDRESS to ide_cmd_table handlerhw/ide/core.c+18 -170 replies
10/17ide: Convert CHECK POWER MDOE to ide_cmd_table handlerhw/ide/core.c+8 -90 replies
11/17ide: Convert SET FEATURES to ide_cmd_table handlerhw/ide/core.c+75 -720 replies
12/17ide: Convert FLUSH CACHE to ide_cmd_table handlerhw/ide/core.c+8 -60 replies
13/17ide: Convert SEEK to ide_cmd_table handlerhw/ide/core.c+7 -60 replies
14/17ide: Convert ATAPI commands to ide_cmd_table handlerhw/ide/core.c+61 -390 replies
15/17ide: Convert CF-ATA commands to ide_cmd_table handlerhw/ide/core.c+95 -750 replies
16/17ide: Convert SMART commands to ide_cmd_table handlerhw/ide/core.c+174 -1510 replies
17/17ide: Clean up ide_exec_cmd()hw/ide/core.c+12 -240 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH 00/17] ide: Use ide_cmd_table function pointers for command execution

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(-)
Signature · 1 line
1.8.1.4