fuchsia.kernel

添加次数:7

协议

计数器

fuchsia.kernel/kernel-counter.fidl 中定义

用于检索 kcounter 信息的协议。

GetInspectVmo

检索包含汇总 kcounter 数据的 VMO。buffer 中返回的 vmo 采用“inspect-vmo”格式,其他地方有记录。

请求

<EMPTY>

响应

名称类型
status zx/Status
buffer fuchsia.mem/Buffer

UpdateInspectVmo

请求更新之前返回的 VMO 缓冲区数据。如果数据最近已更新,则可能不会被更新(更新频率上限不明,大约每几秒一次)。

请求

<EMPTY>

响应

名称类型
status zx/Status

CpuResource

fuchsia.kernel/cpu-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_CPU_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

获取

获取 CPU 资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

DebugBroker

fuchsia.kernel/kernel-debug.fidl 中定义

代表调用方与特权调试系统调用进行交互。

SendDebugCommand

将调试命令传递到内核 shell。 查看 zx_debug_send_command 系统调用处理以查找有效值。

请求

名称类型
command string[1024]

响应

名称类型
status zx/Status

SetTracingEnabled

设置是启用还是停用内核跟踪 (ktrace)。

请求

名称类型
enabled bool

响应

名称类型
status zx/Status

DebugResource

fuchsia.kernel/debug-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_DEBUG_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

获取

获取调试资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

DebuglogResource

fuchsia.kernel/debuglog-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_DEBUGLOG_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

添加了:HEAD

获取

获取调试日志资源句柄。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
resource handle<resource>

EnergyInfoResource

fuchsia.kernel/energy-info-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_ENERGY_INFO_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

添加了:HEAD

获取

获取 EnergyInfo 资源句柄。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
resource handle<resource>

FramebufferResource

fuchsia.kernel/framebuffer-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_FRAMEBUFFER_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

添加了:HEAD

获取

获取帧缓冲区资源句柄。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
resource handle<resource>

HypervisorResource

fuchsia.kernel/hypervisor-resource.fidl 中定义

用于提供 Hypervisor 资源的协议。

获取

获取 Hypervisor 资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

InfoResource

fuchsia.kernel/info-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_INFO_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

获取

获取信息资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

IommuResource

fuchsia.kernel/iommu-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_IOMMU_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

添加了:HEAD

获取

获取 Iommu 资源句柄。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
resource handle<resource>

IoportResource

fuchsia.kernel/ioport-resource.fidl 中定义

用于提供可访问所有有效范围的 IO 端口资源的协议。

获取

获取 IO 端口资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

IrqResource

fuchsia.kernel/irq-resource.fidl 中定义

用于提供可访问所有有效范围的 IRQ 资源的协议。

获取

获取 IRQ 资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

MexecResource

fuchsia.kernel/mexec-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_MEXEC_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

添加了:HEAD

获取

获取 MEXEC 资源句柄(作为 resource)。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
resource handle<resource>

MmioResource

fuchsia.kernel/mmio-resource.fidl 中定义

用于提供能够访问所有有效范围的 MMIO 资源的协议。

获取

获取 MMIO 资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

MsiResource

fuchsia.kernel/msi-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_MSI_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

添加了:HEAD

获取

获取 msi 资源句柄。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
resource handle<resource>

PowerResource

fuchsia.kernel/power-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_POWER_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

获取

获取电源资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

ProfileResource

fuchsia.kernel/profile-resource.fidl 中定义

用于以基本 ZX_RSRC_SYSTEM_PROFILE_BASE 提供 ZX_RSRC_KIND_SYSTEM 的协议。

添加了:HEAD

获取

获取配置文件资源句柄。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
resource handle<resource>

RootJob

fuchsia.kernel/root-job.fidl 中定义

用于提供根作业的协议。

TODO(https://fxbug.dev/42109098):请勿在未事先咨询 Zircon 团队的情况下使用此 API。

获取

获取根 job

请求

<EMPTY>

响应

名称类型
job handle<job>

RootJobForInspect

fuchsia.kernel/root-job.fidl 中定义

用于提供权限受限的根作业的协议,具体来说是:INSPECT | ENUMERATE | DUPLICATE | TRANSFER

获取

获取根 job

请求

<EMPTY>

响应

名称类型
job handle<job>

SmcResource

fuchsia.kernel/smc-resource.fidl 中定义

用于提供能够访问所有有效范围的 SMC 资源的协议。

获取

获取 SMC 资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

统计信息

fuchsia.kernel/kernel-stats.fidl 中定义

用于提供内核统计信息的协议。这大致是 ZX_INFO_KMEM_STATS、ZX_INFO_KMEM_STATS_EXTENDED 和 ZX_INFO_CPU_STATS 主题的 zx_object_get_info 的封装容器,这些主题目前需要非常强大的“Root Resource”功能来获取。仅需要统计信息的程序应使用此服务,而不是公开此功能。如果协议由于某种原因而未能检索到统计信息(这将是一个不可恢复的错误),则会关闭该通道。

GetCpuLoad

获取指定时间范围内每个 CPU 的平均负载(以百分比 (0.0 - 100.0) 表示)。

负载的计算方式为 (100 - %idle),其中 %idle 是一段时间内(PerCpuStats 状态下)闲置时间的百分比值。

请求

名称类型
duration zx/Duration

响应

名称类型
per_cpu_load vector<float32>[512]

GetCpuStats

请求

<EMPTY>

响应

名称类型
stats CpuStats

GetMemoryStats

请求

<EMPTY>

响应

名称类型
stats MemoryStats

GetMemoryStatsCompression

添加数量:16

请求

<EMPTY>

响应

名称类型
payload MemoryStatsCompression

GetMemoryStatsExtended

请求

<EMPTY>

响应

名称类型
stats MemoryStatsExtended

VmexResource

fuchsia.kernel/vmex-resource.fidl 中定义

用于向应能够将 VMO 标记为可执行文件的程序提供带有基本 ZX_RSRC_SYSTEM_VMEX_BASEZX_RSRC_KIND_SYSTEM 的协议。

获取

获取 VMEX 资源句柄。

请求

<EMPTY>

响应

名称类型
resource handle<resource>

结构

CpuStats

fuchsia.kernel/kernel-stats.fidl 中定义

野战类型说明默认
actual_num_cpus uint64

这是实际设备上的 CPU 总数。这与矢量 per_cpu_stats 的长度不同,因为底层系统调用可能不会返回所有 CPU 的统计信息。

无默认取景方式
per_cpu_stats vector<PerCpuStats>[512]? 无默认取景方式

MemoryStats

fuchsia.kernel/kernel-stats.fidl 中定义

序数野战类型说明
total_bytes uint64
free_bytes uint64
wired_bytes uint64
total_heap_bytes uint64
free_heap_bytes uint64
vmo_bytes uint64
mmu_overhead_bytes uint64
ipc_bytes uint64
other_bytes uint64

MemoryStatsCompression

fuchsia.kernel/kernel-stats.fidl 中定义

添加数量:16

序数野战类型说明
uncompressed_storage_bytes uint64
compressed_storage_bytes uint64
compressed_fragmentation_bytes uint64
compression_time zx/Duration
decompression_time zx/Duration
total_page_compression_attempts uint64
failed_page_compression_attempts uint64
total_page_decompressions uint64
compressed_page_evictions uint64
eager_page_compressions uint64
memory_pressure_page_compressions uint64
critical_memory_page_compressions uint64
pages_decompressed_unit_ns uint64
pages_decompressed_within_log_time uint64[8]

MemoryStatsExtended

fuchsia.kernel/kernel-stats.fidl 中定义

序数野战类型说明
total_bytes uint64
free_bytes uint64
wired_bytes uint64
total_heap_bytes uint64
free_heap_bytes uint64
vmo_bytes uint64
vmo_pager_total_bytes uint64
vmo_pager_newest_bytes uint64
vmo_pager_oldest_bytes uint64
vmo_discardable_locked_bytes uint64
vmo_discardable_unlocked_bytes uint64
mmu_overhead_bytes uint64
ipc_bytes uint64
other_bytes uint64

PerCpuStats

fuchsia.kernel/kernel-stats.fidl 中定义

序数野战类型说明
cpu_number uint32
flags uint32
idle_time zx/Duration
reschedules uint64
context_switches uint64
irq_preempts uint64
yields uint64
ints uint64
timer_ints uint64
timers uint64
page_faults uint64
exceptions uint64
syscalls uint64
reschedule_ipis uint64
generic_ipis uint64

常量

名称类型说明
DEBUG_COMMAND_MAX 1024 uint32

命令字符串中的字节数上限