16ae81428485020dd371eaefa5b97b24f21efe117klu/**@file 245a20a7fd8b12de926a87f6d7b121287354d63afklu 38f2a5f8012e3a6de30f5b12ce3a218efae9eaeddhhtianCopyright (c) 2006, Intel Corporation. All rights reserved.<BR> 48f2a5f8012e3a6de30f5b12ce3a218efae9eaeddhhtianThis program and the accompanying materials 545a20a7fd8b12de926a87f6d7b121287354d63afkluare licensed and made available under the terms and conditions of the BSD License 645a20a7fd8b12de926a87f6d7b121287354d63afkluwhich accompanies this distribution. The full text of the license may be found at 745a20a7fd8b12de926a87f6d7b121287354d63afkluhttp://opensource.org/licenses/bsd-license.php 845a20a7fd8b12de926a87f6d7b121287354d63afklu 945a20a7fd8b12de926a87f6d7b121287354d63afkluTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 1045a20a7fd8b12de926a87f6d7b121287354d63afkluWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 1145a20a7fd8b12de926a87f6d7b121287354d63afklu 1245a20a7fd8b12de926a87f6d7b121287354d63afkluModule Name: 1345a20a7fd8b12de926a87f6d7b121287354d63afklu 1445a20a7fd8b12de926a87f6d7b121287354d63afklu NtAutoscan.h 1545a20a7fd8b12de926a87f6d7b121287354d63afklu 1645a20a7fd8b12de926a87f6d7b121287354d63afkluAbstract: 1745a20a7fd8b12de926a87f6d7b121287354d63afklu 1845a20a7fd8b12de926a87f6d7b121287354d63afkluNt Autoscan PPI 1945a20a7fd8b12de926a87f6d7b121287354d63afklu 206ae81428485020dd371eaefa5b97b24f21efe117klu**/ 2145a20a7fd8b12de926a87f6d7b121287354d63afklu 2245a20a7fd8b12de926a87f6d7b121287354d63afklu#ifndef __NT_PEI_AUTOSCAN_H__ 2345a20a7fd8b12de926a87f6d7b121287354d63afklu#define __NT_PEI_AUTOSCAN_H__ 2445a20a7fd8b12de926a87f6d7b121287354d63afklu 2545a20a7fd8b12de926a87f6d7b121287354d63afklu#include <WinNtDxe.h> 2645a20a7fd8b12de926a87f6d7b121287354d63afklu 2745a20a7fd8b12de926a87f6d7b121287354d63afklu#define PEI_NT_AUTOSCAN_PPI_GUID \ 2845a20a7fd8b12de926a87f6d7b121287354d63afklu { \ 2945a20a7fd8b12de926a87f6d7b121287354d63afklu 0xdce384d, 0x7c, 0x4ba5, {0x94, 0xbd, 0xf, 0x6e, 0xb6, 0x4d, 0x2a, 0xa9 } \ 3045a20a7fd8b12de926a87f6d7b121287354d63afklu } 3145a20a7fd8b12de926a87f6d7b121287354d63afklu 3245a20a7fd8b12de926a87f6d7b121287354d63afklutypedef 3345a20a7fd8b12de926a87f6d7b121287354d63afkluEFI_STATUS 3445a20a7fd8b12de926a87f6d7b121287354d63afklu(EFIAPI *PEI_NT_AUTOSCAN) ( 3545a20a7fd8b12de926a87f6d7b121287354d63afklu IN UINTN Index, 3645a20a7fd8b12de926a87f6d7b121287354d63afklu OUT EFI_PHYSICAL_ADDRESS * MemoryBase, 3745a20a7fd8b12de926a87f6d7b121287354d63afklu OUT UINT64 *MemorySize 3845a20a7fd8b12de926a87f6d7b121287354d63afklu ); 3945a20a7fd8b12de926a87f6d7b121287354d63afklu 4045a20a7fd8b12de926a87f6d7b121287354d63afklu/*++ 4145a20a7fd8b12de926a87f6d7b121287354d63afklu 4245a20a7fd8b12de926a87f6d7b121287354d63afkluRoutine Description: 4345a20a7fd8b12de926a87f6d7b121287354d63afklu This service is called from Index == 0 until it returns EFI_UNSUPPORTED. 448aa9d680329cb9fa5c8e517727dd14eb4bebc408Gary Lin It allows discontinuous memory regions to be supported by the emulator. 4545a20a7fd8b12de926a87f6d7b121287354d63afklu It uses gSystemMemory[] and gSystemMemoryCount that were created by 4645a20a7fd8b12de926a87f6d7b121287354d63afklu parsing the Windows environment variable EFI_MEMORY_SIZE. 4745a20a7fd8b12de926a87f6d7b121287354d63afklu The size comes from the varaible and the address comes from the call to 4845a20a7fd8b12de926a87f6d7b121287354d63afklu WinNtOpenFile. 4945a20a7fd8b12de926a87f6d7b121287354d63afklu 5045a20a7fd8b12de926a87f6d7b121287354d63afkluArguments: 5145a20a7fd8b12de926a87f6d7b121287354d63afklu Index - Which memory region to use 5245a20a7fd8b12de926a87f6d7b121287354d63afklu MemoryBase - Return Base address of memory region 5345a20a7fd8b12de926a87f6d7b121287354d63afklu MemorySize - Return size in bytes of the memory region 5445a20a7fd8b12de926a87f6d7b121287354d63afklu 5545a20a7fd8b12de926a87f6d7b121287354d63afkluReturns: 5645a20a7fd8b12de926a87f6d7b121287354d63afklu EFI_SUCCESS - If memory region was mapped 5745a20a7fd8b12de926a87f6d7b121287354d63afklu EFI_UNSUPPORTED - If Index is not supported 5845a20a7fd8b12de926a87f6d7b121287354d63afklu 5945a20a7fd8b12de926a87f6d7b121287354d63afklu--*/ 6045a20a7fd8b12de926a87f6d7b121287354d63afklutypedef struct { 6145a20a7fd8b12de926a87f6d7b121287354d63afklu PEI_NT_AUTOSCAN NtAutoScan; 6245a20a7fd8b12de926a87f6d7b121287354d63afklu} PEI_NT_AUTOSCAN_PPI; 6345a20a7fd8b12de926a87f6d7b121287354d63afklu 6445a20a7fd8b12de926a87f6d7b121287354d63afkluextern EFI_GUID gPeiNtAutoScanPpiGuid; 6545a20a7fd8b12de926a87f6d7b121287354d63afklu 6645a20a7fd8b12de926a87f6d7b121287354d63afklu#endif 67