class Device
Defined at line 809 of file fidling/gen/sdk/fidl/fuchsia.hardware.ram.metrics/fuchsia.hardware.ram.metrics/hlcpp/fuchsia/hardware/ram/metrics/cpp/fidl.h
Interface to obtain memory bandwidth usage measurements from hardware
cycle counters. The interface supports up to 6 hardware counters
(called channels) which aggregate up to 64 unique buses (called ports).
An example of a possible configuration:
channel[0]
<
- A53x4 + M3x1
channel[1]
<
- gpu
channel[2]
<
- vpu + h264_decoder + hdmi
channel[3]
<
- image_isp + h264_encoder
The number of channels and which bit patterns to use for each port
are hardware specific.
Public Methods
void ~Device ()
void MeasureBandwidth (::fuchsia::hardware::ram::metrics::BandwidthMeasurementConfig config, MeasureBandwidthCallback callback)
Trigger one measurement. This can be called again before the reply
arrives but it won't be serviced until previous requests are completed.
The return on success is the measurement.
The return on failure are as follows:
ZX_ERR_INVALID_ARGS : The BandwidthMeasurementConfig values are incorrect.
ZX_ERR_NOT_SUPPORTED : The BandwidthMeasurementConfig values are not supported
by the hardware.
ZX_ERR_SHOULD_WAIT : Too many requests pending. A future request might succeed.
Other errors indicate internal failure.
void GetDdrWindowingResults (GetDdrWindowingResultsCallback callback)
Retrieve the DDR Windowing tool results
The windowing tool runs in the bootloader and stores results in a sticky register.
The return on success is the register value
The return on failure is ZX_ERR_NOT_SUPPORTED if the hardware does not support
reading the sticky register.