1 /** @file
2 
3   Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
4 
5   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                       RevertPages;
56 };
57 
58 extern EFI_GUID gVirtualUncachedPagesProtocolGuid;
59 
60 #endif
61