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>
|
FramebufferResource
Defined in fuchsia.kernel/framebuffer-resource.fidl
Protocol for providing a ZX_RSRC_KIND_SYSTEM
with base
ZX_RSRC_SYSTEM_FRAMEBUFFER_BASE
.
Get
Get a framebuffer 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>
|
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>
|
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, ZX_INFO_KMEM_STATS_EXTENDED 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
Request
<EMPTY>
Response
Name | Type |
---|---|
stats |
MemoryStatsExtended
|
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
|
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 |
uint64[8]
|
MemoryStatsExtended
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 |
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 |