summaryrefslogtreecommitdiffstats
path: root/EmulatorPkg/EmuBlockIoDxe/EmuBlockIo.c
diff options
context:
space:
mode:
Diffstat (limited to 'EmulatorPkg/EmuBlockIoDxe/EmuBlockIo.c')
-rw-r--r--EmulatorPkg/EmuBlockIoDxe/EmuBlockIo.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/EmulatorPkg/EmuBlockIoDxe/EmuBlockIo.c b/EmulatorPkg/EmuBlockIoDxe/EmuBlockIo.c
index 4e8caf2514..685824b79b 100644
--- a/EmulatorPkg/EmuBlockIoDxe/EmuBlockIo.c
+++ b/EmulatorPkg/EmuBlockIoDxe/EmuBlockIo.c
@@ -96,6 +96,11 @@ EmuBlockIo2ReadBlocksEx (
Status = Private->Io->ReadBlocks (Private->Io, MediaId, LBA, Token, BufferSize, Buffer);
gBS->RestoreTPL (OldTpl);
+
+ if (Token && Token->Event && !EFI_ERROR (Status)) {
+ gBS->SignalEvent (Token->Event);
+ }
+
return Status;
}
@@ -152,6 +157,11 @@ EmuBlockIo2WriteBlocksEx (
Status = Private->Io->WriteBlocks (Private->Io, MediaId, LBA, Token, BufferSize, Buffer);
gBS->RestoreTPL (OldTpl);
+
+ if (Token && Token->Event && !EFI_ERROR (Status)) {
+ gBS->SignalEvent (Token->Event);
+ }
+
return Status;
}
@@ -195,6 +205,11 @@ EmuBlockIo2Flush (
Status = Private->Io->FlushBlocks (Private->Io, Token);
gBS->RestoreTPL (OldTpl);
+
+ if (Token && Token->Event && !EFI_ERROR (Status)) {
+ gBS->SignalEvent (Token->Event);
+ }
+
return Status;
}