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