Home | History | Annotate | Download | only in AcpiPlatformDxe
      1 /** @file
      2   Sample ACPI Platform Driver
      3 
      4   Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
      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 _ACPI_PLATFORM_H_INCLUDED_
     16 #define _ACPI_PLATFORM_H_INCLUDED_
     17 
     18 #include <PiDxe.h>
     19 
     20 #include <Protocol/AcpiTable.h>
     21 #include <Protocol/FirmwareVolume2.h>
     22 #include <Protocol/PciIo.h>
     23 
     24 #include <Library/BaseLib.h>
     25 #include <Library/UefiBootServicesTableLib.h>
     26 #include <Library/DebugLib.h>
     27 #include <Library/PcdLib.h>
     28 
     29 #include <IndustryStandard/Acpi.h>
     30 
     31 typedef struct {
     32   EFI_PCI_IO_PROTOCOL *PciIo;
     33   UINT64              PciAttributes;
     34 } ORIGINAL_ATTRIBUTES;
     35 
     36 EFI_STATUS
     37 EFIAPI
     38 InstallAcpiTable (
     39   IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol,
     40   IN   VOID                          *AcpiTableBuffer,
     41   IN   UINTN                         AcpiTableBufferSize,
     42   OUT  UINTN                         *TableKey
     43   );
     44 
     45 BOOLEAN
     46 QemuDetected (
     47   VOID
     48   );
     49 
     50 EFI_STATUS
     51 EFIAPI
     52 QemuInstallAcpiTable (
     53   IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol,
     54   IN   VOID                          *AcpiTableBuffer,
     55   IN   UINTN                         AcpiTableBufferSize,
     56   OUT  UINTN                         *TableKey
     57   );
     58 
     59 BOOLEAN
     60 XenDetected (
     61   VOID
     62   );
     63 
     64 EFI_STATUS
     65 EFIAPI
     66 InstallXenTables (
     67   IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol
     68   );
     69 
     70 EFI_STATUS
     71 EFIAPI
     72 InstallQemuFwCfgTables (
     73   IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiProtocol
     74   );
     75 
     76 EFI_STATUS
     77 EFIAPI
     78 InstallAcpiTables (
     79   IN   EFI_ACPI_TABLE_PROTOCOL       *AcpiTable
     80   );
     81 
     82 VOID
     83 EnablePciDecoding (
     84   OUT ORIGINAL_ATTRIBUTES **OriginalAttributes,
     85   OUT UINTN               *Count
     86   );
     87 
     88 VOID
     89 RestorePciDecoding (
     90   IN ORIGINAL_ATTRIBUTES *OriginalAttributes,
     91   IN UINTN               Count
     92   );
     93 
     94 #endif
     95 
     96