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