template <>
class Server
Defined at line 640 of file fidling/gen/sdk/fidl/fuchsia.hardware.clock/fuchsia.hardware.clock/cpp/fidl/fuchsia.hardware.clock/cpp/natural_messaging.h
Public Methods
void Enable (EnableCompleter::Sync & completer)
Enables (ungates) this clock.
Drivers *must* call enable on all clocks they depend upon.
Returns `ZX_ERR_NOT_SUPPORTED` if this clock type does not support `Enable`.
Returns `ZX_ERR_TIMED_OUT` if an operation timed out (for instance, a PLL was unable to lock).
Returns `ZX_ERR_INTERNAL` if the operation failed for any other reason.
void Disable (DisableCompleter::Sync & completer)
Disables (gates) this clock.
Drivers should call this method to indicate to the clock subsystem that
a particular clock signal is no longer necessary.
Returns `ZX_ERR_NOT_SUPPORTED` if this clock type does not support `Disable`
Returns `ZX_ERR_INTERNAL` if the operation failed for any other reason.
void IsEnabled (IsEnabledCompleter::Sync & completer)
Returns `true` if a given clock is running.
May query the hardware or return a cached value.
IsEnabled shall not alter the state of the clock tree in any way.
Returns `ZX_ERR_NOT_SUPPORTED` if this clock type does not support `IsEnabled`.
void Server ()
Defined at line 643 of file fidling/gen/sdk/fidl/fuchsia.hardware.clock/fuchsia.hardware.clock/cpp/fidl/fuchsia.hardware.clock/cpp/natural_messaging.h
void SetRate (SetRateRequest & request, SetRateCompleter::Sync & completer)
Attempt to set the rate of the clock provider.
Returns `ZX_ERR_NOT_SUPPORTED` if this clock type does not support `SetRate`
Returns `ZX_ERR_INVALID_ARGS` if the requested rate is not one that is reported as supported by `QuerySupportedRate`.
Returns `ZX_ERR_TIMED_OUT` if an operation timed out (for instance, a PLL was unable to lock).
Returns `ZX_ERR_INTERNAL` if the operation failed for any other reason.
void QuerySupportedRate (QuerySupportedRateRequest & request, QuerySupportedRateCompleter::Sync & completer)
Query the hardware for the highest supported rate that does not
exceed hz_in.
`QuerySupportedRate` shall not alter the state of the clock tree in any way.
Returns `ZX_ERR_NOT_SUPPORTED` if this clock type does not support `QuerySupportedRate`.
Returns `ZX_ERR_OUT_OF_RANGE` if a suitable rate could not be found.
void GetRate (GetRateCompleter::Sync & completer)
Returns the current rate that a given clock is running at.
GetRate shall not alter the state of the clock tree in any way.
Returns `ZX_ERR_NOT_SUPPORTED` if this clock type does not support `GetRate `.
void SetInput (SetInputRequest & request, SetInputCompleter::Sync & completer)
Sets the input of this clock by index. I.e. by selecting a mux.
This clock has N inputs defined 0 through N-1, which are valid arguemts
as the index to SetInput.
Returns `ZX_ERR_NOT_SUPPORTED` if this clock type does not support `SetInput`
Returns `ZX_ERR_OUT_OF_RANGE` if `idx` is outside of the range supplied by `GetNumInputs`.
Returns `ZX_ERR_INTERNAL` if the operation failed for any other reason.
void GetNumInputs (GetNumInputsCompleter::Sync & completer)
Returns the number of inputs this clock has.
Any value between 0 and UINT32_MAX is a valid return for this method.
A Root Oscillator may return 0 for instance, if it has no inputs.
GetNumInputs shall not alter the state of the clock tree in any way.
Returns `ZX_ERR_NOT_SUPPORTED` if this clock type does not support `GetNumInputs`.
void GetInput (GetInputCompleter::Sync & completer)
Returns the index of the current input of this clock.
GetInput shall not alter the state of the clock tree in any way.
Returns `ZX_ERR_NOT_SUPPORTED` if this clock type does not support `GetInput`.
void GetProperties (GetPropertiesCompleter::Sync & completer)
Returns the static properties of a clock.
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 ~Server ()
Defined at line 644 of file fidling/gen/sdk/fidl/fuchsia.hardware.clock/fuchsia.hardware.clock/cpp/fidl/fuchsia.hardware.clock/cpp/natural_messaging.h