class Manager

Defined at line 32 of file ../../src/devices/board/lib/acpi/manager.h

Class that manages ACPI device discovery and publishing.

Public Methods

acpi::status<> DiscoverDevices ()

Walk the ACPI tree, keeping track of each device that's found.

Defined at line 26 of file ../../src/devices/board/lib/acpi/manager.cc

void Manager (Acpi * acpi, iommu::IommuManagerInterface * iommu, zx_device_t * acpi_root)

Construct a new manager.

|acpi| should be a pointer to the ACPI implementation to use. The caller keeps ownership and

must ensure it outlives the manager.

|iommu| should be a pointer to the IOMMU manager implementation. The caller keeps ownership and

must ensure it outlives the manager.

|acpi_root| is a pointer to the device that will be the parent of all other ACPI devices. It

should be owned by the DDK, and must outlive the manager.

Defined at line 41 of file ../../src/devices/board/lib/acpi/manager.h

void ~Manager ()

Defined at line 44 of file ../../src/devices/board/lib/acpi/manager.h

uint32_t GetNextBtiId ()

For devices: get the next unique BTI ID.

Defined at line 54 of file ../../src/devices/board/lib/acpi/manager.h

acpi::status<> ConfigureDiscoveredDevices ()

Infer information about devices based on their relationships.

Defined at line 72 of file ../../src/devices/board/lib/acpi/manager.cc

Acpi * acpi ()

Defined at line 73 of file ../../src/devices/board/lib/acpi/manager.h

zx_device_t * acpi_root ()

Defined at line 74 of file ../../src/devices/board/lib/acpi/manager.h

iommu::IommuManagerInterface * iommu_manager ()

Defined at line 75 of file ../../src/devices/board/lib/acpi/manager.h

acpi::status<> PublishDevices (zx_device_t * platform_bus, async_dispatcher_t * device_dispatcher)

Publish devices to driver manager.

Defined at line 118 of file ../../src/devices/board/lib/acpi/manager.cc

uint32_t GetNextCompositeId (std::string composite)

Get next unique ID for the enumerated composite.

Defined at line 143 of file ../../src/devices/board/lib/acpi/manager.cc

const PowerResource * AddPowerResource (ACPI_HANDLE power_resource_handle)

Used by a device to inform the manager about the existence of a power resource.

Defined at line 149 of file ../../src/devices/board/lib/acpi/manager.cc

zx_status_t ReferencePowerResources (const std::vector<ACPI_HANDLE> & power_resource_handles)

Used by a device to declare that it requires a list of power resources to be on.

The list of power resources should be sorted by ascending resource_order.

Defined at line 164 of file ../../src/devices/board/lib/acpi/manager.cc

zx_status_t DereferencePowerResources (const std::vector<ACPI_HANDLE> & power_resource_handles)

Used by a device to declare that it no longer requires a list of power resources to be on.

The list of power resources should be sorted by ascending resource_order.

Defined at line 187 of file ../../src/devices/board/lib/acpi/manager.cc

DeviceBuilder * LookupDevice (ACPI_HANDLE handle)

For internal and unit test use only.

Defined at line 327 of file ../../src/devices/board/lib/acpi/manager.cc

Friends

class AcpiHostTest