Unix version of EFI emulator
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2182 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
66
EdkUnixPkg/Include/Ppi/UnixAutoScan.h
Normal file
66
EdkUnixPkg/Include/Ppi/UnixAutoScan.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixAutoscan.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Unix Autoscan PPI
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_PEI_AUTOSCAN_H__
|
||||
#define __UNIX_PEI_AUTOSCAN_H__
|
||||
|
||||
#include <UnixDxe.h>
|
||||
|
||||
#define PEI_UNIX_AUTOSCAN_PPI_GUID \
|
||||
{ \
|
||||
0xf2ed3d14, 0x8985, 0x11db, {0xb0, 0x57, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PEI_UNIX_AUTOSCAN) (
|
||||
IN UINTN Index,
|
||||
OUT EFI_PHYSICAL_ADDRESS *MemoryBase,
|
||||
OUT UINT64 *MemorySize
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
This service is called from Index == 0 until it returns EFI_UNSUPPORTED.
|
||||
It allows discontiguous memory regions to be supported by the emulator.
|
||||
It uses gSystemMemory[] and gSystemMemoryCount that were created by
|
||||
parsing the Windows environment variable EFI_MEMORY_SIZE.
|
||||
The size comes from the varaible and the address comes from the call to
|
||||
WinNtOpenFile.
|
||||
|
||||
Arguments:
|
||||
Index - Which memory region to use
|
||||
MemoryBase - Return Base address of memory region
|
||||
MemorySize - Return size in bytes of the memory region
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - If memory region was mapped
|
||||
EFI_UNSUPPORTED - If Index is not supported
|
||||
|
||||
--*/
|
||||
typedef struct {
|
||||
PEI_UNIX_AUTOSCAN UnixAutoScan;
|
||||
} PEI_UNIX_AUTOSCAN_PPI;
|
||||
|
||||
extern EFI_GUID gPeiUnixAutoScanPpiGuid;
|
||||
|
||||
#endif
|
62
EdkUnixPkg/Include/Ppi/UnixFwh.h
Normal file
62
EdkUnixPkg/Include/Ppi/UnixFwh.h
Normal file
@@ -0,0 +1,62 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixFwh.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Unix FWH PPI as defined in Tiano
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_PEI_FWH_H__
|
||||
#define __UNIX_PEI_FWH_H__
|
||||
|
||||
#include <UnixDxe.h>
|
||||
|
||||
#define UNIX_FWH_PPI_GUID \
|
||||
{ \
|
||||
0xf2f0dc30, 0x8985, 0x11db, {0xa1, 0x5b, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *UNIX_FWH_INFORMATION) (
|
||||
IN UINTN Index,
|
||||
IN OUT EFI_PHYSICAL_ADDRESS *FdBase,
|
||||
IN OUT UINT64 *FdSize
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return the FD Size and base address. Since the FD is loaded from a
|
||||
file into Windows memory only the SEC will know it's address.
|
||||
|
||||
Arguments:
|
||||
Index - Which FD, starts at zero.
|
||||
FdSize - Size of the FD in bytes
|
||||
FdBase - Start address of the FD. Assume it points to an FV Header
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Return the Base address and size of the FV
|
||||
EFI_UNSUPPORTED - Index does nto map to an FD in the system
|
||||
|
||||
--*/
|
||||
typedef struct {
|
||||
UNIX_FWH_INFORMATION UnixFwh;
|
||||
} UNIX_FWH_PPI;
|
||||
|
||||
extern EFI_GUID gUnixFwhPpiGuid;
|
||||
|
||||
#endif
|
65
EdkUnixPkg/Include/Ppi/UnixPeiLoadFile.h
Normal file
65
EdkUnixPkg/Include/Ppi/UnixPeiLoadFile.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixPeiLoadFile.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Unix Load File PPI.
|
||||
|
||||
When the PEI core is done it calls the DXE IPL via PPI
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_PEI_LOAD_FILE_H__
|
||||
#define __UNIX_PEI_LOAD_FILE_H__
|
||||
|
||||
#include <UnixDxe.h>
|
||||
|
||||
#define UNIX_PEI_LOAD_FILE_GUID \
|
||||
{ \
|
||||
0xf2f48768, 0x8985, 0x11db, {0xb8, 0xda, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *UNIX_PEI_LOAD_FILE) (
|
||||
VOID *Pe32Data,
|
||||
EFI_PHYSICAL_ADDRESS *ImageAddress,
|
||||
UINT64 *ImageSize,
|
||||
EFI_PHYSICAL_ADDRESS *EntryPoint
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Loads and relocates a PE/COFF image into memory.
|
||||
|
||||
Arguments:
|
||||
Pe32Data - The base address of the PE/COFF file that is to be loaded and relocated
|
||||
ImageAddress - The base address of the relocated PE/COFF image
|
||||
ImageSize - The size of the relocated PE/COFF image
|
||||
EntryPoint - The entry point of the relocated PE/COFF image
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The file was loaded and relocated
|
||||
EFI_OUT_OF_RESOURCES - There was not enough memory to load and relocate the PE/COFF file
|
||||
|
||||
--*/
|
||||
typedef struct {
|
||||
UNIX_PEI_LOAD_FILE PeiLoadFileService;
|
||||
} UNIX_PEI_LOAD_FILE_PPI;
|
||||
|
||||
extern EFI_GUID gUnixPeiLoadFilePpiGuid;
|
||||
|
||||
#endif
|
56
EdkUnixPkg/Include/Ppi/UnixThunk.h
Normal file
56
EdkUnixPkg/Include/Ppi/UnixThunk.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixThunk.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Unix Thunk interface PPI
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_PEI_UNIX_THUNK_H__
|
||||
#define __UNIX_PEI_UNIX_THUNK_H__
|
||||
|
||||
#include <UnixDxe.h>
|
||||
|
||||
#define PEI_UNIX_THUNK_PPI_GUID \
|
||||
{ \
|
||||
0xf2f830f2, 0x8985, 0x11db, {0x80, 0x6b, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef
|
||||
VOID *
|
||||
(EFIAPI *PEI_UNIX_THUNK_INTERFACE) (
|
||||
VOID
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Export of EFI_UNIX_THUNK_PROTOCOL from the Unix SEC.
|
||||
|
||||
Arguments:
|
||||
InterfaceBase - Address of the EFI_UNIX_THUNK_PROTOCOL
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Data returned
|
||||
|
||||
--*/
|
||||
typedef struct {
|
||||
PEI_UNIX_THUNK_INTERFACE UnixThunk;
|
||||
} PEI_UNIX_THUNK_PPI;
|
||||
|
||||
extern EFI_GUID gPeiUnixThunkPpiGuid;
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user