ReactOS 0.4.17-dev-684-ga6524ef
tables.h File Reference
#include <uacpi/types.h>
#include <uacpi/status.h>
Include dependency graph for tables.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uacpi_table_identifiers
 
struct  uacpi_table
 
struct  uacpi_table_info
 

Macros

#define UACPI_TABLE_LOADED   (1 << 0)
 
#define UACPI_TABLE_CSUM_CHECKED   (1 << 1)
 
#define UACPI_TABLE_CSUM_BAD   (1 << 2)
 

Typedefs

typedef struct uacpi_table_identifiers uacpi_table_identifiers
 
typedef struct uacpi_table uacpi_table
 
typedef enum uacpi_table_installation_disposition uacpi_table_installation_disposition
 
typedef uacpi_table_installation_disposition(* uacpi_table_installation_handler) (struct acpi_sdt_hdr *hdr, uacpi_u64 *out_override_address)
 
typedef enum uacpi_table_origin uacpi_table_origin
 
typedef struct uacpi_table_info uacpi_table_info
 
typedef uacpi_iteration_decision(* uacpi_table_iteration_callback) (uacpi_handle, uacpi_table_info *info)
 
typedef uacpi_iteration_decision(* uacpi_subtable_iteration_callback) (uacpi_handle, struct acpi_entry_hdr *)
 

Enumerations

enum  uacpi_table_installation_disposition { UACPI_TABLE_INSTALLATION_DISPOSITON_ALLOW = 0 , UACPI_TABLE_INSTALLATION_DISPOSITON_DENY , UACPI_TABLE_INSTALLATION_DISPOSITON_VIRTUAL_OVERRIDE , UACPI_TABLE_INSTALLATION_DISPOSITON_PHYSICAL_OVERRIDE }
 
enum  uacpi_table_origin { UACPI_TABLE_ORIGIN_FIRMWARE_PHYSICAL = 1 << 0 , UACPI_TABLE_ORIGIN_FIRMWARE_VIRTUAL = 1 << 1 , UACPI_TABLE_ORIGIN_HOST_PHYSICAL = 1 << 2 , UACPI_TABLE_ORIGIN_HOST_VIRTUAL = 1 << 3 }
 

Functions

uacpi_size uacpi_table_count (void)
 
uacpi_status uacpi_table_install (void *, uacpi_table *out_table)
 
uacpi_status uacpi_table_install_physical (uacpi_phys_addr, uacpi_table *out_table)
 
uacpi_status uacpi_table_load (uacpi_size index)
 
uacpi_status uacpi_table_find_by_signature (const uacpi_char *signature, uacpi_table *out_table)
 
uacpi_status uacpi_table_find_by_signature_at (const uacpi_char *signature, uacpi_size offset, uacpi_table *out_table)
 
uacpi_status uacpi_table_find_nth_by_signature (const uacpi_char *signature, uacpi_size nth, uacpi_table *out_table)
 
uacpi_status uacpi_table_find_next_with_same_signature (uacpi_table *in_out_table)
 
uacpi_status uacpi_table_find (const uacpi_table_identifiers *id, uacpi_table *out_table)
 
uacpi_status uacpi_table_get_by_index (uacpi_size, uacpi_table *out_table)
 
uacpi_status uacpi_table_ref (uacpi_table *)
 
uacpi_status uacpi_table_ref_by_index (uacpi_size)
 
uacpi_status uacpi_table_unref (uacpi_table *)
 
uacpi_status uacpi_table_unref_by_index (uacpi_size)
 
uacpi_status uacpi_table_fadt (struct acpi_fadt **)
 
uacpi_status uacpi_set_table_installation_handler (uacpi_table_installation_handler handler)
 
uacpi_status uacpi_for_each_table (uacpi_table_iteration_callback, void *user)
 
uacpi_status uacpi_table_info_get_by_index (uacpi_size idx, uacpi_table_info *out_info)
 
uacpi_status uacpi_for_each_subtable (struct acpi_sdt_hdr *hdr, size_t hdr_size, uacpi_subtable_iteration_callback cb, void *user)
 

Macro Definition Documentation

◆ UACPI_TABLE_CSUM_BAD

#define UACPI_TABLE_CSUM_BAD   (1 << 2)

This table's checksum was found to be incorrect. Note that if UACPI_FLAG_PROACTIVE_TBL_CSUM is enabled alongside UACPI_FLAG_BAD_CSUM_FATAL, such tables are never installed in the first place.

Definition at line 257 of file tables.h.

◆ UACPI_TABLE_CSUM_CHECKED

#define UACPI_TABLE_CSUM_CHECKED   (1 << 1)

This table's checksum has been checked. The checksum is valid if UACPI_TABLE_CSUM_BAD is not set.

Definition at line 249 of file tables.h.

◆ UACPI_TABLE_LOADED

#define UACPI_TABLE_LOADED   (1 << 0)

This table has been processed & loaded by the AML interpreter. Only applicable for AML bytecode tables.

Definition at line 243 of file tables.h.

Typedef Documentation

◆ uacpi_subtable_iteration_callback

typedef uacpi_iteration_decision(* uacpi_subtable_iteration_callback) (uacpi_handle, struct acpi_entry_hdr *)

Definition at line 297 of file tables.h.

◆ uacpi_table

◆ uacpi_table_identifiers

◆ uacpi_table_info

◆ uacpi_table_installation_disposition

◆ uacpi_table_installation_handler

typedef uacpi_table_installation_disposition(* uacpi_table_installation_handler) (struct acpi_sdt_hdr *hdr, uacpi_u64 *out_override_address)

Definition at line 163 of file tables.h.

◆ uacpi_table_iteration_callback

typedef uacpi_iteration_decision(* uacpi_table_iteration_callback) (uacpi_handle, uacpi_table_info *info)

Definition at line 270 of file tables.h.

◆ uacpi_table_origin

Enumeration Type Documentation

◆ uacpi_table_installation_disposition

Enumerator
UACPI_TABLE_INSTALLATION_DISPOSITON_ALLOW 
UACPI_TABLE_INSTALLATION_DISPOSITON_DENY 

Deny the table from being installed completely. This is useful for debugging various problems, e.g. AML loading bad SSDTs that cause the system to hang or enter an undesired state.

UACPI_TABLE_INSTALLATION_DISPOSITON_VIRTUAL_OVERRIDE 

Override the table being installed with the table at the virtual address returned in 'out_override_address'.

UACPI_TABLE_INSTALLATION_DISPOSITON_PHYSICAL_OVERRIDE 

Override the table being installed with the table at the physical address returned in 'out_override_address'.

Definition at line 139 of file tables.h.

139 {
140 // Allow the table to be installed as-is
142
149
155
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_table_origin

Enumerator
UACPI_TABLE_ORIGIN_FIRMWARE_PHYSICAL 

A table that originated from a physical address provided by the firmware. All tables discovered via RSDP have this origin.

UACPI_TABLE_ORIGIN_FIRMWARE_VIRTUAL 

A table that was dynamically loaded by the AML firmware. This includes both Load/LoadTable opcodes. Such tables live in a heap-allocated kernel buffer.

UACPI_TABLE_ORIGIN_HOST_PHYSICAL 

A table installed by the client code via uacpi_table_install_physical().

UACPI_TABLE_ORIGIN_HOST_VIRTUAL 

A table installed by the client code via uacpi_table_install().

Definition at line 176 of file tables.h.

176 {
182
189
194
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

Function Documentation

◆ uacpi_for_each_subtable()

uacpi_status uacpi_for_each_subtable ( struct acpi_sdt_hdr *  hdr,
size_t  hdr_size,
uacpi_subtable_iteration_callback  cb,
void user 
)

Iterate every subtable of a table such as MADT or SRAT.

'hdr' is the pointer to the main table, 'hdr_size' is the number of bytes in the table before the beginning of the subtable records. 'cb' is the callback invoked for each subtable with the 'user' context pointer passed for every invocation.

Example usage: uacpi_table tbl;

uacpi_table_find_by_signature(ACPI_MADT_SIGNATURE, &tbl); uacpi_for_each_subtable( tbl.hdr, sizeof(struct acpi_madt), parse_madt, NULL );

Definition at line 1600 of file tables.c.

1604{
1605 void *cursor;
1606 size_t bytes_left;
1607
1608 cursor = UACPI_PTR_ADD(hdr, hdr_size);
1609 bytes_left = hdr->length - hdr_size;
1610
1611 if (uacpi_unlikely(bytes_left > hdr->length))
1613
1614 while (bytes_left > sizeof(struct acpi_entry_hdr)) {
1615 struct acpi_entry_hdr *subtable_hdr = cursor;
1616
1617 if (uacpi_unlikely(subtable_hdr->length > bytes_left ||
1618 subtable_hdr->length < sizeof(*subtable_hdr))) {
1620 "corrupted '%.4s' subtable length: %u (%zu bytes left)",
1621 hdr->signature, subtable_hdr->length, bytes_left
1622 );
1624 }
1625
1626 switch (cb(user, subtable_hdr)) {
1628 break;
1630 return UACPI_STATUS_OK;
1631 default:
1633 }
1634
1635 cursor = UACPI_PTR_ADD(cursor, subtable_hdr->length);
1636 bytes_left -= subtable_hdr->length;
1637 }
1638
1639 if (uacpi_unlikely(bytes_left != 0)) {
1640 uacpi_warn(
1641 "found %zu stray bytes in table '%.4s'",
1642 bytes_left, hdr->signature
1643 );
1644 }
1645
1646 return UACPI_STATUS_OK;
1647}
void user(int argc, const char *argv[])
Definition: cmds.c:1350
static MonoProfilerRuntimeShutdownBeginCallback cb
Definition: metahost.c:118
#define uacpi_error(...)
Definition: log.h:36
#define uacpi_warn(...)
Definition: log.h:35
#define uacpi_unlikely(expr)
Definition: compiler.h:88
@ UACPI_STATUS_INVALID_ARGUMENT
Definition: status.h:18
@ UACPI_STATUS_INVALID_TABLE_LENGTH
Definition: status.h:16
@ UACPI_STATUS_OK
Definition: status.h:11
@ UACPI_ITERATION_DECISION_BREAK
Definition: types.h:30
@ UACPI_ITERATION_DECISION_CONTINUE
Definition: types.h:29
const char cursor[]
Definition: icontest.c:13
#define UACPI_PTR_ADD(ptr, value)
Definition: utilities.h:23
char hdr[14]
Definition: iptest.cpp:33

◆ uacpi_for_each_table()

uacpi_status uacpi_for_each_table ( uacpi_table_iteration_callback  cb,
void user 
)

Iterate every installed table on the system.

The provided callback receives the information about each table in the 'info' pointer. A table may be mapped by client code if needed via uacpi_table_get_by_index().

Note that this is a low level helper that iterates every installed table, even tables that are unreachable via uacpi_table_find() etc. due to bad checksum.

Definition at line 658 of file tables.c.

661{
663 uacpi_size num_tables, i = 0;
665
667
668 for (;;) {
671 return ret;
672
673 // Number of tables may have increased while we were in the callback
674 num_tables = table_array_size(&tables);
675 if (i >= num_tables) {
677 return ret;
678 }
679
681
684 return ret;
685
687 break;
688
689 i++;
690 }
691
692 return UACPI_STATUS_OK;
693}
static uacpi_status uacpi_acquire_native_mutex_may_be_null(uacpi_handle mtx)
Definition: mutex.h:34
static uacpi_status uacpi_release_native_mutex_may_be_null(uacpi_handle mtx)
Definition: mutex.h:44
size_t uacpi_size
Definition: types.h:37
#define uacpi_unlikely_error(expr)
Definition: status.h:49
uacpi_status
Definition: status.h:10
return ret
Definition: mutex.c:147
#define ENSURE_TABLES_ONLINE()
Definition: tables.c:29
static void table_info_by_index_unchecked(uacpi_size idx, uacpi_table_info *out_info)
Definition: tables.c:604
struct nls_table * tables
Definition: nls_base.c:22
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248

◆ uacpi_set_table_installation_handler()

uacpi_status uacpi_set_table_installation_handler ( uacpi_table_installation_handler  handler)

Set a handler that is invoked for each table before it gets installed.

Depending on the return value, the table is either allowed to be installed as-is, denied, or overriden with a new one.

Definition at line 392 of file tables.c.

395{
397
400 return ret;
401
402 if (installation_handler != UACPI_NULL && handler != UACPI_NULL)
403 goto out;
404
405 installation_handler = handler;
406
407out:
409 return ret;
410}
UINT(* handler)(MSIPACKAGE *)
Definition: action.c:7512
#define UACPI_NULL
Definition: types.h:33
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

◆ uacpi_table_count()

uacpi_size uacpi_table_count ( void  )

Returns the number of tables stored in the internal array via 'out_count'. This includes all firmware-provided, dynamically loaded, as well as client-installed tables via 'uacpi_table_install' etc.

Definition at line 211 of file tables.c.

212{
213 return table_array_size(&tables);
214}

◆ uacpi_table_fadt()

uacpi_status uacpi_table_fadt ( struct acpi_fadt **  out_fadt)

Returns the pointer to a sanitized internal version of FADT.

The revision is guaranteed to be correct. All of the registers are converted to GAS format. Fields that might contain garbage are cleared.

Definition at line 1589 of file tables.c.

1590{
1592
1593 if (!fadt_available)
1595
1596 *out_fadt = &g_uacpi_rt_ctx.fadt;
1597 return UACPI_STATUS_OK;
1598}
struct uacpi_runtime_context g_uacpi_rt_ctx
Definition: uacpi.c:17
@ UACPI_STATUS_NOT_FOUND
Definition: status.h:17

◆ uacpi_table_find()

uacpi_status uacpi_table_find ( const uacpi_table_identifiers id,
uacpi_table out_table 
)

Definition at line 1178 of file tables.c.

1181{
1183
1184 return find_table(0, 0, id, out_table);
1185}
static uacpi_status find_table(uacpi_size idx, uacpi_size nth, const uacpi_table_identifiers *id, uacpi_table *out_table)
Definition: tables.c:1101

Referenced by handle_create_data_region(), and handle_load_table().

◆ uacpi_table_find_by_signature()

uacpi_status uacpi_table_find_by_signature ( const uacpi_char signature,
uacpi_table out_table 
)

Helpers for finding tables.

for find_by_signature: 'signature' is an array of 4 characters, a null terminator is not necessary and can be omitted (especially useful for non-C language bindings)

for find_by_signature_at: 'offset' specifies the base index in the internal array where to start searching for the table

for find_nth_by_signature: This works exactly like find_by_signature, but finds the nth copy of the specified table in the firmware enumeration order

'out_table' is a pointer to a caller allocated uacpi_table structure that receives the table pointer & its internal index in case the call was successful.

NOTE: The returned table's reference count is incremented by 1, which keeps its mapping alive forever unless uacpi_table_unref() is called for this table later on. Calling uacpi_table_find_next_with_same_signature() on a table also drops its reference count by 1, so if you want to keep it mapped you must manually call uacpi_table_ref() beforehand.

Definition at line 1153 of file tables.c.

1156{
1157 return find_table_by_signature(signature_string, 0, 0, out_table);
1158}
static uacpi_status find_table_by_signature(const uacpi_char *signature_string, uacpi_size idx, uacpi_size nth, uacpi_table *out_table)
Definition: tables.c:1122

Referenced by uacpi_namespace_load().

◆ uacpi_table_find_by_signature_at()

uacpi_status uacpi_table_find_by_signature_at ( const uacpi_char signature,
uacpi_size  offset,
uacpi_table out_table 
)

Definition at line 1139 of file tables.c.

1142{
1143 return find_table_by_signature(signature, idx, 0, out_table);
1144}
unsigned int idx
Definition: utils.c:41

◆ uacpi_table_find_next_with_same_signature()

uacpi_status uacpi_table_find_next_with_same_signature ( uacpi_table in_out_table)

Definition at line 1160 of file tables.c.

1163{
1164 struct uacpi_table_identifiers id = { 0 };
1165
1167
1168 if (uacpi_unlikely(in_out_table->ptr == UACPI_NULL))
1170
1171 uacpi_memcpy(&id.signature, in_out_table->hdr->signature,
1172 sizeof(id.signature));
1173 uacpi_table_unref(in_out_table);
1174
1175 return find_table(in_out_table->index + 1, 0, &id, in_out_table);
1176}
#define uacpi_memcpy
Definition: stdlib.h:34
uacpi_status uacpi_table_unref(uacpi_table *tbl)
Definition: tables.c:1357
GLuint id
Definition: glext.h:5910
void * ptr
Definition: tables.h:28
struct acpi_sdt_hdr * hdr
Definition: tables.h:29
uacpi_size index
Definition: tables.h:33

◆ uacpi_table_find_nth_by_signature()

uacpi_status uacpi_table_find_nth_by_signature ( const uacpi_char signature,
uacpi_size  nth,
uacpi_table out_table 
)

Definition at line 1146 of file tables.c.

1149{
1150 return find_table_by_signature(signature, 0, nth, out_table);
1151}

◆ uacpi_table_get_by_index()

uacpi_status uacpi_table_get_by_index ( uacpi_size  idx,
uacpi_table out_table 
)

Returns a table by its index in the internal table array.

The number of available tables can be queried via 'uacpi_table_count()'.

NOTE: Even if a table is present, this may still fail with UACPI_STATUS_BAD_CHECKSUM in case UACPI_FLAG_BAD_CSUM_FATAL is enabled.

Definition at line 1318 of file tables.c.

1319{
1321 struct table_ctl_request req = {
1323 };
1324
1325 ret = table_ctl(idx, &req);
1327 return ret;
1328
1329 out_table->ptr = req.out_tbl;
1330 out_table->index = idx;
1331 return UACPI_STATUS_OK;
1332}
#define TABLE_CTL_GET
Definition: tables.c:1191
static uacpi_status table_ctl(uacpi_size idx, struct table_ctl_request *req)
Definition: tables.c:1205
void * out_tbl
Definition: tables.c:1202
uacpi_u8 type
Definition: tables.c:1195

◆ uacpi_table_info_get_by_index()

uacpi_status uacpi_table_info_get_by_index ( uacpi_size  idx,
uacpi_table_info out_info 
)

Definition at line 630 of file tables.c.

633{
635
637
640 return ret;
641
642 if (uacpi_unlikely(table_array_size(&tables) <= idx)) {
644 "requested invalid table index %zu (%zu tables installed)",
645 idx, table_array_size(&tables)
646 );
648 goto out;
649 }
650
652
653out:
655 return ret;
656}

◆ uacpi_table_install()

uacpi_status uacpi_table_install ( void virt,
uacpi_table out_table 
)

Install a table from either a virtual or a physical address. The table is simply stored in the internal table array, and not loaded by the interpreter (see uacpi_table_load).

The table is optionally returned via 'out_table'.

Manual calls to uacpi_table_install are not subject to filtering via the table installation callback (if any).

Definition at line 951 of file tables.c.

952{
954
956 virt, UACPI_TABLE_ORIGIN_HOST_VIRTUAL, out_table
957 );
958}
uacpi_status uacpi_table_install_with_origin(void *virt, enum uacpi_table_origin origin, uacpi_table *out_table)
Definition: tables.c:935

◆ uacpi_table_install_physical()

uacpi_status uacpi_table_install_physical ( uacpi_phys_addr  addr,
uacpi_table out_table 
)

Definition at line 960 of file tables.c.

963{
965
968 );
969}
uacpi_status uacpi_table_install_physical_with_origin(uacpi_phys_addr phys, enum uacpi_table_origin origin, uacpi_table *out_table)
Definition: tables.c:865
GLenum const GLvoid * addr
Definition: glext.h:9621

◆ uacpi_table_load()

uacpi_status uacpi_table_load ( uacpi_size  index)

Load a previously installed table by feeding it to the interpreter.

Definition at line 1303 of file tables.c.

1304{
1306}
uacpi_status uacpi_table_load_with_cause(uacpi_size idx, enum uacpi_table_load_cause cause)
Definition: tables.c:1280
@ UACPI_TABLE_LOAD_CAUSE_HOST
Definition: interpreter.h:13

◆ uacpi_table_ref()

uacpi_status uacpi_table_ref ( uacpi_table tbl)

Increment/decrement a table's reference count. The table is unmapped when the reference count drops to 0.

Definition at line 1343 of file tables.c.

1344{
1345 return uacpi_table_ref_by_index(tbl->index);
1346}
uacpi_status uacpi_table_ref_by_index(uacpi_size index)
Definition: tables.c:1334

◆ uacpi_table_ref_by_index()

uacpi_status uacpi_table_ref_by_index ( uacpi_size  index)

Definition at line 1334 of file tables.c.

1335{
1336 struct table_ctl_request req = {
1338 };
1339
1340 return table_ctl(index, &req);
1341}
GLuint index
Definition: glext.h:6031

Referenced by uacpi_table_ref().

◆ uacpi_table_unref()

uacpi_status uacpi_table_unref ( uacpi_table tbl)

Definition at line 1357 of file tables.c.

1358{
1359 return uacpi_table_unref_by_index(tbl->index);
1360}
uacpi_status uacpi_table_unref_by_index(uacpi_size index)
Definition: tables.c:1348

Referenced by free_op_region(), handle_load(), handle_load_table(), uacpi_namespace_load(), and uacpi_table_find_next_with_same_signature().

◆ uacpi_table_unref_by_index()

uacpi_status uacpi_table_unref_by_index ( uacpi_size  index)

Definition at line 1348 of file tables.c.

1349{
1350 struct table_ctl_request req = {
1352 };
1353
1354 return table_ctl(index, &req);
1355}
#define TABLE_CTL_PUT
Definition: tables.c:1192

Referenced by uacpi_table_unref().