Home | History | Annotate | Download | only in Protocol
      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