mirror of
https://github.com/ipxe/ipxe
synced 2025-12-19 11:00:27 +03:00
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:
@@ -274,14 +274,17 @@ void aoe_close ( struct aoe_session *aoe ) {
|
||||
*
|
||||
* @v aoe AoE session
|
||||
* @v command ATA command
|
||||
* @ret aop Asynchronous operation
|
||||
*
|
||||
* Only one command may be issued concurrently per session. This call
|
||||
* is non-blocking; use async_wait() to wait for the command to
|
||||
* complete.
|
||||
*/
|
||||
void aoe_issue ( struct aoe_session *aoe, struct ata_command *command ) {
|
||||
struct async_operation * aoe_issue ( struct aoe_session *aoe,
|
||||
struct ata_command *command ) {
|
||||
aoe->command = command;
|
||||
aoe->status = 0;
|
||||
aoe->command_offset = 0;
|
||||
aoe_send_command ( aoe );
|
||||
return &aoe->aop;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user