blob: 49c0294ae8a9dc18e782bca38cfb5204f4b724ee [file] [log] [blame]
Vishal Bhoj82c80712015-12-15 21:13:33 +05301/**@file
2
3Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4This program and the accompanying materials
5are licensed and made available under the terms and conditions of the BSD License
6which accompanies this distribution. The full text of the license may be found at
7http://opensource.org/licenses/bsd-license.php
8
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12Module Name:
13
14 NtAutoscan.h
15
16Abstract:
17
18Nt 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
32typedef
33EFI_STATUS
34(EFIAPI *PEI_NT_AUTOSCAN) (
35 IN UINTN Index,
36 OUT EFI_PHYSICAL_ADDRESS * MemoryBase,
37 OUT UINT64 *MemorySize
38 );
39
40/*++
41
42Routine 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
50Arguments:
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
55Returns:
56 EFI_SUCCESS - If memory region was mapped
57 EFI_UNSUPPORTED - If Index is not supported
58
59--*/
60typedef struct {
61 PEI_NT_AUTOSCAN NtAutoScan;
62} PEI_NT_AUTOSCAN_PPI;
63
64extern EFI_GUID gPeiNtAutoScanPpiGuid;
65
66#endif