1 /**@file 2 3 Copyright (c) 2006, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 14 NtAutoscan.h 15 16 Abstract: 17 18 Nt Autoscan PPI 19 20 **/ 21 22 #ifndef __NT_PEI_AUTOSCAN_H__ 23 #define __NT_PEI_AUTOSCAN_H__ 24 25 #include <WinNtDxe.h> 26 27 #define PEI_NT_AUTOSCAN_PPI_GUID \ 28 { \ 29 0xdce384d, 0x7c, 0x4ba5, {0x94, 0xbd, 0xf, 0x6e, 0xb6, 0x4d, 0x2a, 0xa9 } \ 30 } 31 32 typedef 33 EFI_STATUS 34 (EFIAPI *PEI_NT_AUTOSCAN) ( 35 IN UINTN Index, 36 OUT EFI_PHYSICAL_ADDRESS * MemoryBase, 37 OUT UINT64 *MemorySize 38 ); 39 40 /*++ 41 42 Routine Description: 43 This service is called from Index == 0 until it returns EFI_UNSUPPORTED. 44 It allows discontinuous memory regions to be supported by the emulator. 45 It uses gSystemMemory[] and gSystemMemoryCount that were created by 46 parsing the Windows environment variable EFI_MEMORY_SIZE. 47 The size comes from the varaible and the address comes from the call to 48 WinNtOpenFile. 49 50 Arguments: 51 Index - Which memory region to use 52 MemoryBase - Return Base address of memory region 53 MemorySize - Return size in bytes of the memory region 54 55 Returns: 56 EFI_SUCCESS - If memory region was mapped 57 EFI_UNSUPPORTED - If Index is not supported 58 59 --*/ 60 typedef struct { 61 PEI_NT_AUTOSCAN NtAutoScan; 62 } PEI_NT_AUTOSCAN_PPI; 63 64 extern EFI_GUID gPeiNtAutoScanPpiGuid; 65 66 #endif 67