Skip to main content

ClockServerHandler

Trait ClockServerHandler 

Source
pub trait ClockServerHandler<___T: Transport = Channel> {
    // Required methods
    fn enable(
        &mut self,
        responder: Responder<Enable, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn disable(
        &mut self,
        responder: Responder<Disable, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn is_enabled(
        &mut self,
        responder: Responder<IsEnabled, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn set_rate(
        &mut self,
        request: Request<SetRate, ___T>,
        responder: Responder<SetRate, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn query_supported_rate(
        &mut self,
        request: Request<QuerySupportedRate, ___T>,
        responder: Responder<QuerySupportedRate, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn get_rate(
        &mut self,
        responder: Responder<GetRate, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn set_input(
        &mut self,
        request: Request<SetInput, ___T>,
        responder: Responder<SetInput, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn get_num_inputs(
        &mut self,
        responder: Responder<GetNumInputs, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn get_input(
        &mut self,
        responder: Responder<GetInput, ___T>,
    ) -> impl Future<Output = ()> + Send;
    fn get_properties(
        &mut self,
        responder: Responder<GetProperties, ___T>,
    ) -> impl Future<Output = ()> + Send;

    // Provided method
    fn on_unknown_interaction(
        &mut self,
        ordinal: u64,
    ) -> impl Future<Output = ()> + Send { ... }
}
Expand description

A server handler for the Clock protocol.

See Clock for more details.

Required Methods§

Source

fn enable( &mut self, responder: Responder<Enable, ___T>, ) -> impl Future<Output = ()> + Send

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.

Source

fn disable( &mut self, responder: Responder<Disable, ___T>, ) -> impl Future<Output = ()> + Send

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.

Source

fn is_enabled( &mut self, responder: Responder<IsEnabled, ___T>, ) -> impl Future<Output = ()> + Send

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.

Source

fn set_rate( &mut self, request: Request<SetRate, ___T>, responder: Responder<SetRate, ___T>, ) -> impl Future<Output = ()> + Send

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.

Source

fn query_supported_rate( &mut self, request: Request<QuerySupportedRate, ___T>, responder: Responder<QuerySupportedRate, ___T>, ) -> impl Future<Output = ()> + Send

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.

Source

fn get_rate( &mut self, responder: Responder<GetRate, ___T>, ) -> impl Future<Output = ()> + Send

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 .

Source

fn set_input( &mut self, request: Request<SetInput, ___T>, responder: Responder<SetInput, ___T>, ) -> impl Future<Output = ()> + Send

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.

Source

fn get_num_inputs( &mut self, responder: Responder<GetNumInputs, ___T>, ) -> impl Future<Output = ()> + Send

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.

Source

fn get_input( &mut self, responder: Responder<GetInput, ___T>, ) -> impl Future<Output = ()> + Send

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.

Source

fn get_properties( &mut self, responder: Responder<GetProperties, ___T>, ) -> impl Future<Output = ()> + Send

Returns the static properties of a clock.

Provided Methods§

Source

fn on_unknown_interaction( &mut self, ordinal: u64, ) -> impl Future<Output = ()> + Send

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§