]> git.proxmox.com Git - mirror_edk2.git/blob - Protocol/VirtualUncachedPages.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / Protocol / VirtualUncachedPages.h
1 /** @file
2
3 Copyright (c) 2008-2010 Apple Inc. All rights reserved.<BR>
4
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef __VIRTUAL_UNCACHED_PAGES_ROTOCOL_H__
16 #define __VIRTUAL_UNCACHED_PAGES_ROTOCOL_H__
17
18 //
19 // Protocol GUID
20 //
21 #define VIRTUAL_UNCACHED_PAGES_PROTOCOL_GUID { 0xAD651C7D, 0x3C22, 0x4DBF, { 0x92, 0xe8, 0x38, 0xa7, 0xcd, 0xae, 0x87, 0xb2 } }
22
23
24
25 //
26 // Protocol interface structure
27 //
28 typedef struct _VIRTUAL_UNCACHED_PAGES_PROTOCOL VIRTUAL_UNCACHED_PAGES_PROTOCOL;
29
30
31 typedef
32 EFI_STATUS
33 (EFIAPI *CONVERT_PAGES_TO_UNCACHED_VIRTUAL_ADDRESS) (
34 IN VIRTUAL_UNCACHED_PAGES_PROTOCOL *This,
35 IN EFI_PHYSICAL_ADDRESS Address,
36 IN UINTN Length,
37 IN EFI_PHYSICAL_ADDRESS VirtualMask,
38 OUT UINT64 *Attributes OPTIONAL
39 );
40
41 typedef
42 EFI_STATUS
43 (EFIAPI *FREE_CONVERTED_PAGES) (
44 IN VIRTUAL_UNCACHED_PAGES_PROTOCOL *This,
45 IN EFI_PHYSICAL_ADDRESS Address,
46 IN UINTN Length,
47 IN EFI_PHYSICAL_ADDRESS VirtualMask,
48 IN UINT64 Attributes
49 );
50
51
52
53 struct _VIRTUAL_UNCACHED_PAGES_PROTOCOL {
54 CONVERT_PAGES_TO_UNCACHED_VIRTUAL_ADDRESS ConvertPages;
55 FREE_CONVERTED_PAGES FreeConvertedPages;
56 };
57
58 extern EFI_GUID gVirtualUncachedPagesProtocolGuid;
59
60 #endif