xref: /freebsd/sys/contrib/dev/acpica/include/actables.h (revision d244b2279c2f63fc930fa1c11a6033b7119d426a)
1a9f12690SJung-uk Kim /******************************************************************************
2a9f12690SJung-uk Kim  *
3a9f12690SJung-uk Kim  * Name: actables.h - ACPI table management
4a9f12690SJung-uk Kim  *
5a9f12690SJung-uk Kim  *****************************************************************************/
6a9f12690SJung-uk Kim 
7*d244b227SJung-uk Kim /*
8*d244b227SJung-uk Kim  * Copyright (C) 2000 - 2011, Intel Corp.
9a9f12690SJung-uk Kim  * All rights reserved.
10a9f12690SJung-uk Kim  *
11*d244b227SJung-uk Kim  * Redistribution and use in source and binary forms, with or without
12*d244b227SJung-uk Kim  * modification, are permitted provided that the following conditions
13*d244b227SJung-uk Kim  * are met:
14*d244b227SJung-uk Kim  * 1. Redistributions of source code must retain the above copyright
15*d244b227SJung-uk Kim  *    notice, this list of conditions, and the following disclaimer,
16*d244b227SJung-uk Kim  *    without modification.
17*d244b227SJung-uk Kim  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18*d244b227SJung-uk Kim  *    substantially similar to the "NO WARRANTY" disclaimer below
19*d244b227SJung-uk Kim  *    ("Disclaimer") and any redistribution must be conditioned upon
20*d244b227SJung-uk Kim  *    including a substantially similar Disclaimer requirement for further
21*d244b227SJung-uk Kim  *    binary redistribution.
22*d244b227SJung-uk Kim  * 3. Neither the names of the above-listed copyright holders nor the names
23*d244b227SJung-uk Kim  *    of any contributors may be used to endorse or promote products derived
24*d244b227SJung-uk Kim  *    from this software without specific prior written permission.
25a9f12690SJung-uk Kim  *
26*d244b227SJung-uk Kim  * Alternatively, this software may be distributed under the terms of the
27*d244b227SJung-uk Kim  * GNU General Public License ("GPL") version 2 as published by the Free
28*d244b227SJung-uk Kim  * Software Foundation.
29a9f12690SJung-uk Kim  *
30*d244b227SJung-uk Kim  * NO WARRANTY
31*d244b227SJung-uk Kim  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32*d244b227SJung-uk Kim  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33*d244b227SJung-uk Kim  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34*d244b227SJung-uk Kim  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35*d244b227SJung-uk Kim  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36*d244b227SJung-uk Kim  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37*d244b227SJung-uk Kim  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38*d244b227SJung-uk Kim  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39*d244b227SJung-uk Kim  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40*d244b227SJung-uk Kim  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41*d244b227SJung-uk Kim  * POSSIBILITY OF SUCH DAMAGES.
42*d244b227SJung-uk Kim  */
43a9f12690SJung-uk Kim 
44a9f12690SJung-uk Kim #ifndef __ACTABLES_H__
45a9f12690SJung-uk Kim #define __ACTABLES_H__
46a9f12690SJung-uk Kim 
47a9f12690SJung-uk Kim 
48a9f12690SJung-uk Kim ACPI_STATUS
49a9f12690SJung-uk Kim AcpiAllocateRootTable (
50a9f12690SJung-uk Kim     UINT32                  InitialTableCount);
51a9f12690SJung-uk Kim 
52a9f12690SJung-uk Kim /*
53a9f12690SJung-uk Kim  * tbfadt - FADT parse/convert/validate
54a9f12690SJung-uk Kim  */
55a9f12690SJung-uk Kim void
56a9f12690SJung-uk Kim AcpiTbParseFadt (
57a9f12690SJung-uk Kim     UINT32                  TableIndex);
58a9f12690SJung-uk Kim 
59a9f12690SJung-uk Kim void
60a9f12690SJung-uk Kim AcpiTbCreateLocalFadt (
61a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
62a9f12690SJung-uk Kim     UINT32                  Length);
63a9f12690SJung-uk Kim 
64a9f12690SJung-uk Kim 
65a9f12690SJung-uk Kim /*
66a9f12690SJung-uk Kim  * tbfind - find ACPI table
67a9f12690SJung-uk Kim  */
68a9f12690SJung-uk Kim ACPI_STATUS
69a9f12690SJung-uk Kim AcpiTbFindTable (
70a9f12690SJung-uk Kim     char                    *Signature,
71a9f12690SJung-uk Kim     char                    *OemId,
72a9f12690SJung-uk Kim     char                    *OemTableId,
73a9f12690SJung-uk Kim     UINT32                  *TableIndex);
74a9f12690SJung-uk Kim 
75a9f12690SJung-uk Kim 
76a9f12690SJung-uk Kim /*
77a9f12690SJung-uk Kim  * tbinstal - Table removal and deletion
78a9f12690SJung-uk Kim  */
79a9f12690SJung-uk Kim ACPI_STATUS
80a9f12690SJung-uk Kim AcpiTbResizeRootTableList (
81a9f12690SJung-uk Kim     void);
82a9f12690SJung-uk Kim 
83a9f12690SJung-uk Kim ACPI_STATUS
84a9f12690SJung-uk Kim AcpiTbVerifyTable (
85a9f12690SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc);
86a9f12690SJung-uk Kim 
87a9f12690SJung-uk Kim ACPI_STATUS
88a9f12690SJung-uk Kim AcpiTbAddTable (
89a9f12690SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc,
90a9f12690SJung-uk Kim     UINT32                  *TableIndex);
91a9f12690SJung-uk Kim 
92a9f12690SJung-uk Kim ACPI_STATUS
93a9f12690SJung-uk Kim AcpiTbStoreTable (
94a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
95a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
96a9f12690SJung-uk Kim     UINT32                  Length,
97a9f12690SJung-uk Kim     UINT8                   Flags,
98a9f12690SJung-uk Kim     UINT32                  *TableIndex);
99a9f12690SJung-uk Kim 
100a9f12690SJung-uk Kim void
101a9f12690SJung-uk Kim AcpiTbDeleteTable (
102a9f12690SJung-uk Kim     ACPI_TABLE_DESC        *TableDesc);
103a9f12690SJung-uk Kim 
104a9f12690SJung-uk Kim void
105a9f12690SJung-uk Kim AcpiTbTerminate (
106a9f12690SJung-uk Kim     void);
107a9f12690SJung-uk Kim 
108a9f12690SJung-uk Kim ACPI_STATUS
109a9f12690SJung-uk Kim AcpiTbDeleteNamespaceByOwner (
110a9f12690SJung-uk Kim     UINT32                  TableIndex);
111a9f12690SJung-uk Kim 
112a9f12690SJung-uk Kim ACPI_STATUS
113a9f12690SJung-uk Kim AcpiTbAllocateOwnerId (
114a9f12690SJung-uk Kim     UINT32                  TableIndex);
115a9f12690SJung-uk Kim 
116a9f12690SJung-uk Kim ACPI_STATUS
117a9f12690SJung-uk Kim AcpiTbReleaseOwnerId (
118a9f12690SJung-uk Kim     UINT32                  TableIndex);
119a9f12690SJung-uk Kim 
120a9f12690SJung-uk Kim ACPI_STATUS
121a9f12690SJung-uk Kim AcpiTbGetOwnerId (
122a9f12690SJung-uk Kim     UINT32                  TableIndex,
123a9f12690SJung-uk Kim     ACPI_OWNER_ID           *OwnerId);
124a9f12690SJung-uk Kim 
125a9f12690SJung-uk Kim BOOLEAN
126a9f12690SJung-uk Kim AcpiTbIsTableLoaded (
127a9f12690SJung-uk Kim     UINT32                  TableIndex);
128a9f12690SJung-uk Kim 
129a9f12690SJung-uk Kim void
130a9f12690SJung-uk Kim AcpiTbSetTableLoadedFlag (
131a9f12690SJung-uk Kim     UINT32                  TableIndex,
132a9f12690SJung-uk Kim     BOOLEAN                 IsLoaded);
133a9f12690SJung-uk Kim 
134a9f12690SJung-uk Kim 
135a9f12690SJung-uk Kim /*
136a9f12690SJung-uk Kim  * tbutils - table manager utilities
137a9f12690SJung-uk Kim  */
138a9f12690SJung-uk Kim ACPI_STATUS
139a9f12690SJung-uk Kim AcpiTbInitializeFacs (
140a9f12690SJung-uk Kim     void);
141a9f12690SJung-uk Kim 
142a9f12690SJung-uk Kim BOOLEAN
143a9f12690SJung-uk Kim AcpiTbTablesLoaded (
144a9f12690SJung-uk Kim     void);
145a9f12690SJung-uk Kim 
146a9f12690SJung-uk Kim void
147a9f12690SJung-uk Kim AcpiTbPrintTableHeader(
148a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
149a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Header);
150a9f12690SJung-uk Kim 
151a9f12690SJung-uk Kim UINT8
152a9f12690SJung-uk Kim AcpiTbChecksum (
153a9f12690SJung-uk Kim     UINT8                   *Buffer,
154a9f12690SJung-uk Kim     UINT32                  Length);
155a9f12690SJung-uk Kim 
156a9f12690SJung-uk Kim ACPI_STATUS
157a9f12690SJung-uk Kim AcpiTbVerifyChecksum (
158a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
159a9f12690SJung-uk Kim     UINT32                  Length);
160a9f12690SJung-uk Kim 
161a9f12690SJung-uk Kim void
1628c8be05fSJung-uk Kim AcpiTbCheckDsdtHeader (
1638c8be05fSJung-uk Kim     void);
1648c8be05fSJung-uk Kim 
1658c8be05fSJung-uk Kim ACPI_TABLE_HEADER *
1668c8be05fSJung-uk Kim AcpiTbCopyDsdt (
1678c8be05fSJung-uk Kim     UINT32                  TableIndex);
1688c8be05fSJung-uk Kim 
1698c8be05fSJung-uk Kim void
170a9f12690SJung-uk Kim AcpiTbInstallTable (
171a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
172a9f12690SJung-uk Kim     char                    *Signature,
173a9f12690SJung-uk Kim     UINT32                  TableIndex);
174a9f12690SJung-uk Kim 
175a9f12690SJung-uk Kim ACPI_STATUS
176a9f12690SJung-uk Kim AcpiTbParseRootTable (
177a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   RsdpAddress);
178a9f12690SJung-uk Kim 
179a9f12690SJung-uk Kim #endif /* __ACTABLES_H__ */
180