/**@file | |
Copyright (c) 2006 - 2022, Intel Corporation. All rights reserved.<BR> | |
(C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
Module Name: | |
WinHost.h | |
Abstract: | |
Include file for Windows Host | |
**/ | |
#ifndef _HOST_H_ | |
#define _HOST_H_ | |
#include <stdio.h> | |
#include <time.h> | |
#include "WinInclude.h" | |
#include <PiPei.h> | |
#include <IndustryStandard/PeImage.h> | |
#include <Guid/FileInfo.h> | |
#include <Guid/FileSystemInfo.h> | |
#include <Guid/FileSystemVolumeLabelInfo.h> | |
#include <Ppi/EmuThunk.h> | |
#include <Ppi/Reset2.h> | |
#include <Protocol/EmuThunk.h> | |
#include <Protocol/SimpleFileSystem.h> | |
#include <Protocol/EmuBlockIo.h> | |
#include <Protocol/BlockIo.h> | |
#include <Protocol/EmuSnp.h> | |
#include <Library/BaseLib.h> | |
#include <Library/PeCoffLib.h> | |
#include <Library/DebugLib.h> | |
#include <Library/MemoryAllocationLib.h> | |
#include <Library/ThunkPpiList.h> | |
#include <Library/ThunkProtocolList.h> | |
#include <Library/PcdLib.h> | |
#include <Library/PrintLib.h> | |
#include <Library/BaseMemoryLib.h> | |
#include <Library/PeiServicesLib.h> | |
#include <Library/PeCoffExtraActionLib.h> | |
#include <Library/NetLib.h> | |
#define TEMPORARY_RAM_SIZE 0x20000 | |
typedef struct { | |
VOID *Address; | |
UINTN Size; | |
} NT_FD_INFO; | |
typedef struct { | |
EFI_PHYSICAL_ADDRESS Memory; | |
UINT64 Size; | |
} NT_SYSTEM_MEMORY; | |
RETURN_STATUS | |
EFIAPI | |
SecPeCoffGetEntryPoint ( | |
IN VOID *Pe32Data, | |
IN OUT VOID **EntryPoint | |
); | |
VOID | |
SecLoadSecCore ( | |
IN UINTN TemporaryRam, | |
IN UINTN TemporaryRamSize, | |
IN VOID *BootFirmwareVolumeBase, | |
IN UINTN BootFirmwareVolumeSize, | |
IN VOID *SecCorePe32File | |
) | |
/*++ | |
Routine Description: | |
This is the service to load the SEC Core from the Firmware Volume | |
Arguments: | |
TemporaryRam - Memory to use for SEC. | |
TemporaryRamSize - Size of Memory to use for SEC | |
BootFirmwareVolumeBase - Start of the Boot FV | |
SecCorePe32File - SEC Core PE32 | |
Returns: | |
Success means control is transferred and thus we should never return | |
--*/ | |
; | |
EFI_STATUS | |
EFIAPI | |
SecWinNtFdAddress ( | |
IN UINTN Index, | |
IN OUT EFI_PHYSICAL_ADDRESS *FdBase, | |
IN OUT UINT64 *FdSize | |
) | |
/*++ | |
Routine Description: | |
TODO: Add function description | |
Arguments: | |
Index - TODO: add argument description | |
FdBase - TODO: add argument description | |
FdSize - TODO: add argument description | |
Returns: | |
TODO: add return values | |
--*/ | |
; | |
EFI_STATUS | |
EFIAPI | |
SecImageRead ( | |
IN VOID *FileHandle, | |
IN UINTN FileOffset, | |
IN OUT UINTN *ReadSize, | |
OUT VOID *Buffer | |
) | |
/*++ | |
Routine Description: | |
TODO: Add function description | |
Arguments: | |
FileHandle - TODO: add argument description | |
FileOffset - TODO: add argument description | |
ReadSize - TODO: add argument description | |
Buffer - TODO: add argument description | |
Returns: | |
TODO: add return values | |
--*/ | |
; | |
CHAR16 * | |
AsciiToUnicode ( | |
IN CHAR8 *Ascii, | |
IN UINTN *StrLen OPTIONAL | |
) | |
/*++ | |
Routine Description: | |
TODO: Add function description | |
Arguments: | |
Ascii - TODO: add argument description | |
StrLen - TODO: add argument description | |
Returns: | |
TODO: add return values | |
--*/ | |
; | |
UINTN | |
CountSeparatorsInString ( | |
IN CONST CHAR16 *String, | |
IN CHAR16 Separator | |
) | |
/*++ | |
Routine Description: | |
TODO: Add function description | |
Arguments: | |
String - TODO: add argument description | |
Separator - TODO: add argument description | |
Returns: | |
TODO: add return values | |
--*/ | |
; | |
BOOLEAN | |
EfiSystemMemoryRange ( | |
IN VOID *MemoryAddress | |
); | |
VOID | |
SecInitializeThunk ( | |
VOID | |
); | |
extern EMU_THUNK_PROTOCOL gEmuThunkProtocol; | |
extern EMU_IO_THUNK_PROTOCOL mWinNtWndThunkIo; | |
extern EMU_IO_THUNK_PROTOCOL mWinNtFileSystemThunkIo; | |
extern EMU_IO_THUNK_PROTOCOL mWinNtBlockIoThunkIo; | |
extern EMU_IO_THUNK_PROTOCOL mWinNtSnpThunkIo; | |
#endif |