Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
acpi.h File Reference
#include <acpica/source/include/acpi.h>
#include <zephyr/drivers/pcie/pcie.h>

Go to the source code of this file.

Data Structures

struct  acpi_dev
 
union  acpi_dmar_id
 
struct  acpi_mcfg
 

Macros

#define ACPI_RES_INVALID   ACPI_RESOURCE_TYPE_MAX
 
#define ACPI_DRHD_FLAG_INCLUDE_PCI_ALL   BIT(0)
 
#define ACPI_DMAR_FLAG_INTR_REMAP   BIT(0)
 
#define ACPI_DMAR_FLAG_X2APIC_OPT_OUT   BIT(1)
 
#define ACPI_DMAR_FLAG_DMA_CTRL_PLATFORM_OPT_IN   BIT(2)
 

Functions

uint32_t acpi_legacy_irq_get (pcie_bdf_t bdf)
 Retrieve a legacy interrupt number for a PCI device.
 
int acpi_current_resource_get (char *dev_name, ACPI_RESOURCE **res)
 Retrieve the current resource settings of a device.
 
int acpi_possible_resource_get (char *dev_name, ACPI_RESOURCE **res)
 Retrieve possible resource settings of a device.
 
int acpi_current_resource_free (ACPI_RESOURCE *res)
 Free current resource list memory which is retrieved by acpi_current_resource_get().
 
int acpi_get_irq_routing_table (char *bus_name, ACPI_PCI_ROUTING_TABLE *rt_table, size_t rt_size)
 Retrieve IRQ routing table of a bus.
 
ACPI_RESOURCE * acpi_resource_parse (ACPI_RESOURCE *res, int res_type)
 Parse resource table for a given resource type.
 
struct acpi_devacpi_device_get (char *hid, int inst)
 Retrieve acpi device info for given hardware id and unique id.
 
struct acpi_devacpi_device_by_index_get (int index)
 Retrieve acpi device info from the index.
 
static ACPI_RESOURCE_IRQ * acpi_irq_res_get (ACPI_RESOURCE *res_lst)
 Parse resource table for irq info.
 
int acpi_device_type_get (ACPI_RESOURCE *res)
 Parse resource table for identify resource type.
 
void * acpi_table_get (char *signature, int inst)
 Retrieve acpi table for the given signature.
 
int acpi_madt_entry_get (int type, struct acpi_subtable_header **tables, int *num_inst)
 retrieve acpi MAD table for the given type.
 
int acpi_dmar_entry_get (enum AcpiDmarType type, struct acpi_subtable_header **tables)
 retrieve DMA remapping structure for the given type.
 
int acpi_drhd_get (enum AcpiDmarScopeType scope, struct acpi_dmar_device_scope *dev_scope, union acpi_dmar_id *dmar_id, int *num_inst, int max_inst)
 retrieve acpi DRHD info for the given scope.
 
struct acpi_madt_local_apic * acpi_local_apic_get (uint32_t cpu_num)
 Retrieve lapic info for a specific cpu.
 

Macro Definition Documentation

◆ ACPI_DMAR_FLAG_DMA_CTRL_PLATFORM_OPT_IN

#define ACPI_DMAR_FLAG_DMA_CTRL_PLATFORM_OPT_IN   BIT(2)

◆ ACPI_DMAR_FLAG_INTR_REMAP

#define ACPI_DMAR_FLAG_INTR_REMAP   BIT(0)

◆ ACPI_DMAR_FLAG_X2APIC_OPT_OUT

#define ACPI_DMAR_FLAG_X2APIC_OPT_OUT   BIT(1)

◆ ACPI_DRHD_FLAG_INCLUDE_PCI_ALL

#define ACPI_DRHD_FLAG_INCLUDE_PCI_ALL   BIT(0)

◆ ACPI_RES_INVALID

#define ACPI_RES_INVALID   ACPI_RESOURCE_TYPE_MAX

Function Documentation

◆ acpi_current_resource_free()

int acpi_current_resource_free ( ACPI_RESOURCE *  res)

Free current resource list memory which is retrieved by acpi_current_resource_get().

Parameters
resthe list of acpi resource list
Returns
return 0 on success or error code

◆ acpi_current_resource_get()

int acpi_current_resource_get ( char *  dev_name,
ACPI_RESOURCE **  res 
)

Retrieve the current resource settings of a device.

Parameters
dev_namethe name of the device
resthe list of acpi resource list
Returns
return 0 on success or error code

◆ acpi_device_by_index_get()

struct acpi_dev * acpi_device_by_index_get ( int  index)

Retrieve acpi device info from the index.

Parameters
indexthe device index of an acpi child device
Returns
acpi child device info on success or NULL

◆ acpi_device_get()

struct acpi_dev * acpi_device_get ( char *  hid,
int  inst 
)

Retrieve acpi device info for given hardware id and unique id.

Parameters
hidthe hardware id of the acpi child device
instthe unique id of the acpi child device
Returns
acpi child device info on success or NULL

◆ acpi_device_type_get()

int acpi_device_type_get ( ACPI_RESOURCE *  res)

Parse resource table for identify resource type.

Parameters
resthe list of acpi resource list
Returns
resource type on success or invalid resource type

◆ acpi_dmar_entry_get()

int acpi_dmar_entry_get ( enum AcpiDmarType  type,
struct acpi_subtable_header **  tables 
)

retrieve DMA remapping structure for the given type.

Parameters
typetype of remapping structure
tablespointer to the dmar id structure
Returns
return 0 on success or error code

◆ acpi_drhd_get()

int acpi_drhd_get ( enum AcpiDmarScopeType  scope,
struct acpi_dmar_device_scope *  dev_scope,
union acpi_dmar_id dmar_id,
int *  num_inst,
int  max_inst 
)

retrieve acpi DRHD info for the given scope.

Parameters
scopescope of requested DHRD table
dev_scopepointer to the sub table (optional)
dmar_idpointer to the DHRD info
num_instnumber of instance for the requested table
max_instmaximum number of entry for the given dmar_id buffer
Returns
return 0 on success or error code

◆ acpi_get_irq_routing_table()

int acpi_get_irq_routing_table ( char *  bus_name,
ACPI_PCI_ROUTING_TABLE *  rt_table,
size_t  rt_size 
)

Retrieve IRQ routing table of a bus.

Parameters
bus_namethe name of the bus
rt_tablethe IRQ routing table
rt_sizethe the size of IRQ routing table
Returns
return 0 on success or error code

◆ acpi_irq_res_get()

static ACPI_RESOURCE_IRQ * acpi_irq_res_get ( ACPI_RESOURCE *  res_lst)
inlinestatic

Parse resource table for irq info.

Parameters
res_lstthe list of acpi resource list
Returns
irq resource list on success or NULL

◆ acpi_legacy_irq_get()

uint32_t acpi_legacy_irq_get ( pcie_bdf_t  bdf)

Retrieve a legacy interrupt number for a PCI device.

Parameters
bdfthe BDF of endpoint/PCI device
Returns
return IRQ number or UINT_MAX if not found

◆ acpi_local_apic_get()

struct acpi_madt_local_apic * acpi_local_apic_get ( uint32_t  cpu_num)

Retrieve lapic info for a specific cpu.

Parameters
cpu_numthe cpu number
Returns
lapic info on success or NULL

◆ acpi_madt_entry_get()

int acpi_madt_entry_get ( int  type,
struct acpi_subtable_header **  tables,
int *  num_inst 
)

retrieve acpi MAD table for the given type.

Parameters
typetype of requested MAD table
tablespointer to the MAD table
num_instnumber of instance for the requested table
Returns
return 0 on success or error code

◆ acpi_possible_resource_get()

int acpi_possible_resource_get ( char *  dev_name,
ACPI_RESOURCE **  res 
)

Retrieve possible resource settings of a device.

Parameters
dev_namethe name of the device
resthe list of acpi resource list
Returns
return 0 on success or error code

◆ acpi_resource_parse()

ACPI_RESOURCE * acpi_resource_parse ( ACPI_RESOURCE *  res,
int  res_type 
)

Parse resource table for a given resource type.

Parameters
resthe list of acpi resource list
res_typethe acpi resource type
Returns
resource list for the given type on success or NULL

◆ acpi_table_get()

void * acpi_table_get ( char *  signature,
int  inst 
)

Retrieve acpi table for the given signature.

Parameters
signaturepointer to the 4-character ACPI signature for the requested table
instinstance number for the requested table
Returns
acpi_table pointer to the acpi table on success else return NULL