REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the EmulatorPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			361 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			361 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*++ @file
 | |
| 
 | |
| Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 | |
| Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
 | |
| 
 | |
| SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _SEC_MAIN_H__
 | |
| #define _SEC_MAIN_H__
 | |
| 
 | |
| //
 | |
| // Name mangle to prevent build errors. I.e conflicts between EFI and OS
 | |
| //
 | |
| #define NTOHL   _UNIX_EFI_NAME_MANGLE_NTOHL_
 | |
| #define NTOHLL  _UNIX_EFI_NAME_MANGLE_NTOHLL_
 | |
| #define HTONL   _UNIX_EFI_NAME_MANGLE_HTONL_
 | |
| #define HTONLL  _UNIX_EFI_NAME_MANGLE_HTONLL_
 | |
| #define NTOHS   _UNIX_EFI_NAME_MANGLE_NTOHS_
 | |
| #define HTONS   _UNIX_EFI_NAME_MANGLE_HTOHS_
 | |
| #define B0      _UNIX_EFI_NAME_MANGLE_B0_
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| 
 | |
| #include <sys/types.h>
 | |
| #include <sys/stat.h>
 | |
| #include <sys/termios.h>
 | |
| #include <sys/time.h>
 | |
| 
 | |
| #if __CYGWIN__
 | |
|   #include <sys/dirent.h>
 | |
| #else
 | |
|   #include <sys/dir.h>
 | |
| #endif
 | |
| 
 | |
| #include <sys/mman.h>
 | |
| #include <dlfcn.h>
 | |
| 
 | |
| #include <unistd.h>
 | |
| #include <poll.h>
 | |
| #include <fcntl.h>
 | |
| #include <time.h>
 | |
| #include <signal.h>
 | |
| #include <errno.h>
 | |
| #include <string.h>
 | |
| #include <stdlib.h>
 | |
| #include <sys/ioctl.h>
 | |
| #include <sys/statvfs.h>
 | |
| 
 | |
| #include <sys/socket.h>
 | |
| #include <netdb.h>
 | |
| #include <netinet/in.h>
 | |
| #include <net/if.h>
 | |
| #include <ifaddrs.h>
 | |
| 
 | |
| #ifdef __APPLE__
 | |
|   #include <net/if_dl.h>
 | |
|   #include <net/bpf.h>
 | |
|   #include <sys/param.h>
 | |
|   #include <sys/mount.h>
 | |
|   #include <sys/disk.h>
 | |
| #define _XOPEN_SOURCE
 | |
|   #ifndef _Bool
 | |
| #define _Bool  char  // for clang debug
 | |
|   #endif
 | |
| #else
 | |
|   #include <termio.h>
 | |
|   #include <sys/vfs.h>
 | |
|   #include <linux/fs.h>
 | |
| #endif
 | |
| 
 | |
| #include <utime.h>
 | |
| 
 | |
| #undef NTOHL
 | |
| #undef NTOHLL
 | |
| #undef HTONL
 | |
| #undef HTONLL
 | |
| #undef NTOHS
 | |
| #undef HTONS
 | |
| #undef B0
 | |
| #undef CR3
 | |
| 
 | |
| #include <PiPei.h>
 | |
| #include <Uefi.h>
 | |
| 
 | |
| #include <Library/PeCoffLib.h>
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Library/MemoryAllocationLib.h>
 | |
| #include <Library/PrintLib.h>
 | |
| #include <Library/PcdLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/ReportStatusCodeLib.h>
 | |
| 
 | |
| #include <Library/ThunkPpiList.h>
 | |
| #include <Library/ThunkProtocolList.h>
 | |
| #include <Library/PeiServicesLib.h>
 | |
| #include <Library/PeCoffGetEntryPointLib.h>
 | |
| #include <Library/EmuMagicPageLib.h>
 | |
| 
 | |
| #include <Ppi/EmuThunk.h>
 | |
| #include <Ppi/StatusCode.h>
 | |
| 
 | |
| #include <Protocol/SimplePointer.h>
 | |
| #include <Protocol/SimpleTextIn.h>
 | |
| #include <Protocol/SimpleTextInEx.h>
 | |
| #include <Protocol/UgaDraw.h>
 | |
| #include <Protocol/SimpleFileSystem.h>
 | |
| 
 | |
| #include <Protocol/EmuThunk.h>
 | |
| #include <Protocol/EmuIoThunk.h>
 | |
| #include <Protocol/EmuGraphicsWindow.h>
 | |
| #include <Protocol/EmuThread.h>
 | |
| #include <Protocol/EmuBlockIo.h>
 | |
| #include <Protocol/EmuSnp.h>
 | |
| 
 | |
| #include <Guid/FileInfo.h>
 | |
| #include <Guid/FileSystemInfo.h>
 | |
| #include <Guid/FileSystemVolumeLabelInfo.h>
 | |
| 
 | |
| #include "Gasket.h"
 | |
| 
 | |
| #define STACK_SIZE  0x20000
 | |
| 
 | |
| typedef struct {
 | |
|   EFI_PHYSICAL_ADDRESS    Address;
 | |
|   UINT64                  Size;
 | |
| } EMU_FD_INFO;
 | |
| 
 | |
| typedef struct {
 | |
|   EFI_PHYSICAL_ADDRESS    Memory;
 | |
|   UINT64                  Size;
 | |
| } EMU_SYSTEM_MEMORY;
 | |
| 
 | |
| #define MAX_IMAGE_CONTEXT_TO_MOD_HANDLE_ARRAY_SIZE  0x100
 | |
| 
 | |
| typedef struct {
 | |
|   PE_COFF_LOADER_IMAGE_CONTEXT    *ImageContext;
 | |
|   VOID                            *ModHandle;
 | |
| } IMAGE_CONTEXT_TO_MOD_HANDLE;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| SecUnixPeiLoadFile (
 | |
|   VOID                  *Pe32Data,
 | |
|   EFI_PHYSICAL_ADDRESS  *ImageAddress,
 | |
|   UINT64                *ImageSize,
 | |
|   EFI_PHYSICAL_ADDRESS  *EntryPoint
 | |
|   );
 | |
| 
 | |
| int
 | |
| main (
 | |
|   IN  int   Argc,
 | |
|   IN  char  **Argv,
 | |
|   IN  char  **Envp
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| SecLoadFromCore (
 | |
|   IN  UINTN  LargestRegion,
 | |
|   IN  UINTN  LargestRegionSize,
 | |
|   IN  UINTN  BootFirmwareVolumeBase,
 | |
|   IN  VOID   *PeiCoreFile
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| SecLoadFile (
 | |
|   IN  VOID                  *Pe32Data,
 | |
|   IN  EFI_PHYSICAL_ADDRESS  *ImageAddress,
 | |
|   IN  UINT64                *ImageSize,
 | |
|   IN  EFI_PHYSICAL_ADDRESS  *EntryPoint
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| SecFfsFindPeiCore (
 | |
|   IN  EFI_FIRMWARE_VOLUME_HEADER  *FwVolHeader,
 | |
|   OUT VOID                        **Pe32Data
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| SecFfsFindNextFile (
 | |
|   IN EFI_FV_FILETYPE             SearchType,
 | |
|   IN EFI_FIRMWARE_VOLUME_HEADER  *FwVolHeader,
 | |
|   IN OUT EFI_FFS_FILE_HEADER     **FileHeader
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| SecFfsFindSectionData (
 | |
|   IN EFI_SECTION_TYPE     SectionType,
 | |
|   IN EFI_FFS_FILE_HEADER  *FfsFileHeader,
 | |
|   IN OUT VOID             **SectionData
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| SecUnixPeCoffLoaderLoadAsDll (
 | |
|   IN CHAR8  *PdbFileName,
 | |
|   IN VOID   **ImageEntryPoint,
 | |
|   OUT VOID  **ModHandle
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| SecUnixPeCoffLoaderFreeLibrary (
 | |
|   OUT VOID  *ModHandle
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| SecUnixFdAddress (
 | |
|   IN     UINTN                 Index,
 | |
|   IN OUT EFI_PHYSICAL_ADDRESS  *FdBase,
 | |
|   IN OUT UINT64                *FdSize,
 | |
|   IN OUT EFI_PHYSICAL_ADDRESS  *FixUp
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSecUnixFdAddress (
 | |
|   IN     UINTN                 Index,
 | |
|   IN OUT EFI_PHYSICAL_ADDRESS  *FdBase,
 | |
|   IN OUT UINT64                *FdSize,
 | |
|   IN OUT EFI_PHYSICAL_ADDRESS  *FixUp
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| GetImageReadFunction (
 | |
|   IN PE_COFF_LOADER_IMAGE_CONTEXT  *ImageContext,
 | |
|   IN EFI_PHYSICAL_ADDRESS          *TopOfMemory
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| SecImageRead (
 | |
|   IN     VOID   *FileHandle,
 | |
|   IN     UINTN  FileOffset,
 | |
|   IN OUT UINTN  *ReadSize,
 | |
|   OUT    VOID   *Buffer
 | |
|   );
 | |
| 
 | |
| CHAR16                            *
 | |
| AsciiToUnicode (
 | |
|   IN  CHAR8  *Ascii,
 | |
|   IN  UINTN  *StrLen OPTIONAL
 | |
|   );
 | |
| 
 | |
| UINTN
 | |
| CountSeparatorsInString (
 | |
|   IN  const CHAR16  *String,
 | |
|   IN  CHAR16        Separator
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| SecTemporaryRamSupport (
 | |
|   IN CONST EFI_PEI_SERVICES  **PeiServices,
 | |
|   IN EFI_PHYSICAL_ADDRESS    TemporaryMemoryBase,
 | |
|   IN EFI_PHYSICAL_ADDRESS    PermanentMemoryBase,
 | |
|   IN UINTN                   CopySize
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| GasketSecTemporaryRamSupport (
 | |
|   IN CONST EFI_PEI_SERVICES  **PeiServices,
 | |
|   IN EFI_PHYSICAL_ADDRESS    TemporaryMemoryBase,
 | |
|   IN EFI_PHYSICAL_ADDRESS    PermanentMemoryBase,
 | |
|   IN UINTN                   CopySize
 | |
|   );
 | |
| 
 | |
| RETURN_STATUS
 | |
| EFIAPI
 | |
| SecPeCoffGetEntryPoint (
 | |
|   IN     VOID  *Pe32Data,
 | |
|   IN OUT VOID  **EntryPoint
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| SecPeCoffRelocateImageExtraAction (
 | |
|   IN OUT PE_COFF_LOADER_IMAGE_CONTEXT  *ImageContext
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| SecPeCoffLoaderUnloadImageExtraAction (
 | |
|   IN OUT PE_COFF_LOADER_IMAGE_CONTEXT  *ImageContext
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| PeiSwitchStacks (
 | |
|   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,
 | |
|   IN      VOID                      *Context1   OPTIONAL,
 | |
|   IN      VOID                      *Context2   OPTIONAL,
 | |
|   IN      VOID                      *NewStack
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| SecInitThunkProtocol (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| EFI_PHYSICAL_ADDRESS *
 | |
| MapMemory (
 | |
|   INTN    fd,
 | |
|   UINT64  length,
 | |
|   INTN    prot,
 | |
|   INTN    flags
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| MapFile (
 | |
|   IN  CHAR8                     *FileName,
 | |
|   IN OUT  EFI_PHYSICAL_ADDRESS  *BaseAddress,
 | |
|   OUT UINT64                    *Length
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| MapFd0 (
 | |
|   IN  CHAR8                     *FileName,
 | |
|   IN OUT  EFI_PHYSICAL_ADDRESS  *BaseAddress,
 | |
|   OUT UINT64                    *Length
 | |
|   );
 | |
| 
 | |
| BOOLEAN
 | |
| EfiSystemMemoryRange (
 | |
|   IN  VOID  *MemoryAddress
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| SecSleep (
 | |
|   UINT64  Nanoseconds
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| SecEnableInterrupt (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| SecDisableInterrupt (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| BOOLEAN
 | |
| SecInterruptEanbled (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| extern EMU_THUNK_PROTOCOL     gEmuThunkProtocol;
 | |
| extern EMU_IO_THUNK_PROTOCOL  gX11ThunkIo;
 | |
| extern EMU_IO_THUNK_PROTOCOL  gPosixFileSystemThunkIo;
 | |
| extern EMU_IO_THUNK_PROTOCOL  gPthreadThunkIo;
 | |
| extern EMU_IO_THUNK_PROTOCOL  gBlockIoThunkIo;
 | |
| extern EMU_IO_THUNK_PROTOCOL  gSnpThunkIo;
 | |
| 
 | |
| #endif
 |