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 discontiguous 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