Home | History | Annotate | Line # | Download | only in include
actables.h revision 1.10
      1   1.1    jruoho /******************************************************************************
      2   1.1    jruoho  *
      3   1.1    jruoho  * Name: actables.h - ACPI table management
      4   1.1    jruoho  *
      5   1.1    jruoho  *****************************************************************************/
      6   1.1    jruoho 
      7   1.3    jruoho /*
      8  1.10  christos  * Copyright (C) 2000 - 2017, Intel Corp.
      9   1.1    jruoho  * All rights reserved.
     10   1.1    jruoho  *
     11   1.3    jruoho  * Redistribution and use in source and binary forms, with or without
     12   1.3    jruoho  * modification, are permitted provided that the following conditions
     13   1.3    jruoho  * are met:
     14   1.3    jruoho  * 1. Redistributions of source code must retain the above copyright
     15   1.3    jruoho  *    notice, this list of conditions, and the following disclaimer,
     16   1.3    jruoho  *    without modification.
     17   1.3    jruoho  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18   1.3    jruoho  *    substantially similar to the "NO WARRANTY" disclaimer below
     19   1.3    jruoho  *    ("Disclaimer") and any redistribution must be conditioned upon
     20   1.3    jruoho  *    including a substantially similar Disclaimer requirement for further
     21   1.3    jruoho  *    binary redistribution.
     22   1.3    jruoho  * 3. Neither the names of the above-listed copyright holders nor the names
     23   1.3    jruoho  *    of any contributors may be used to endorse or promote products derived
     24   1.3    jruoho  *    from this software without specific prior written permission.
     25   1.3    jruoho  *
     26   1.3    jruoho  * Alternatively, this software may be distributed under the terms of the
     27   1.3    jruoho  * GNU General Public License ("GPL") version 2 as published by the Free
     28   1.3    jruoho  * Software Foundation.
     29   1.3    jruoho  *
     30   1.3    jruoho  * NO WARRANTY
     31   1.3    jruoho  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32   1.3    jruoho  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33   1.3    jruoho  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     34   1.3    jruoho  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35   1.3    jruoho  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36   1.3    jruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37   1.3    jruoho  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38   1.3    jruoho  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39   1.3    jruoho  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40   1.3    jruoho  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41   1.3    jruoho  * POSSIBILITY OF SUCH DAMAGES.
     42   1.3    jruoho  */
     43   1.1    jruoho 
     44   1.1    jruoho #ifndef __ACTABLES_H__
     45   1.1    jruoho #define __ACTABLES_H__
     46   1.1    jruoho 
     47   1.1    jruoho 
     48   1.1    jruoho ACPI_STATUS
     49   1.1    jruoho AcpiAllocateRootTable (
     50   1.1    jruoho     UINT32                  InitialTableCount);
     51   1.1    jruoho 
     52   1.1    jruoho /*
     53   1.4  christos  * tbxfroot - Root pointer utilities
     54   1.4  christos  */
     55   1.5  christos UINT32
     56   1.5  christos AcpiTbGetRsdpLength (
     57   1.5  christos     ACPI_TABLE_RSDP         *Rsdp);
     58   1.5  christos 
     59   1.4  christos ACPI_STATUS
     60   1.4  christos AcpiTbValidateRsdp (
     61   1.4  christos     ACPI_TABLE_RSDP         *Rsdp);
     62   1.4  christos 
     63   1.4  christos UINT8 *
     64   1.4  christos AcpiTbScanMemoryForRsdp (
     65   1.4  christos     UINT8                   *StartAddress,
     66   1.4  christos     UINT32                  Length);
     67   1.4  christos 
     68   1.4  christos 
     69   1.4  christos /*
     70   1.5  christos  * tbdata - table data structure management
     71   1.5  christos  */
     72   1.5  christos ACPI_STATUS
     73   1.6  christos AcpiTbGetNextTableDescriptor (
     74   1.6  christos     UINT32                  *TableIndex,
     75   1.6  christos     ACPI_TABLE_DESC         **TableDesc);
     76   1.5  christos 
     77   1.5  christos void
     78   1.5  christos AcpiTbInitTableDescriptor (
     79   1.5  christos     ACPI_TABLE_DESC         *TableDesc,
     80   1.5  christos     ACPI_PHYSICAL_ADDRESS   Address,
     81   1.5  christos     UINT8                   Flags,
     82   1.5  christos     ACPI_TABLE_HEADER       *Table);
     83   1.5  christos 
     84   1.5  christos ACPI_STATUS
     85   1.5  christos AcpiTbAcquireTempTable (
     86   1.5  christos     ACPI_TABLE_DESC         *TableDesc,
     87   1.5  christos     ACPI_PHYSICAL_ADDRESS   Address,
     88   1.5  christos     UINT8                   Flags);
     89   1.5  christos 
     90   1.5  christos void
     91   1.5  christos AcpiTbReleaseTempTable (
     92   1.5  christos     ACPI_TABLE_DESC         *TableDesc);
     93   1.5  christos 
     94   1.5  christos ACPI_STATUS
     95   1.5  christos AcpiTbValidateTempTable (
     96   1.5  christos     ACPI_TABLE_DESC         *TableDesc);
     97   1.5  christos 
     98   1.5  christos ACPI_STATUS
     99   1.5  christos AcpiTbVerifyTempTable (
    100   1.5  christos     ACPI_TABLE_DESC         *TableDesc,
    101   1.5  christos     const char              *Signature);
    102   1.5  christos 
    103   1.5  christos BOOLEAN
    104   1.5  christos AcpiTbIsTableLoaded (
    105   1.5  christos     UINT32                  TableIndex);
    106   1.5  christos 
    107   1.5  christos void
    108   1.5  christos AcpiTbSetTableLoadedFlag (
    109   1.5  christos     UINT32                  TableIndex,
    110   1.5  christos     BOOLEAN                 IsLoaded);
    111   1.5  christos 
    112   1.5  christos 
    113   1.5  christos /*
    114   1.1    jruoho  * tbfadt - FADT parse/convert/validate
    115   1.1    jruoho  */
    116   1.1    jruoho void
    117   1.1    jruoho AcpiTbParseFadt (
    118   1.7  christos     void);
    119   1.1    jruoho 
    120   1.1    jruoho void
    121   1.1    jruoho AcpiTbCreateLocalFadt (
    122   1.1    jruoho     ACPI_TABLE_HEADER       *Table,
    123   1.1    jruoho     UINT32                  Length);
    124   1.1    jruoho 
    125   1.1    jruoho 
    126   1.1    jruoho /*
    127   1.1    jruoho  * tbfind - find ACPI table
    128   1.1    jruoho  */
    129   1.1    jruoho ACPI_STATUS
    130   1.1    jruoho AcpiTbFindTable (
    131   1.1    jruoho     char                    *Signature,
    132   1.1    jruoho     char                    *OemId,
    133   1.1    jruoho     char                    *OemTableId,
    134   1.1    jruoho     UINT32                  *TableIndex);
    135   1.1    jruoho 
    136   1.1    jruoho 
    137   1.1    jruoho /*
    138   1.1    jruoho  * tbinstal - Table removal and deletion
    139   1.1    jruoho  */
    140   1.1    jruoho ACPI_STATUS
    141   1.1    jruoho AcpiTbResizeRootTableList (
    142   1.1    jruoho     void);
    143   1.1    jruoho 
    144   1.1    jruoho ACPI_STATUS
    145   1.5  christos AcpiTbValidateTable (
    146   1.1    jruoho     ACPI_TABLE_DESC         *TableDesc);
    147   1.1    jruoho 
    148   1.5  christos void
    149   1.5  christos AcpiTbInvalidateTable (
    150   1.4  christos     ACPI_TABLE_DESC         *TableDesc);
    151   1.4  christos 
    152   1.5  christos void
    153   1.5  christos AcpiTbOverrideTable (
    154   1.5  christos     ACPI_TABLE_DESC         *OldTableDesc);
    155   1.5  christos 
    156   1.1    jruoho ACPI_STATUS
    157   1.5  christos AcpiTbAcquireTable (
    158   1.1    jruoho     ACPI_TABLE_DESC         *TableDesc,
    159   1.5  christos     ACPI_TABLE_HEADER       **TablePtr,
    160   1.5  christos     UINT32                  *TableLength,
    161   1.5  christos     UINT8                   *TableFlags);
    162   1.5  christos 
    163   1.5  christos void
    164   1.5  christos AcpiTbReleaseTable (
    165   1.5  christos     ACPI_TABLE_HEADER       *Table,
    166   1.5  christos     UINT32                  TableLength,
    167   1.5  christos     UINT8                   TableFlags);
    168   1.5  christos 
    169   1.5  christos ACPI_STATUS
    170   1.5  christos AcpiTbInstallStandardTable (
    171   1.5  christos     ACPI_PHYSICAL_ADDRESS   Address,
    172   1.5  christos     UINT8                   Flags,
    173   1.5  christos     BOOLEAN                 Reload,
    174   1.5  christos     BOOLEAN                 Override,
    175   1.1    jruoho     UINT32                  *TableIndex);
    176   1.1    jruoho 
    177   1.1    jruoho void
    178   1.5  christos AcpiTbUninstallTable (
    179   1.1    jruoho     ACPI_TABLE_DESC        *TableDesc);
    180   1.1    jruoho 
    181   1.9  christos ACPI_STATUS
    182   1.9  christos AcpiTbLoadTable (
    183   1.9  christos     UINT32                  TableIndex,
    184   1.9  christos     ACPI_NAMESPACE_NODE     *ParentNode);
    185   1.9  christos 
    186   1.9  christos ACPI_STATUS
    187   1.9  christos AcpiTbInstallAndLoadTable (
    188   1.9  christos     ACPI_PHYSICAL_ADDRESS   Address,
    189   1.9  christos     UINT8                   Flags,
    190   1.9  christos     BOOLEAN                 Override,
    191   1.9  christos     UINT32                  *TableIndex);
    192   1.9  christos 
    193  1.10  christos ACPI_STATUS
    194  1.10  christos AcpiTbUnloadTable (
    195  1.10  christos     UINT32                  TableIndex);
    196  1.10  christos 
    197   1.1    jruoho void
    198   1.1    jruoho AcpiTbTerminate (
    199   1.1    jruoho     void);
    200   1.1    jruoho 
    201   1.1    jruoho ACPI_STATUS
    202   1.1    jruoho AcpiTbDeleteNamespaceByOwner (
    203   1.1    jruoho     UINT32                  TableIndex);
    204   1.1    jruoho 
    205   1.1    jruoho ACPI_STATUS
    206   1.1    jruoho AcpiTbAllocateOwnerId (
    207   1.1    jruoho     UINT32                  TableIndex);
    208   1.1    jruoho 
    209   1.1    jruoho ACPI_STATUS
    210   1.1    jruoho AcpiTbReleaseOwnerId (
    211   1.1    jruoho     UINT32                  TableIndex);
    212   1.1    jruoho 
    213   1.1    jruoho ACPI_STATUS
    214   1.1    jruoho AcpiTbGetOwnerId (
    215   1.1    jruoho     UINT32                  TableIndex,
    216   1.1    jruoho     ACPI_OWNER_ID           *OwnerId);
    217   1.1    jruoho 
    218   1.1    jruoho 
    219   1.1    jruoho /*
    220   1.1    jruoho  * tbutils - table manager utilities
    221   1.1    jruoho  */
    222   1.1    jruoho ACPI_STATUS
    223   1.1    jruoho AcpiTbInitializeFacs (
    224   1.1    jruoho     void);
    225   1.1    jruoho 
    226   1.1    jruoho void
    227   1.1    jruoho AcpiTbPrintTableHeader(
    228   1.1    jruoho     ACPI_PHYSICAL_ADDRESS   Address,
    229   1.1    jruoho     ACPI_TABLE_HEADER       *Header);
    230   1.1    jruoho 
    231   1.1    jruoho UINT8
    232   1.1    jruoho AcpiTbChecksum (
    233   1.1    jruoho     UINT8                   *Buffer,
    234   1.1    jruoho     UINT32                  Length);
    235   1.1    jruoho 
    236   1.1    jruoho ACPI_STATUS
    237   1.1    jruoho AcpiTbVerifyChecksum (
    238   1.1    jruoho     ACPI_TABLE_HEADER       *Table,
    239   1.1    jruoho     UINT32                  Length);
    240   1.1    jruoho 
    241   1.1    jruoho void
    242   1.1    jruoho AcpiTbCheckDsdtHeader (
    243   1.1    jruoho     void);
    244   1.1    jruoho 
    245   1.1    jruoho ACPI_TABLE_HEADER *
    246   1.1    jruoho AcpiTbCopyDsdt (
    247   1.1    jruoho     UINT32                  TableIndex);
    248   1.1    jruoho 
    249   1.1    jruoho void
    250   1.5  christos AcpiTbInstallTableWithOverride (
    251   1.5  christos     ACPI_TABLE_DESC         *NewTableDesc,
    252   1.7  christos     BOOLEAN                 Override,
    253   1.7  christos     UINT32                  *TableIndex);
    254   1.5  christos 
    255   1.5  christos ACPI_STATUS
    256   1.1    jruoho AcpiTbParseRootTable (
    257   1.1    jruoho     ACPI_PHYSICAL_ADDRESS   RsdpAddress);
    258   1.1    jruoho 
    259  1.10  christos ACPI_STATUS
    260  1.10  christos AcpiTbGetTable (
    261  1.10  christos     ACPI_TABLE_DESC        *TableDesc,
    262  1.10  christos     ACPI_TABLE_HEADER      **OutTable);
    263  1.10  christos 
    264  1.10  christos void
    265  1.10  christos AcpiTbPutTable (
    266  1.10  christos     ACPI_TABLE_DESC        *TableDesc);
    267  1.10  christos 
    268   1.7  christos 
    269   1.7  christos /*
    270   1.7  christos  * tbxfload
    271   1.7  christos  */
    272   1.7  christos ACPI_STATUS
    273   1.7  christos AcpiTbLoadNamespace (
    274   1.7  christos     void);
    275   1.7  christos 
    276   1.1    jruoho #endif /* __ACTABLES_H__ */
    277