[edk2-devel] [PATCH 2/2] EmulatorPkg: Record Argc, Argv and Envp in EmuThunk Ppi

Zhiguang Liu zhiguang.liu at intel.com
Tue Dec 6 05:41:36 UTC 2022


Record Argc, Argv and Envp in EmuThunk Ppi so that other modules
can use these fields to change behavior depends on boot parameters
or environment.

Cc: Andrew Fish <afish at apple.com>
Cc: Ray Ni <ray.ni at intel.com>
Signed-off-by: Zhiguang Liu <zhiguang.liu at intel.com>
---
 EmulatorPkg/Include/Ppi/EmuThunk.h | 3 +++
 EmulatorPkg/Unix/Host/Host.c       | 3 +++
 EmulatorPkg/Win/Host/WinHost.c     | 3 +++
 3 files changed, 9 insertions(+)

diff --git a/EmulatorPkg/Include/Ppi/EmuThunk.h b/EmulatorPkg/Include/Ppi/EmuThunk.h
index cf29cf824c..c78ad692ed 100644
--- a/EmulatorPkg/Include/Ppi/EmuThunk.h
+++ b/EmulatorPkg/Include/Ppi/EmuThunk.h
@@ -107,6 +107,9 @@ typedef struct {
   EMU_PEI_AUTOSCAN           MemoryAutoScan;
   EMU_PEI_FD_INFORMATION     FirmwareDevices;
   EMU_PEI_THUNK_INTERFACE    Thunk;
+  INTN                       Argc;
+  CHAR8                      **Argv;
+  CHAR8                      **Envp;
   UINTN                      PersistentMemorySize;
   UINT8                      PersistentMemory[0];
 } EMU_THUNK_PPI;
diff --git a/EmulatorPkg/Unix/Host/Host.c b/EmulatorPkg/Unix/Host/Host.c
index 8d0be5b54b..1f29dd00a3 100644
--- a/EmulatorPkg/Unix/Host/Host.c
+++ b/EmulatorPkg/Unix/Host/Host.c
@@ -145,6 +145,9 @@ main (
   }
 
   CopyMem (SecEmuThunkPpi, &mSecEmuThunkPpi, sizeof (EMU_THUNK_PPI));
+  SecEmuThunkPpi->Argc                 = Argc;
+  SecEmuThunkPpi->Argv                 = Argv;
+  SecEmuThunkPpi->Envp                 = Envp;
   SecEmuThunkPpi->PersistentMemorySize = FixedPcdGet32 (PcdPersistentMemorySize);
   AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEmuThunkPpiGuid, SecEmuThunkPpi);
 
diff --git a/EmulatorPkg/Win/Host/WinHost.c b/EmulatorPkg/Win/Host/WinHost.c
index 3b2fde297d..f639ba3b1b 100644
--- a/EmulatorPkg/Win/Host/WinHost.c
+++ b/EmulatorPkg/Win/Host/WinHost.c
@@ -485,6 +485,9 @@ Returns:
   }
 
   CopyMem (SecEmuThunkPpi, &mSecEmuThunkPpi, sizeof (EMU_THUNK_PPI));
+  SecEmuThunkPpi->Argc                 = Argc;
+  SecEmuThunkPpi->Argv                 = Argv;
+  SecEmuThunkPpi->Envp                 = Envp;
   SecEmuThunkPpi->PersistentMemorySize = FixedPcdGet32 (PcdPersistentMemorySize);
   AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEmuThunkPpiGuid, SecEmuThunkPpi);
   AddThunkPpi (EFI_PEI_PPI_DESCRIPTOR_PPI, &gEfiPeiReset2PpiGuid, &mEmuReset2Ppi);
-- 
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#97010): https://edk2.groups.io/g/devel/message/97010
Mute This Topic: https://groups.io/mt/95488053/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list