template <>

class WireWeakAsyncClientImpl

Defined at line 4361 of file fidling/gen/sdk/fidl/fuchsia.hardware.acpi/fuchsia.hardware.acpi/cpp/fidl/fuchsia.hardware.acpi/cpp/wire_messaging.h

Public Methods

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::GetBusId> GetBusId ()

If ACPI has determined this device is a bus, returns the bus ID.

Errors:

* ZX_ERR_BAD_STATE - the device is not a bus as far as ACPI is aware.

Allocates 16 bytes of request buffer on the stack. The callback is stored on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::MapInterrupt> MapInterrupt (uint64_t index)

Get the interrupt at `index` for this device.

Errors:

* ZX_ERR_OUT_OF_RANGE - `index` is out of range.

* ZX_ERR_INVALID_ARGS - the interrupt type described by ACPI is unrecognised.

* ZX_ERR_INTERNAL - an internal error occured (e.g. failure to evaluate ACPI tables).

Allocates 24 bytes of request buffer on the stack. The callback is stored on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::GetPio> GetPio (uint32_t index)

Get the I/O port at `index` for this device.

Errors:

* ZX_ERR_OUT_OF_RANGE - `index` is out of range.

* ZX_ERR_INTERNAL - an internal error occured (e.g. failure to evaluate ACPI tables).

Allocates 24 bytes of request buffer on the stack. The callback is stored on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::GetMmio> GetMmio (uint32_t index)

Get the MMIO region at `index` for this device.

Errors:

* ZX_ERR_OUT_OF_RANGE - `index` is out of range.

* ZX_ERR_INTERNAL - an internal error occured (e.g. failure to evaluate ACPI tables).

* ZX_ERR_INVALID_ARGS - the MMIO region described by ACPI is not page-aligned.

Allocates 24 bytes of request buffer on the stack. The callback is stored on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::GetBti> GetBti (uint32_t index)

Get the BTI at `index` for this device.

This operation is not supported on devices that exist on another bus (e.g. PCI) --

they should use their bus's GetBti() equivalent to access a BTI.

Errors:

* ZX_ERR_NOT_SUPPORTED - the device is not a pure ACPI device.

* ZX_ERR_OUT_OF_RANGE - `index` is out of range for the device.

Allocates 24 bytes of request buffer on the stack. The callback is stored on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::EvaluateObject> EvaluateObject (::fidl::StringView path, ::fuchsia_hardware_acpi::wire::EvaluateObjectMode mode, ::fidl::VectorView< ::fuchsia_hardware_acpi::wire::Object> parameters)

Evaluate the object at the given |path|, relative to this device, with |parameters| as

arguments.

|mode| determines how the return value is treated, see

|fuchsia.hardware.acpi/EvaluateObjectMode|.

Paths cannot be absolute, and must only refer to children of this

device.

|result| is the result of the evaluation. See |fuchsia.hardware.acpi/EncodedObject| for more

information.

Errors:

* ACCESS - |path| does not refer to a child of this device.

* AML_* - internal errors while evaluating the AML bytecode.

* BAD_CHARACTER - an invalid character was found in the path.

* BAD_PATHNAME - the path contained at least one ill-formated entry.

* ERROR - An internal error occurred.

* NOT_FOUND - There is no object at the specified path.

* NOT_IMPLEMENTED - An unsupported |mode| or |parameters| was supplied, or evaluation

returned an unsupported Object type.

* TYPE - The object is of a type that cannot be evaluated.

The request and callback are allocated on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::InstallNotifyHandler> InstallNotifyHandler (::fuchsia_hardware_acpi::wire::NotificationMode mode, ::fidl::ClientEnd< ::fuchsia_hardware_acpi::NotifyHandler> && handler)

Install a Device Object Notification handler for the given notification

type. A device can only have a single notification handler at a time.

Errors:

* BAD_PARAMETER - if "mode" is invalid.

* ALREADY_EXISTS - if a handler is already installed.

Allocates 24 bytes of request buffer on the stack. The callback is stored on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::RemoveNotifyHandler> RemoveNotifyHandler ()

Remove a Device Object Notification handler. Returns AE_OK if either the handler was

successfully removed, or if the device has no handler. Otherwise returns failure.

Allocates 16 bytes of request buffer on the stack. The callback is stored on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::AcquireGlobalLock> AcquireGlobalLock ()

Acquire the ACPI global lock. This is only permitted for devices which

have a _GLK entry in their namespace. See ACPI v6.4, Section 6.5.7 "_GLK

(Global Lock)".

This method will not return until the global lock has been acquired.

Errors:

* ACCESS - if "_GLK" is not present, or if "_GLK" does not evaluate to 1.

Allocates 16 bytes of request buffer on the stack. The callback is stored on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::InstallAddressSpaceHandler> InstallAddressSpaceHandler (::fuchsia_hardware_acpi::wire::AddressSpace space, ::fidl::ClientEnd< ::fuchsia_hardware_acpi::AddressSpaceHandler> && handler)

Install an address space handler for this device.

Errors:

* ALREADY_EXISTS - if a handler is already installed.

* NOT_SUPPORTED - the AddressSpace supplied is not supported.

Allocates 24 bytes of request buffer on the stack. The callback is stored on the heap.

::fidl::internal::WireThenable< ::fuchsia_hardware_acpi::Device::SetWakeDevice> SetWakeDevice (uint8_t requested_state)

Set a device to be able to wake the system from suspend. The device must have a _PRW

(Power Resource for Wake) method. This method should be called from the driver suspend

hook, using the |requested_state| provided by the driver framework. If the device is unable

to wake the system from the requested sleep state, then the device will not be set as a

wake source.

Errors:

NOT_SUPPORTED - requested sleep state is deeper than the deepest sleep that the device can

wake the system from.

BAD_DATA - unable to get wake GPE information.

BAD_PARAMETER - could not get GPE information.

TYPE - GPE is not marked as a wake GPE.

NOT_EXIST - GPE register could not be found.

Allocates 24 bytes of request buffer on the stack. The callback is stored on the heap.