ReactOS 0.4.17-dev-684-ga6524ef
tables.h
Go to the documentation of this file.
1#pragma once
2
3#include <uacpi/types.h>
4#include <uacpi/status.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10// Forward-declared to avoid including the entire acpi.h here
11struct acpi_fadt;
12struct acpi_entry_hdr;
13struct acpi_sdt_hdr;
14
17
18 // if oemid[0] == 0 this field is ignored
19 char oemid[6];
20
21 // if oem_table_id[0] == 0 this field is ignored
22 char oem_table_id[8];
24
25typedef struct uacpi_table {
26 union {
28 void *ptr;
29 struct acpi_sdt_hdr *hdr;
30 };
31
32 // Index number used to identify this table internally
35
42
54 void*, uacpi_table *out_table
55);
58);
59
60#ifndef UACPI_BAREBONES_MODE
65#endif // !UACPI_BAREBONES_MODE
66
95 const uacpi_char *signature, uacpi_table *out_table
96);
99);
101 const uacpi_char *signature, uacpi_size nth, uacpi_table *out_table
102);
103
105 uacpi_table *in_out_table
106);
108 const uacpi_table_identifiers *id, uacpi_table *out_table
109);
110
121
130
137uacpi_status uacpi_table_fadt(struct acpi_fadt**);
138
140 // Allow the table to be installed as-is
142
149
155
162
164 (struct acpi_sdt_hdr *hdr, uacpi_u64 *out_override_address);
165
174);
175
176typedef enum uacpi_table_origin {
182
189
194
200
201typedef struct uacpi_table_info {
206
211
212 union {
218
227 };
228
233
238
243#define UACPI_TABLE_LOADED (1 << 0)
244
249#define UACPI_TABLE_CSUM_CHECKED (1 << 1)
250
257#define UACPI_TABLE_CSUM_BAD (1 << 2)
258
263
269
272
286);
287
288/*
289 * Retrieve information about the table installed internally at 'idx'.
290 *
291 * The number of available tables can be retrieved via uacpi_table_count().
292 */
295);
296
298 (uacpi_handle, struct acpi_entry_hdr*);
299
317 struct acpi_sdt_hdr *hdr, size_t hdr_size,
319);
320
321#ifdef __cplusplus
322}
323#endif
void user(int argc, const char *argv[])
Definition: cmds.c:1350
unsigned int idx
Definition: utils.c:41
static MonoProfilerRuntimeShutdownBeginCallback cb
Definition: metahost.c:118
UINT(* handler)(MSIPACKAGE *)
Definition: action.c:7512
size_t uacpi_size
Definition: types.h:37
uint64_t uacpi_u64
Definition: types.h:22
char uacpi_char
Definition: types.h:44
uint16_t uacpi_u16
Definition: types.h:20
uint8_t uacpi_u8
Definition: types.h:19
uacpi_uintptr uacpi_virt_addr
Definition: types.h:36
uacpi_status
Definition: status.h:10
void * uacpi_handle
Definition: types.h:21
uacpi_iteration_decision
Definition: types.h:28
uacpi_u64 uacpi_phys_addr
Definition: types.h:17
GLintptr offset
Definition: glext.h:5920
GLuint index
Definition: glext.h:6031
char hdr[14]
Definition: iptest.cpp:33
uacpi_object_name signature
Definition: tables.h:16
char oem_table_id[8]
Definition: tables.h:22
uacpi_u16 reference_count
Definition: tables.h:267
uacpi_u8 origin
Definition: tables.h:237
void * virt_addr
Definition: tables.h:226
uacpi_phys_addr phys_addr
Definition: tables.h:217
uacpi_size size
Definition: tables.h:210
uacpi_size idx
Definition: tables.h:205
uacpi_u8 flags
Definition: tables.h:262
void * ptr
Definition: tables.h:28
struct acpi_sdt_hdr * hdr
Definition: tables.h:29
uacpi_virt_addr virt_addr
Definition: tables.h:27
uacpi_size index
Definition: tables.h:33
uacpi_status uacpi_for_each_table(uacpi_table_iteration_callback, void *user)
Definition: tables.c:658
uacpi_iteration_decision(* uacpi_subtable_iteration_callback)(uacpi_handle, struct acpi_entry_hdr *)
Definition: tables.h:298
uacpi_status uacpi_table_find(const uacpi_table_identifiers *id, uacpi_table *out_table)
Definition: tables.c:1178
uacpi_status uacpi_table_ref(uacpi_table *)
Definition: tables.c:1343
uacpi_status uacpi_table_load(uacpi_size index)
Definition: tables.c:1303
uacpi_status uacpi_table_find_next_with_same_signature(uacpi_table *in_out_table)
Definition: tables.c:1160
uacpi_table_installation_disposition
Definition: tables.h:139
@ UACPI_TABLE_INSTALLATION_DISPOSITON_DENY
Definition: tables.h:148
@ UACPI_TABLE_INSTALLATION_DISPOSITON_PHYSICAL_OVERRIDE
Definition: tables.h:160
@ UACPI_TABLE_INSTALLATION_DISPOSITON_VIRTUAL_OVERRIDE
Definition: tables.h:154
@ UACPI_TABLE_INSTALLATION_DISPOSITON_ALLOW
Definition: tables.h:141
uacpi_status uacpi_table_ref_by_index(uacpi_size)
Definition: tables.c:1334
uacpi_status uacpi_table_find_by_signature_at(const uacpi_char *signature, uacpi_size offset, uacpi_table *out_table)
Definition: tables.c:1139
uacpi_status uacpi_table_info_get_by_index(uacpi_size idx, uacpi_table_info *out_info)
Definition: tables.c:630
uacpi_status uacpi_table_install(void *, uacpi_table *out_table)
Definition: tables.c:951
uacpi_status uacpi_table_unref_by_index(uacpi_size)
Definition: tables.c:1348
uacpi_status uacpi_table_unref(uacpi_table *)
Definition: tables.c:1357
uacpi_status uacpi_table_find_by_signature(const uacpi_char *signature, uacpi_table *out_table)
Definition: tables.c:1153
uacpi_size uacpi_table_count(void)
Definition: tables.c:211
uacpi_status uacpi_for_each_subtable(struct acpi_sdt_hdr *hdr, size_t hdr_size, uacpi_subtable_iteration_callback cb, void *user)
Definition: tables.c:1600
uacpi_table_installation_disposition(* uacpi_table_installation_handler)(struct acpi_sdt_hdr *hdr, uacpi_u64 *out_override_address)
Definition: tables.h:164
uacpi_status uacpi_table_install_physical(uacpi_phys_addr, uacpi_table *out_table)
Definition: tables.c:960
uacpi_iteration_decision(* uacpi_table_iteration_callback)(uacpi_handle, uacpi_table_info *info)
Definition: tables.h:271
uacpi_status uacpi_table_fadt(struct acpi_fadt **)
Definition: tables.c:1589
uacpi_status uacpi_set_table_installation_handler(uacpi_table_installation_handler handler)
Definition: tables.c:392
uacpi_status uacpi_table_get_by_index(uacpi_size, uacpi_table *out_table)
Definition: tables.c:1318
uacpi_table_origin
Definition: tables.h:176
@ UACPI_TABLE_ORIGIN_HOST_VIRTUAL
Definition: tables.h:198
@ UACPI_TABLE_ORIGIN_HOST_PHYSICAL
Definition: tables.h:193
@ UACPI_TABLE_ORIGIN_FIRMWARE_PHYSICAL
Definition: tables.h:181
@ UACPI_TABLE_ORIGIN_FIRMWARE_VIRTUAL
Definition: tables.h:188
uacpi_status uacpi_table_find_nth_by_signature(const uacpi_char *signature, uacpi_size nth, uacpi_table *out_table)
Definition: tables.c:1146