Backing out last change; no immediate plans to make the whole block-device
authorMichael Brown <mcb30@etherboot.org>
Thu, 1 Jun 2006 11:14:59 +0000 (11:14 +0000)
committerMichael Brown <mcb30@etherboot.org>
Thu, 1 Jun 2006 11:14:59 +0000 (11:14 +0000)
layer asynchronous, so keeping the sync/async boundary within aoedev.c
seems cleanest for now.

src/drivers/ata/aoedev.c
src/drivers/block/ata.c
src/include/gpxe/ata.h

index 4b4541f..9679fc1 100644 (file)
  *
  * @v ata              ATA device
  * @v command          ATA command
- * @ret aop            Asynchronous operation
+ * @ret rc             Return status code
  */
-static struct async_operation * aoe_command ( struct ata_device *ata,
-                                             struct ata_command *command ) {
+static int aoe_command ( struct ata_device *ata,
+                        struct ata_command *command ) {
        struct aoe_device *aoedev
                = container_of ( ata, struct aoe_device, ata );
 
-       return aoe_issue ( &aoedev->aoe, command );
+       aoe_issue ( &aoedev->aoe, command );
+       return async_wait ( &aoedev->aoe.aop );
 }
 
 /**
index d2d77ae..e0df367 100644 (file)
@@ -20,7 +20,6 @@
 #include <string.h>
 #include <assert.h>
 #include <byteswap.h>
-#include <gpxe/async.h>
 #include <gpxe/blockdev.h>
 #include <gpxe/ata.h>
 
@@ -49,7 +48,7 @@ ata_command ( struct ata_device *ata, struct ata_command *command ) {
              ( unsigned long long ) command->cb.lba.native,
              command->cb.count.native );
 
-       return async_wait ( ata->command ( ata, command ) );
+       return ata->command ( ata, command );   
 }
 
 /**
index 7b348d8..e0fca7a 100644 (file)
@@ -11,8 +11,6 @@
  *
  */
 
-struct async_operation;
-
 /**
  * An ATA Logical Block Address
  *
@@ -193,10 +191,10 @@ struct ata_device {
         *
         * @v ata               ATA device
         * @v command           ATA command
-        * @ret aop             Asynchronous operation
+        * @ret rc              Return status code
         */
-       struct async_operation * ( * command ) ( struct ata_device *ata,
-                                                struct ata_command *command );
+       int ( * command ) ( struct ata_device *ata,
+                           struct ata_command *command );
 };
 
 extern int init_atadev ( struct ata_device *ata );