template <>
class WireServer
Defined at line 3614 of file fidling/gen/sdk/fidl/fuchsia.hardware.acpi/fuchsia.hardware.acpi/cpp/fidl/fuchsia.hardware.acpi/cpp/wire_messaging.h
Pure-virtual interface to be implemented by a server.
This interface uses typed channels (i.e. |::fidl::ClientEnd
<
::fuchsia_hardware_acpi::Device>|
and |::fidl::ServerEnd
<
::fuchsia_hardware_acpi::Device>|).
Public Methods
void GetBusId (GetBusIdCompleter::Sync & completer)
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.
void MapInterrupt (::fuchsia_hardware_acpi::wire::DeviceMapInterruptRequest * request, MapInterruptCompleter::Sync & completer)
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).
void GetPio (::fuchsia_hardware_acpi::wire::DeviceGetPioRequest * request, GetPioCompleter::Sync & completer)
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).
void GetMmio (::fuchsia_hardware_acpi::wire::DeviceGetMmioRequest * request, GetMmioCompleter::Sync & completer)
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.
void GetBti (::fuchsia_hardware_acpi::wire::DeviceGetBtiRequest * request, GetBtiCompleter::Sync & completer)
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.
void EvaluateObject (::fuchsia_hardware_acpi::wire::DeviceEvaluateObjectRequest * request, EvaluateObjectCompleter::Sync & completer)
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.
void InstallNotifyHandler (::fuchsia_hardware_acpi::wire::DeviceInstallNotifyHandlerRequest * request, InstallNotifyHandlerCompleter::Sync & completer)
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.
void RemoveNotifyHandler (RemoveNotifyHandlerCompleter::Sync & completer)
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.
void AcquireGlobalLock (AcquireGlobalLockCompleter::Sync & completer)
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.
void InstallAddressSpaceHandler (::fuchsia_hardware_acpi::wire::DeviceInstallAddressSpaceHandlerRequest * request, InstallAddressSpaceHandlerCompleter::Sync & completer)
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.
void SetWakeDevice (::fuchsia_hardware_acpi::wire::DeviceSetWakeDeviceRequest * request, SetWakeDeviceCompleter::Sync & completer)
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.
void WireServer ()
Defined at line 3617 of file fidling/gen/sdk/fidl/fuchsia.hardware.acpi/fuchsia.hardware.acpi/cpp/fidl/fuchsia.hardware.acpi/cpp/wire_messaging.h
Handler bind_handler (async_dispatcher_t * dispatcher)
|bind_handler| returns a handler that binds incoming connections to this
server implementation.
The returned handler borrows the server instance.
The server must outlive the provided |dispatcher|. Only after
the dispatcher is shutdown will it be safe to destroy the servers.
The server should not be moved.
void ~WireServer ()
Defined at line 3618 of file fidling/gen/sdk/fidl/fuchsia.hardware.acpi/fuchsia.hardware.acpi/cpp/fidl/fuchsia.hardware.acpi/cpp/wire_messaging.h