PROTOCOLS
Counter
Defined in fuchsia.kernel/kernel-counter.fidl
Protocol for retrieving kcounter information.
GetInspectVmo
Retrives a VMO containining summarized kcounter data. The vmo returned
in buffer is in "inspect-vmo" format, documented elsewhere.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
status |
zx/Status
|
buffer |
fuchsia.mem/Buffer
|
UpdateInspectVmo
Request that the previously-returned VMO buffer's data be updated. The data may not be updated if it was already recently updated (updates are limited to an unspecified rate, but approximately every few seconds).
Request
<EMPTY>
Response
| Name | Type |
|---|---|
status |
zx/Status
|
CpuResource
Defined in fuchsia.kernel/cpu-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_CPU_BASE.
Get
Get a CPU resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
DebugBroker
Defined in fuchsia.kernel/kernel-debug.fidl
Acts on behalf of the caller to interact with privileged debug system calls.
SendDebugCommand
Pass debug command through to the kernel shell. Look at zx_debug_send_command syscall handling to find valid values.
Request
| Name | Type |
|---|---|
command |
string:1024
|
Response
| Name | Type |
|---|---|
status |
zx/Status
|
SetTracingEnabled
Sets whether kernel tracing (ktrace) is enabled or disabled.
Request
| Name | Type |
|---|---|
enabled |
bool
|
Response
| Name | Type |
|---|---|
status |
zx/Status
|
DebugResource
Defined in fuchsia.kernel/debug-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_DEBUG_BASE.
Get
Get a debug resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
DebuglogResource
Defined in fuchsia.kernel/debuglog-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_DEBUGLOG_BASE.
Get
Get a debuglog resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
EnergyInfoResource
Defined in fuchsia.kernel/energy-info-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_ENERGY_INFO_BASE.
Get
Get an EnergyInfo resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
HypervisorResource
Defined in fuchsia.kernel/hypervisor-resource.fidl
Protocol for providing the hypervisor resource.
Get
Get a hypervisor resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
InfoResource
Defined in fuchsia.kernel/info-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_INFO_BASE.
Get
Get an info resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
IommuResource
Defined in fuchsia.kernel/iommu-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_IOMMU_BASE.
Get
Get an iommu resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
IoportResource
Defined in fuchsia.kernel/ioport-resource.fidl
Protocol for providing an IO Port resource with access to all valid ranges.
Get
Get an IO Port resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
IrqResource
Defined in fuchsia.kernel/irq-resource.fidl
Protocol for providing an IRQ resource with access to all valid ranges.
Get
Get an IRQ resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
MexecResource
Defined in fuchsia.kernel/mexec-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_MEXEC_BASE.
Get
Get an MEXEC resource handle as resource.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
MmioResource
Defined in fuchsia.kernel/mmio-resource.fidl
Protocol for providing an MMIO resource with access to all valid ranges.
Get
Get an MMIO resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
MsiResource
Defined in fuchsia.kernel/msi-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_MSI_BASE.
Get
Get an msi resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
PowerResource
Defined in fuchsia.kernel/power-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_POWER_BASE.
Get
Get a power resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
ProfileResource
Defined in fuchsia.kernel/profile-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_PROFILE_BASE.
Get
Get a profile resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
RootJob
Defined in fuchsia.kernel/root-job.fidl
Protocol for providing the root job.
TODO(https://fxbug.dev/42109098): Do not use this without first consulting the Zircon team.
Get
Get the root job.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
job |
handle<job>
|
RootJobForInspect
Defined in fuchsia.kernel/root-job.fidl
Protocol for providing the root job with restricted rights, specifically: INSPECT | ENUMERATE | DUPLICATE | TRANSFER
Get
Get the root job.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
job |
handle<job>
|
SamplingResource
Defined in fuchsia.kernel/sampling-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_SAMPLING_BASE.
Get
Get a sampling resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
SmcResource
Defined in fuchsia.kernel/smc-resource.fidl
Protocol for providing an SMC resource with access to all valid ranges.
Get
Get an SMC resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
StallResource
Defined in fuchsia.kernel/stall-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_STALL_BASE to programs that should be able to measure and
be notified of stalls.
Get
Get a stall resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
Stats
Defined in fuchsia.kernel/kernel-stats.fidl
Protocol for providing kernel stats. This is roughly a wrapper around zx_object_get_info for the ZX_INFO_KMEM_STATS and ZX_INFO_CPU_STATS topics, which today require the very powerful 'Root Resource' capability to obtain. Instead of vending out that capability, programs that just want stats should use this service instead. If for some reason the protocol fails to retrieve stats, which will be an un-recoverable error, it will close the channel.
GetCpuLoad
Gets the average load as a percentage (0.0 - 100.0) from each CPU over the specified duration.
Load is calculated as (100 - %idle), where %idle is the percentage value of idle_time (from PerCpuStats) over a time duration.
Request
| Name | Type |
|---|---|
duration |
zx/Duration
|
Response
| Name | Type |
|---|---|
per_cpu_load |
vector<float32>:512
|
GetCpuStats
Request
<EMPTY>
Response
| Name | Type |
|---|---|
stats |
CpuStats
|
GetMemoryStats
Request
<EMPTY>
Response
| Name | Type |
|---|---|
stats |
MemoryStats
|
GetMemoryStatsCompression
Request
<EMPTY>
Response
| Name | Type |
|---|---|
payload |
MemoryStatsCompression
|
GetMemoryStatsExtended
DEPRECATED
Request
<EMPTY>
Response
| Name | Type |
|---|---|
stats |
MemoryStatsExtended
|
TracingResource
Defined in fuchsia.kernel/tracing-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_TRACING_BASE.
Get
Get a tracing resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
VmexResource
Defined in fuchsia.kernel/vmex-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM with base
ZX_RSRC_SYSTEM_VMEX_BASE to programs that should be able to mark VMOs as
executable.
Get
Get a VMEX resource handle.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
resource |
handle<resource>
|
STRUCTS
CpuStats
Defined in fuchsia.kernel/kernel-stats.fidl
| Field | Type | Description | Default |
|---|---|---|---|
actual_num_cpus |
uint64
|
This is the total number of CPUs on the actual device. This may not be the same as the length
of the vector |
No default |
per_cpu_stats |
vector<PerCpuStats>:512?
|
No default |
TABLES
MemoryStats
Defined in fuchsia.kernel/kernel-stats.fidl
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
total_bytes |
uint64
|
|
2 |
free_bytes |
uint64
|
|
3 |
wired_bytes |
uint64
|
|
4 |
total_heap_bytes |
uint64
|
|
5 |
free_heap_bytes |
uint64
|
|
6 |
vmo_bytes |
uint64
|
|
7 |
mmu_overhead_bytes |
uint64
|
|
8 |
ipc_bytes |
uint64
|
|
9 |
other_bytes |
uint64
|
|
10 |
free_loaned_bytes |
uint64
|
Added: HEAD
|
11 |
cache_bytes |
uint64
|
Added: HEAD
|
12 |
slab_bytes |
uint64
|
Added: HEAD
|
13 |
zram_bytes |
uint64
|
Added: HEAD
|
14 |
vmo_reclaim_total_bytes |
uint64
|
Added: HEAD
|
15 |
vmo_reclaim_newest_bytes |
uint64
|
Added: HEAD
|
16 |
vmo_reclaim_oldest_bytes |
uint64
|
Added: HEAD
|
17 |
vmo_reclaim_disabled_bytes |
uint64
|
Added: HEAD
|
18 |
vmo_discardable_locked_bytes |
uint64
|
Added: HEAD
|
19 |
vmo_discardable_unlocked_bytes |
uint64
|
Added: HEAD
|
MemoryStatsCompression
Defined in fuchsia.kernel/kernel-stats.fidl
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
uncompressed_storage_bytes |
uint64
|
|
2 |
compressed_storage_bytes |
uint64
|
|
3 |
compressed_fragmentation_bytes |
uint64
|
|
4 |
compression_time |
zx/Duration
|
|
5 |
decompression_time |
zx/Duration
|
|
6 |
total_page_compression_attempts |
uint64
|
|
7 |
failed_page_compression_attempts |
uint64
|
|
8 |
total_page_decompressions |
uint64
|
|
9 |
compressed_page_evictions |
uint64
|
|
10 |
eager_page_compressions |
uint64
|
|
11 |
memory_pressure_page_compressions |
uint64
|
|
12 |
critical_memory_page_compressions |
uint64
|
|
13 |
pages_decompressed_unit_ns |
uint64
|
|
14 |
pages_decompressed_within_log_time |
array<uint64, 8>
|
MemoryStatsExtended
Defined in fuchsia.kernel/kernel-stats.fidl
DEPRECATED
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
total_bytes |
uint64
|
|
2 |
free_bytes |
uint64
|
|
3 |
wired_bytes |
uint64
|
|
4 |
total_heap_bytes |
uint64
|
|
5 |
free_heap_bytes |
uint64
|
|
6 |
vmo_bytes |
uint64
|
|
7 |
vmo_pager_total_bytes |
uint64
|
|
8 |
vmo_pager_newest_bytes |
uint64
|
|
9 |
vmo_pager_oldest_bytes |
uint64
|
|
10 |
vmo_discardable_locked_bytes |
uint64
|
|
11 |
vmo_discardable_unlocked_bytes |
uint64
|
|
12 |
mmu_overhead_bytes |
uint64
|
|
13 |
ipc_bytes |
uint64
|
|
14 |
other_bytes |
uint64
|
PerCpuStats
Defined in fuchsia.kernel/kernel-stats.fidl
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
cpu_number |
uint32
|
|
2 |
flags |
uint32
|
|
3 |
idle_time |
zx/Duration
|
|
4 |
reschedules |
uint64
|
|
5 |
context_switches |
uint64
|
|
6 |
irq_preempts |
uint64
|
|
7 |
yields |
uint64
|
|
8 |
ints |
uint64
|
|
9 |
timer_ints |
uint64
|
|
10 |
timers |
uint64
|
|
11 |
page_faults |
uint64
|
|
12 |
exceptions |
uint64
|
|
13 |
syscalls |
uint64
|
|
14 |
reschedule_ipis |
uint64
|
|
15 |
generic_ipis |
uint64
|
CONSTANTS
| Name | Value | Type | Description |
|---|---|---|---|
| DEBUG_COMMAND_MAX |
1024
|
uint32 |
Maximum number of bytes in a command string |