summaryrefslogtreecommitdiff
path: root/Nt32Pkg/Sec
diff options
context:
space:
mode:
Diffstat (limited to 'Nt32Pkg/Sec')
-rw-r--r--Nt32Pkg/Sec/SecMain.c62
-rw-r--r--Nt32Pkg/Sec/SecMain.h1
2 files changed, 45 insertions, 18 deletions
diff --git a/Nt32Pkg/Sec/SecMain.c b/Nt32Pkg/Sec/SecMain.c
index 8e638e04da..f1cf33910c 100644
--- a/Nt32Pkg/Sec/SecMain.c
+++ b/Nt32Pkg/Sec/SecMain.c
@@ -106,6 +106,32 @@ EFI_STATUS
SecNt32PeCoffRelocateImage (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
);
+
+VOID
+SecPrint (
+ CHAR8 *Format,
+ ...
+ )
+{
+ va_list Marker;
+ UINTN CharCount;
+ CHAR8 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE];
+
+ va_start (Marker, Format);
+
+// vsprintf (Buffer, Format, Marker);
+ _vsnprintf (Buffer, sizeof (Buffer), Format, Marker);
+
+ CharCount = strlen (Buffer);
+ WriteFile (
+ GetStdHandle (STD_OUTPUT_HANDLE),
+ Buffer,
+ CharCount,
+ (LPDWORD)&CharCount,
+ NULL
+ );
+}
+
INTN
EFIAPI
main (
@@ -146,7 +172,7 @@ Returns:
MemorySizeStr = (CHAR16 *) FixedPcdGetPtr (PcdWinNtMemorySizeForSecMain);
FirmwareVolumesStr = (CHAR16 *) FixedPcdGetPtr (PcdWinNtFirmwareVolume);
- printf ("\nEDK SEC Main NT Emulation Environment from www.TianoCore.org\n");
+ SecPrint ("\nEDK II SEC Main NT Emulation Environment from www.TianoCore.org\n");
//
// Make some Windows calls to Set the process to the highest priority in the
@@ -161,7 +187,7 @@ Returns:
gSystemMemoryCount = CountSeperatorsInString (MemorySizeStr, '!') + 1;
gSystemMemory = calloc (gSystemMemoryCount, sizeof (NT_SYSTEM_MEMORY));
if (gSystemMemory == NULL) {
- wprintf (L"ERROR : Can not allocate memory for %s. Exiting.\n", MemorySizeStr);
+ SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n", MemorySizeStr);
exit (1);
}
//
@@ -170,13 +196,13 @@ Returns:
gFdInfoCount = CountSeperatorsInString (FirmwareVolumesStr, '!') + 1;
gFdInfo = calloc (gFdInfoCount, sizeof (NT_FD_INFO));
if (gFdInfo == NULL) {
- wprintf (L"ERROR : Can not allocate memory for %s. Exiting.\n", FirmwareVolumesStr);
+ SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n", FirmwareVolumesStr);
exit (1);
}
//
// Setup Boot Mode. If BootModeStr == "" then BootMode = 0 (BOOT_WITH_FULL_CONFIGURATION)
//
- printf (" BootMode 0x%02x\n", FixedPcdGet32 (PcdWinNtBootMode));
+ SecPrint (" BootMode 0x%02x\n", FixedPcdGet32 (PcdWinNtBootMode));
//
// Allocate 128K memory to emulate temp memory for PEI.
@@ -186,7 +212,7 @@ Returns:
InitialStackMemorySize = STACK_SIZE;
InitialStackMemory = (EFI_PHYSICAL_ADDRESS) (UINTN) VirtualAlloc (NULL, (SIZE_T) (InitialStackMemorySize), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (InitialStackMemory == 0) {
- printf ("ERROR : Can not allocate enough space for SecStack\n");
+ SecPrint ("ERROR : Can not allocate enough space for SecStack\n");
exit (1);
}
@@ -196,14 +222,14 @@ Returns:
*StackPointer = 0x5AA55AA5;
}
- wprintf (L" SEC passing in %d bytes of temp RAM to PEI\n", InitialStackMemorySize);
+ SecPrint (" SEC passing in %d bytes of temp RAM to PEI\n", InitialStackMemorySize);
//
// Open All the firmware volumes and remember the info in the gFdInfo global
//
FileNamePtr = (CHAR16 *)malloc (StrLen ((CHAR16 *)FirmwareVolumesStr) * sizeof(CHAR16));
if (FileNamePtr == NULL) {
- printf ("ERROR : Can not allocate memory for firmware volume string\n");
+ SecPrint ("ERROR : Can not allocate memory for firmware volume string\n");
exit (1);
}
@@ -231,17 +257,17 @@ Returns:
&gFdInfo[Index].Size
);
if (EFI_ERROR (Status)) {
- printf ("ERROR : Can not open Firmware Device File %S (0x%X). Exiting.\n", FileName, Status);
+ SecPrint ("ERROR : Can not open Firmware Device File %S (0x%X). Exiting.\n", FileName, Status);
exit (1);
}
- printf (" FD loaded from");
+ SecPrint (" FD loaded from");
//
// printf can't print filenames directly as the \ gets interperted as an
// escape character.
//
for (Index2 = 0; FileName[Index2] != '\0'; Index2++) {
- printf ("%c", FileName[Index2]);
+ SecPrint ("%c", FileName[Index2]);
}
if (PeiCoreFile == NULL) {
@@ -251,11 +277,11 @@ Returns:
//
Status = SecFfsFindPeiCore ((EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) gFdInfo[Index].Address, &PeiCoreFile);
if (!EFI_ERROR (Status)) {
- printf (" contains SEC Core");
+ SecPrint (" contains SEC Core");
}
}
- printf ("\n");
+ SecPrint ("\n");
}
//
// Calculate memory regions and store the information in the gSystemMemory
@@ -280,7 +306,7 @@ Returns:
MemorySizeStr = MemorySizeStr + Index1 + 1;
}
- printf ("\n");
+ SecPrint ("\n");
//
// Hand off to PEI Core
@@ -291,7 +317,7 @@ Returns:
// If we get here, then the PEI Core returned. This is an error as PEI should
// always hand off to DXE.
//
- printf ("ERROR : PEI Core returned\n");
+ SecPrint ("ERROR : PEI Core returned\n");
exit (1);
}
@@ -451,14 +477,14 @@ Returns:
//
// Processes ASSERT ()
//
- printf ("ASSERT %s(%d): %s\n", Filename, (int)LineNumber, Description);
+ SecPrint ("ASSERT %s(%d): %s\n", Filename, (int)LineNumber, Description);
} else if (ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
//
// Process DEBUG () macro
//
AsciiBSPrint (PrintBuffer, BYTES_PER_RECORD, Format, Marker);
- printf (PrintBuffer);
+ SecPrint (PrintBuffer);
}
return EFI_SUCCESS;
@@ -995,9 +1021,9 @@ SecNt32PeCoffRelocateImage (
if ((Library != NULL) && (DllEntryPoint != NULL)) {
ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS) (UINTN) DllEntryPoint;
- wprintf (L"LoadLibraryEx (%s,\n NULL, DONT_RESOLVE_DLL_REFERENCES)\n", DllFileName);
+ SecPrint ("LoadLibraryEx (%S,\n NULL, DONT_RESOLVE_DLL_REFERENCES)\n", DllFileName);
} else {
- wprintf (L"WARNING: No source level debug %s. \n", DllFileName);
+ SecPrint ("WARNING: No source level debug %S. \n", DllFileName);
}
free (DllFileName);
diff --git a/Nt32Pkg/Sec/SecMain.h b/Nt32Pkg/Sec/SecMain.h
index f2db1aa22e..a94f1c111e 100644
--- a/Nt32Pkg/Sec/SecMain.h
+++ b/Nt32Pkg/Sec/SecMain.h
@@ -39,6 +39,7 @@ Abstract:
#include <IndustryStandard/PeImage.h>
+#define EFI_STATUS_CODE_DATA_MAX_SIZE 200
#define STACK_SIZE 0x20000