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