summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown2006-05-31 20:57:11 +0200
committerMichael Brown2006-05-31 20:57:11 +0200
commit99ef98d0bffdb9b8c67ad3892d533d33221529f0 (patch)
tree2a7b65c59a856fc57031cf0a23881340b0d21ce5 /src/include
parentMissing from previous checkin. (diff)
downloadipxe-99ef98d0bffdb9b8c67ad3892d533d33221529f0.tar.gz
ipxe-99ef98d0bffdb9b8c67ad3892d533d33221529f0.tar.xz
ipxe-99ef98d0bffdb9b8c67ad3892d533d33221529f0.zip
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).
Diffstat (limited to 'src/include')
-rw-r--r--src/include/gpxe/aoe.h3
-rw-r--r--src/include/gpxe/ata.h8
2 files changed, 7 insertions, 4 deletions
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 );