From 99ef98d0bffdb9b8c67ad3892d533d33221529f0 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 31 May 2006 18:57:11 +0000 Subject: ATA devices are now asynchronous. The ATA layer itself now performs the async_wait(), though we may wish to move this higher up the stack, and consider making the block device model asynchronous. (There is only a marginal cost for synchronous devices, since they can simply call async_done() before returning; async_wait() will work seamlessly in this situation). --- src/include/gpxe/aoe.h | 3 ++- src/include/gpxe/ata.h | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src/include') diff --git a/src/include/gpxe/aoe.h b/src/include/gpxe/aoe.h index fb692224b..07aec037d 100644 --- a/src/include/gpxe/aoe.h +++ b/src/include/gpxe/aoe.h @@ -115,7 +115,8 @@ struct aoe_session { extern void aoe_open ( struct aoe_session *aoe ); extern void aoe_close ( struct aoe_session *aoe ); -extern void aoe_issue ( struct aoe_session *aoe, struct ata_command *command ); +extern struct async_operation * aoe_issue ( struct aoe_session *aoe, + struct ata_command *command ); /** An AoE device */ struct aoe_device { diff --git a/src/include/gpxe/ata.h b/src/include/gpxe/ata.h index e0fca7afe..7b348d822 100644 --- a/src/include/gpxe/ata.h +++ b/src/include/gpxe/ata.h @@ -11,6 +11,8 @@ * */ +struct async_operation; + /** * An ATA Logical Block Address * @@ -191,10 +193,10 @@ struct ata_device { * * @v ata ATA device * @v command ATA command - * @ret rc Return status code + * @ret aop Asynchronous operation */ - int ( * command ) ( struct ata_device *ata, - struct ata_command *command ); + struct async_operation * ( * command ) ( struct ata_device *ata, + struct ata_command *command ); }; extern int init_atadev ( struct ata_device *ata ); -- cgit v1.2.3-55-g7522