Home | History | Annotate | Line # | Download | only in include
actables.h revision 1.12.2.2
      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.12.2.2    martin  * Copyright (C) 2000 - 2020, 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.11  christos     const char              *Signature,
    102      1.11  christos     UINT32                  *TableIndex);
    103       1.5  christos 
    104       1.5  christos BOOLEAN
    105       1.5  christos AcpiTbIsTableLoaded (
    106       1.5  christos     UINT32                  TableIndex);
    107       1.5  christos 
    108       1.5  christos void
    109       1.5  christos AcpiTbSetTableLoadedFlag (
    110       1.5  christos     UINT32                  TableIndex,
    111       1.5  christos     BOOLEAN                 IsLoaded);
    112       1.5  christos 
    113       1.5  christos 
    114       1.5  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.7  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.5  christos AcpiTbValidateTable (
    147       1.1    jruoho     ACPI_TABLE_DESC         *TableDesc);
    148       1.1    jruoho 
    149       1.5  christos void
    150       1.5  christos AcpiTbInvalidateTable (
    151       1.4  christos     ACPI_TABLE_DESC         *TableDesc);
    152       1.4  christos 
    153       1.5  christos void
    154       1.5  christos AcpiTbOverrideTable (
    155       1.5  christos     ACPI_TABLE_DESC         *OldTableDesc);
    156       1.5  christos 
    157       1.1    jruoho ACPI_STATUS
    158       1.5  christos AcpiTbAcquireTable (
    159       1.1    jruoho     ACPI_TABLE_DESC         *TableDesc,
    160       1.5  christos     ACPI_TABLE_HEADER       **TablePtr,
    161       1.5  christos     UINT32                  *TableLength,
    162       1.5  christos     UINT8                   *TableFlags);
    163       1.5  christos 
    164       1.5  christos void
    165       1.5  christos AcpiTbReleaseTable (
    166       1.5  christos     ACPI_TABLE_HEADER       *Table,
    167       1.5  christos     UINT32                  TableLength,
    168       1.5  christos     UINT8                   TableFlags);
    169       1.5  christos 
    170       1.5  christos ACPI_STATUS
    171       1.5  christos AcpiTbInstallStandardTable (
    172       1.5  christos     ACPI_PHYSICAL_ADDRESS   Address,
    173       1.5  christos     UINT8                   Flags,
    174       1.5  christos     BOOLEAN                 Reload,
    175       1.5  christos     BOOLEAN                 Override,
    176       1.1    jruoho     UINT32                  *TableIndex);
    177       1.1    jruoho 
    178       1.1    jruoho void
    179       1.5  christos AcpiTbUninstallTable (
    180       1.1    jruoho     ACPI_TABLE_DESC        *TableDesc);
    181       1.1    jruoho 
    182       1.9  christos ACPI_STATUS
    183       1.9  christos AcpiTbLoadTable (
    184       1.9  christos     UINT32                  TableIndex,
    185       1.9  christos     ACPI_NAMESPACE_NODE     *ParentNode);
    186       1.9  christos 
    187       1.9  christos ACPI_STATUS
    188       1.9  christos AcpiTbInstallAndLoadTable (
    189       1.9  christos     ACPI_PHYSICAL_ADDRESS   Address,
    190       1.9  christos     UINT8                   Flags,
    191       1.9  christos     BOOLEAN                 Override,
    192       1.9  christos     UINT32                  *TableIndex);
    193       1.9  christos 
    194      1.10  christos ACPI_STATUS
    195      1.10  christos AcpiTbUnloadTable (
    196      1.10  christos     UINT32                  TableIndex);
    197      1.10  christos 
    198       1.1    jruoho void
    199      1.11  christos AcpiTbNotifyTable (
    200      1.11  christos     UINT32                          Event,
    201      1.11  christos     void                            *Table);
    202      1.11  christos 
    203      1.11  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.5  christos AcpiTbInstallTableWithOverride (
    257       1.5  christos     ACPI_TABLE_DESC         *NewTableDesc,
    258       1.7  christos     BOOLEAN                 Override,
    259       1.7  christos     UINT32                  *TableIndex);
    260       1.5  christos 
    261       1.5  christos ACPI_STATUS
    262       1.1    jruoho AcpiTbParseRootTable (
    263       1.1    jruoho     ACPI_PHYSICAL_ADDRESS   RsdpAddress);
    264       1.1    jruoho 
    265      1.10  christos ACPI_STATUS
    266      1.10  christos AcpiTbGetTable (
    267      1.10  christos     ACPI_TABLE_DESC        *TableDesc,
    268      1.10  christos     ACPI_TABLE_HEADER      **OutTable);
    269      1.10  christos 
    270      1.10  christos void
    271      1.10  christos AcpiTbPutTable (
    272      1.10  christos     ACPI_TABLE_DESC        *TableDesc);
    273      1.10  christos 
    274       1.7  christos 
    275       1.7  christos /*
    276       1.7  christos  * tbxfload
    277       1.7  christos  */
    278       1.7  christos ACPI_STATUS
    279       1.7  christos AcpiTbLoadNamespace (
    280       1.7  christos     void);
    281       1.7  christos 
    282       1.1    jruoho #endif /* __ACTABLES_H__ */
    283