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).
This commit is contained in:
Michael Brown
2006-05-31 18:57:11 +00:00
parent cf96d325d8
commit 99ef98d0bf
5 changed files with 17 additions and 11 deletions

View File

@@ -20,6 +20,7 @@
#include <string.h>
#include <assert.h>
#include <byteswap.h>
#include <gpxe/async.h>
#include <gpxe/blockdev.h>
#include <gpxe/ata.h>
@@ -48,7 +49,7 @@ ata_command ( struct ata_device *ata, struct ata_command *command ) {
( unsigned long long ) command->cb.lba.native,
command->cb.count.native );
return ata->command ( ata, command );
return async_wait ( ata->command ( ata, command ) );
}
/**