Google is committed to advancing racial equity for Black communities. See how.

fuchsia.kernel

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

NameType

Response

NameType
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

NameType

Response

NameType
status zx/status

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

NameType
command string[1024]

Response

NameType
status zx/status

SetTracingEnabled

Sets whether kernel tracing (ktrace) is enabled or disabled.

Request

NameType
enabled bool

Response

NameType
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 as debug_resource.

Request

NameType

Response

NameType
debug_resource handle<resource>

HypervisorResource

Defined in fuchsia.kernel/hypervisor-resource.fidl

Protocol for providing the hypervisor resource.

Get

Get the hypervisor resource handle.

Request

NameType

Response

NameType
hypervisor_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 a info resource handle as info_resource.

Request

NameType

Response

NameType
info_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 the IO Port resource handle.

Request

NameType

Response

NameType
ioport_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 the IRQ resource handle.

Request

NameType

Response

NameType
irq_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 the MMIO resource handle.

Request

NameType

Response

NameType
mmio_resource handle<resource>

RootJob

Defined in fuchsia.kernel/root-job.fidl

Protocol for providing the root job.

TODO(fxbug.dev/33856): Do not use this without first consulting the Zircon team.

Get

Get the root job.

Request

NameType

Response

NameType
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

NameType

Response

NameType
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 the SMC resource handle.

Request

NameType

Response

NameType
smc_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

NameType
duration zx/duration

Response

NameType
per_cpu_load vector<float32>[512]

GetCpuStats

Request

NameType

Response

NameType
stats CpuStats

GetMemoryStats

Request

NameType

Response

NameType
stats MemoryStats

GetMemoryStatsExtended

Request

NameType

Response

NameType
stats MemoryStatsExtended

VmexResource

Defined in fuchsia.kernel/vmex-resource.fidl

Protocol for providing a ZX_RSRC_KIND_SYSTEM with base ZX_SYS_RSRC_BASE_VMEX to programs that should be able to mark VMOs as executable.

Get

Get a VMEX resource handle as resource.

Request

NameType

Response

NameType
vmex_resource handle<resource>

STRUCTS

CpuStats

Defined in fuchsia.kernel/kernel-stats.fidl

NameTypeDescriptionDefault
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 per_cpu_stats as it is possible the underlying syscall will not return stats for all CPUs.

No default
per_cpu_stats vector<PerCpuStats>[512]? No default

TABLES

MemoryStats

Defined in fuchsia.kernel/kernel-stats.fidl

OrdinalNameTypeDescription
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

MemoryStatsExtended

Defined in fuchsia.kernel/kernel-stats.fidl

OrdinalNameTypeDescription
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

OrdinalNameTypeDescription
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

NameValueTypeDescription
DEBUG_COMMAND_MAX 1024 uint32

Maximum number of bytes in a command string