pub struct DomainControllerProxy { /* private fields */ }Implementations§
Source§impl DomainControllerProxy
impl DomainControllerProxy
Sourcepub fn new(channel: AsyncChannel) -> Self
pub fn new(channel: AsyncChannel) -> Self
Create a new Proxy for fuchsia.power.cpu/DomainController.
Sourcepub fn take_event_stream(&self) -> DomainControllerEventStream
pub fn take_event_stream(&self) -> DomainControllerEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
Sourcepub fn list_domains(
&self,
) -> QueryResponseFut<Vec<DomainInfo>, DefaultFuchsiaResourceDialect> ⓘ
pub fn list_domains( &self, ) -> QueryResponseFut<Vec<DomainInfo>, DefaultFuchsiaResourceDialect> ⓘ
Lists info about each domain managed by the server.
The server is guaranteed to fill all fields within DomainInfo unless
the field is explicitly marked as “Optional”.
Sourcepub fn get_max_frequency(
&self,
domain_id: u64,
) -> QueryResponseFut<DomainControllerGetMaxFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn get_max_frequency( &self, domain_id: u64, ) -> QueryResponseFut<DomainControllerGetMaxFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
Gets the index of the max frequency the CPU can run at.
max_frequency_index corresponds to the index of a frequency within
this domain’s available_frequencies_hz list retrieved via
[ListDomains].
If SetMaxFrequency or LeaseMaxFrequency has never been called, this will return the index that corresponds to the highest available frequency for this domain.
If domain_id is invalid, INVALID_ARGUMENTS is returned.
Sourcepub fn set_max_frequency(
&self,
domain_id: u64,
frequency_index: u64,
) -> QueryResponseFut<DomainControllerSetMaxFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn set_max_frequency( &self, domain_id: u64, frequency_index: u64, ) -> QueryResponseFut<DomainControllerSetMaxFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
Sets the max frequency the CPU can run at.
frequency_index must correspond to the index of a frequency within
this domain’s available_frequencies_hz list retrieved via
[ListDomains].
On products with Runtime Processor Power Management (RPPM), the CPU may briefly exceed max frequency if power limits allow.
If domain_id is invalid, INVALID_ARGUMENTS is returned.
If frequency_index is invalid, INVALID_ARGUMENTS is returned.
Sourcepub fn clear_max_frequency(
&self,
domain_id: u64,
) -> QueryResponseFut<DomainControllerClearMaxFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn clear_max_frequency( &self, domain_id: u64, ) -> QueryResponseFut<DomainControllerClearMaxFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
Clears the max frequency limit the CPU can run at.
If domain_id is invalid, INVALID_ARGUMENTS is returned.
Sourcepub fn get_min_frequency(
&self,
domain_id: u64,
) -> QueryResponseFut<DomainControllerGetMinFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn get_min_frequency( &self, domain_id: u64, ) -> QueryResponseFut<DomainControllerGetMinFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
Gets the index of the min frequency the CPU can run at.
min_frequency_index corresponds to the index of a frequency within
this domain’s available_frequencies_hz list retrieved via
[ListDomains].
If no floor lease is currently active, this will return the index that corresponds to the lowest available frequency for this domain.
If domain_id is invalid, INVALID_ARGUMENTS is returned.
Sourcepub fn lease_max_frequency(
&self,
domain_id: u64,
frequency_index: u64,
lease_name: &str,
) -> QueryResponseFut<DomainControllerLeaseMaxFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn lease_max_frequency( &self, domain_id: u64, frequency_index: u64, lease_name: &str, ) -> QueryResponseFut<DomainControllerLeaseMaxFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
Acquires a ceiling lease on domain_id capping its maximum operating
point at frequency_index.
Multiple clients may hold concurrent ceiling leases on the same domain;
the server enforces the lowest maximum frequency (highest
frequency_index) across all active leases. Each call creates an
independent lease whose lifetime is governed solely by the returned
lease_token handle; closing all handles to lease_token releases the
lease.
lease_name is a human-readable label for diagnostics and Inspect only
and is not required to be unique.
If domain_id or frequency_index is invalid, INVALID_ARGUMENTS is
returned.
Sourcepub fn lease_min_frequency(
&self,
domain_id: u64,
frequency_index: u64,
lease_name: &str,
) -> QueryResponseFut<DomainControllerLeaseMinFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn lease_min_frequency( &self, domain_id: u64, frequency_index: u64, lease_name: &str, ) -> QueryResponseFut<DomainControllerLeaseMinFrequencyResult, DefaultFuchsiaResourceDialect> ⓘ
Acquires a floor lease on domain_id raising its minimum operating
point to frequency_index.
Multiple clients may hold concurrent floor leases on the same domain;
the server enforces the highest minimum frequency (lowest
frequency_index) across all active leases. Each call creates an
independent lease whose lifetime is governed solely by the returned
lease_token handle; closing all handles to lease_token releases the
lease.
lease_name is a human-readable label for diagnostics and Inspect only
and is not required to be unique.
If domain_id or frequency_index is invalid, INVALID_ARGUMENTS is
returned.
Trait Implementations§
Source§impl Clone for DomainControllerProxy
impl Clone for DomainControllerProxy
Source§impl Debug for DomainControllerProxy
impl Debug for DomainControllerProxy
Source§impl DomainControllerProxyInterface for DomainControllerProxy
impl DomainControllerProxyInterface for DomainControllerProxy
type ListDomainsResponseFut = QueryResponseFut<Vec<DomainInfo>>
type GetMaxFrequencyResponseFut = QueryResponseFut<Result<u64, DomainControllerError>>
type SetMaxFrequencyResponseFut = QueryResponseFut<Result<(), DomainControllerError>>
type ClearMaxFrequencyResponseFut = QueryResponseFut<Result<(), DomainControllerError>>
type GetMinFrequencyResponseFut = QueryResponseFut<Result<u64, DomainControllerError>>
type LeaseMaxFrequencyResponseFut = QueryResponseFut<Result<EventPair, DomainControllerError>>
type LeaseMinFrequencyResponseFut = QueryResponseFut<Result<EventPair, DomainControllerError>>
fn list_domains(&self) -> Self::ListDomainsResponseFut
fn get_max_frequency(&self, domain_id: u64) -> Self::GetMaxFrequencyResponseFut
fn set_max_frequency( &self, domain_id: u64, frequency_index: u64, ) -> Self::SetMaxFrequencyResponseFut
fn clear_max_frequency( &self, domain_id: u64, ) -> Self::ClearMaxFrequencyResponseFut
fn get_min_frequency(&self, domain_id: u64) -> Self::GetMinFrequencyResponseFut
fn lease_max_frequency( &self, domain_id: u64, frequency_index: u64, lease_name: &str, ) -> Self::LeaseMaxFrequencyResponseFut
fn lease_min_frequency( &self, domain_id: u64, frequency_index: u64, lease_name: &str, ) -> Self::LeaseMinFrequencyResponseFut
Source§impl Proxy for DomainControllerProxy
impl Proxy for DomainControllerProxy
Source§type Protocol = DomainControllerMarker
type Protocol = DomainControllerMarker
Proxy controls.