协议
计数器
在 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
的协议。
获取
获取调试日志资源句柄。
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
resource |
handle<resource>
|
EnergyInfoResource
在 fuchsia.kernel/energy-info-resource.fidl 中定义
用于以基本 ZX_RSRC_SYSTEM_ENERGY_INFO_BASE
提供 ZX_RSRC_KIND_SYSTEM
的协议。
获取
获取 EnergyInfo 资源句柄。
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
resource |
handle<resource>
|
FramebufferResource
在 fuchsia.kernel/framebuffer-resource.fidl 中定义
用于以基本 ZX_RSRC_SYSTEM_FRAMEBUFFER_BASE
提供 ZX_RSRC_KIND_SYSTEM
的协议。
获取
获取帧缓冲区资源句柄。
请求
<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
的协议。
获取
获取 Iommu 资源句柄。
请求
<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
的协议。
获取
获取 MEXEC 资源句柄(作为 resource
)。
请求
<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
的协议。
获取
获取 msi 资源句柄。
请求
<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
的协议。
获取
获取配置文件资源句柄。
请求
<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
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
payload |
MemoryStatsCompression
|
GetMemoryStatsExtended
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
stats |
MemoryStatsExtended
|
VmexResource
在 fuchsia.kernel/vmex-resource.fidl 中定义
用于向应能够将 VMO 标记为可执行文件的程序提供带有基本 ZX_RSRC_SYSTEM_VMEX_BASE
的 ZX_RSRC_KIND_SYSTEM
的协议。
获取
获取 VMEX 资源句柄。
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
resource |
handle<resource>
|
结构
CpuStats
在 fuchsia.kernel/kernel-stats.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
actual_num_cpus |
uint64
|
这是实际设备上的 CPU 总数。这与矢量 |
无默认取景方式 |
per_cpu_stats |
vector<PerCpuStats>[512]?
|
无默认取景方式 |
表
MemoryStats
在 fuchsia.kernel/kernel-stats.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
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
在 fuchsia.kernel/kernel-stats.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
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
在 fuchsia.kernel/kernel-stats.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
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
在 fuchsia.kernel/kernel-stats.fidl 中定义
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
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
|
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
DEBUG_COMMAND_MAX |
1024
|
uint32 |
命令字符串中的字节数上限 |