blob: cccdfce7fe6c52af9bbf9c4026206e0909db6c93 [file] [log] [blame] [view]
<link rel="stylesheet" href="../style.css" />
[TOC]
# fuchsia.kernel
<div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div>
## **PROTOCOLS**
## Counter {#Counter}
*Defined in [fuchsia.kernel/kernel-counter.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/kernel-counter.fidl;l=11)*
<p>Protocol for retrieving kcounter information.</p>
### GetInspectVmo {#Counter.GetInspectVmo}
<p>Retrives a VMO containining summarized kcounter data. The vmo returned
in <code>buffer</code> is in &quot;inspect-vmo&quot; format, documented elsewhere.</p>
#### Request {#Counter.GetInspectVmo_Request}
&lt;EMPTY&gt;
#### Response {#Counter.GetInspectVmo_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>status</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
</tr>
<tr>
<td><code>buffer</code></td>
<td>
<code><a class='link' href='../fuchsia.mem/'>fuchsia.mem</a>/<a class='link' href='../fuchsia.mem/#Buffer'>Buffer</a></code>
</td>
</tr>
</table>
### UpdateInspectVmo {#Counter.UpdateInspectVmo}
<p>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).</p>
#### Request {#Counter.UpdateInspectVmo_Request}
&lt;EMPTY&gt;
#### Response {#Counter.UpdateInspectVmo_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>status</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
</tr>
</table>
## CpuResource {#CpuResource}
*Defined in [fuchsia.kernel/cpu-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/cpu-resource.fidl;l=11)*
<p>Protocol for providing a <code>ZX_RSRC_KIND_SYSTEM</code> with base
<code>ZX_RSRC_SYSTEM_CPU_BASE</code>.</p>
### Get {#CpuResource.Get}
<p>Get a CPU resource handle.</p>
#### Request {#CpuResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#CpuResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## DebugBroker {#DebugBroker}
*Defined in [fuchsia.kernel/kernel-debug.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/kernel-debug.fidl;l=13)*
<p>Acts on behalf of the caller to interact with privileged debug system calls.</p>
### SendDebugCommand {#DebugBroker.SendDebugCommand}
<p>Pass debug command through to the kernel shell.
Look at zx_debug_send_command syscall handling to find valid values.</p>
#### Request {#DebugBroker.SendDebugCommand_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>command</code></td>
<td>
<code>string[1024]</code>
</td>
</tr>
</table>
#### Response {#DebugBroker.SendDebugCommand_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>status</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
</tr>
</table>
### SetTracingEnabled {#DebugBroker.SetTracingEnabled}
<p>Sets whether kernel tracing (ktrace) is enabled or disabled.</p>
#### Request {#DebugBroker.SetTracingEnabled_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>enabled</code></td>
<td>
<code>bool</code>
</td>
</tr>
</table>
#### Response {#DebugBroker.SetTracingEnabled_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>status</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code>
</td>
</tr>
</table>
## DebugResource {#DebugResource}
*Defined in [fuchsia.kernel/debug-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/debug-resource.fidl;l=11)*
<p>Protocol for providing a <code>ZX_RSRC_KIND_SYSTEM</code> with base
<code>ZX_RSRC_SYSTEM_DEBUG_BASE</code>.</p>
### Get {#DebugResource.Get}
<p>Get a debug resource handle.</p>
#### Request {#DebugResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#DebugResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## EnergyInfoResource {#EnergyInfoResource}
*Defined in [fuchsia.kernel/energy-info-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/energy-info-resource.fidl;l=12)*
<p>Protocol for providing a <code>ZX_RSRC_KIND_SYSTEM</code> with base
<code>ZX_RSRC_SYSTEM_ENERGY_INFO_BASE</code>.</p>
<div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: HEAD</span></div>
### Get {#EnergyInfoResource.Get}
<p>Get an EnergyInfo resource handle.</p>
<div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: HEAD</span></div>
#### Request {#EnergyInfoResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#EnergyInfoResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## HypervisorResource {#HypervisorResource}
*Defined in [fuchsia.kernel/hypervisor-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/hypervisor-resource.fidl;l=10)*
<p>Protocol for providing the hypervisor resource.</p>
### Get {#HypervisorResource.Get}
<p>Get a hypervisor resource handle.</p>
#### Request {#HypervisorResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#HypervisorResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## InfoResource {#InfoResource}
*Defined in [fuchsia.kernel/info-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/info-resource.fidl;l=11)*
<p>Protocol for providing a <code>ZX_RSRC_KIND_SYSTEM</code> with base
<code>ZX_RSRC_SYSTEM_INFO_BASE</code>.</p>
### Get {#InfoResource.Get}
<p>Get an info resource handle.</p>
#### Request {#InfoResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#InfoResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## IoportResource {#IoportResource}
*Defined in [fuchsia.kernel/ioport-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/ioport-resource.fidl;l=10)*
<p>Protocol for providing an IO Port resource with access to all valid ranges.</p>
### Get {#IoportResource.Get}
<p>Get an IO Port resource handle.</p>
#### Request {#IoportResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#IoportResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## IrqResource {#IrqResource}
*Defined in [fuchsia.kernel/irq-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/irq-resource.fidl;l=10)*
<p>Protocol for providing an IRQ resource with access to all valid ranges.</p>
### Get {#IrqResource.Get}
<p>Get an IRQ resource handle.</p>
#### Request {#IrqResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#IrqResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## MexecResource {#MexecResource}
*Defined in [fuchsia.kernel/mexec-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/mexec-resource.fidl;l=13)*
<p>Protocol for providing a <code>ZX_RSRC_KIND_SYSTEM</code> with base
<code>ZX_RSRC_SYSTEM_MEXEC_BASE</code>.</p>
<div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: HEAD</span></div>
### Get {#MexecResource.Get}
<p>Get an MEXEC resource handle as <code>resource</code>.</p>
<div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: HEAD</span></div>
#### Request {#MexecResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#MexecResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## MmioResource {#MmioResource}
*Defined in [fuchsia.kernel/mmio-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/mmio-resource.fidl;l=10)*
<p>Protocol for providing an MMIO resource with access to all valid ranges.</p>
### Get {#MmioResource.Get}
<p>Get an MMIO resource handle.</p>
#### Request {#MmioResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#MmioResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## PowerResource {#PowerResource}
*Defined in [fuchsia.kernel/power-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/power-resource.fidl;l=12)*
<p>Protocol for providing a <code>ZX_RSRC_KIND_SYSTEM</code> with base
<code>ZX_RSRC_SYSTEM_POWER_BASE</code>.</p>
### Get {#PowerResource.Get}
<p>Get a power resource handle.</p>
#### Request {#PowerResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#PowerResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## RootJob {#RootJob}
*Defined in [fuchsia.kernel/root-job.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/root-job.fidl;l=12)*
<p>Protocol for providing the root job.</p>
<p>TODO(fxbug.dev/33856): Do not use this without first consulting the Zircon team.</p>
### Get {#RootJob.Get}
<p>Get the root <code>job</code>.</p>
#### Request {#RootJob.Get_Request}
&lt;EMPTY&gt;
#### Response {#RootJob.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>job</code></td>
<td>
<code>handle&lt;job&gt;</code>
</td>
</tr>
</table>
## RootJobForInspect {#RootJobForInspect}
*Defined in [fuchsia.kernel/root-job.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/root-job.fidl;l=22)*
<p>Protocol for providing the root job with restricted rights, specifically:
INSPECT | ENUMERATE | DUPLICATE | TRANSFER</p>
### Get {#RootJobForInspect.Get}
<p>Get the root <code>job</code>.</p>
#### Request {#RootJobForInspect.Get_Request}
&lt;EMPTY&gt;
#### Response {#RootJobForInspect.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>job</code></td>
<td>
<code>handle&lt;job&gt;</code>
</td>
</tr>
</table>
## SmcResource {#SmcResource}
*Defined in [fuchsia.kernel/smc-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/smc-resource.fidl;l=10)*
<p>Protocol for providing an SMC resource with access to all valid ranges.</p>
### Get {#SmcResource.Get}
<p>Get an SMC resource handle.</p>
#### Request {#SmcResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#SmcResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## Stats {#Stats}
*Defined in [fuchsia.kernel/kernel-stats.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/kernel-stats.fidl;l=76)*
<p>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.</p>
### GetCpuLoad {#Stats.GetCpuLoad}
<p>Gets the average load as a percentage (0.0 - 100.0) from each CPU over the specified
duration.</p>
<p>Load is calculated as (100 - %idle), where %idle is the percentage value of idle_time (from
PerCpuStats) over a time duration.</p>
#### Request {#Stats.GetCpuLoad_Request}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>duration</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code>
</td>
</tr>
</table>
#### Response {#Stats.GetCpuLoad_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>per_cpu_load</code></td>
<td>
<code>vector&lt;float32&gt;[512]</code>
</td>
</tr>
</table>
### GetCpuStats {#Stats.GetCpuStats}
#### Request {#Stats.GetCpuStats_Request}
&lt;EMPTY&gt;
#### Response {#Stats.GetCpuStats_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>stats</code></td>
<td>
<code><a class='link' href='#CpuStats'>CpuStats</a></code>
</td>
</tr>
</table>
### GetMemoryStats {#Stats.GetMemoryStats}
#### Request {#Stats.GetMemoryStats_Request}
&lt;EMPTY&gt;
#### Response {#Stats.GetMemoryStats_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>stats</code></td>
<td>
<code><a class='link' href='#MemoryStats'>MemoryStats</a></code>
</td>
</tr>
</table>
### GetMemoryStatsExtended {#Stats.GetMemoryStatsExtended}
#### Request {#Stats.GetMemoryStatsExtended_Request}
&lt;EMPTY&gt;
#### Response {#Stats.GetMemoryStatsExtended_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>stats</code></td>
<td>
<code><a class='link' href='#MemoryStatsExtended'>MemoryStatsExtended</a></code>
</td>
</tr>
</table>
## VmexResource {#VmexResource}
*Defined in [fuchsia.kernel/vmex-resource.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/vmex-resource.fidl;l=12)*
<p>Protocol for providing a <code>ZX_RSRC_KIND_SYSTEM</code> with base
<code>ZX_SYS_RSRC_BASE_VMEX</code> to programs that should be able to mark VMOs as
executable.</p>
### Get {#VmexResource.Get}
<p>Get a VMEX resource handle.</p>
#### Request {#VmexResource.Get_Request}
&lt;EMPTY&gt;
#### Response {#VmexResource.Get_Response}
<table>
<tr><th>Name</th><th>Type</th></tr>
<tr>
<td><code>resource</code></td>
<td>
<code>handle&lt;resource&gt;</code>
</td>
</tr>
</table>
## **STRUCTS**
### CpuStats {#CpuStats data-text="CpuStats"}
*Defined in [fuchsia.kernel/kernel-stats.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/kernel-stats.fidl;l=61)*
<table>
<tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr>
<tr id="CpuStats.actual_num_cpus">
<td><code>actual_num_cpus</code></td>
<td>
<code>uint64</code>
</td>
<td><p>This is the total number of CPUs on the actual device. This may not be the same as the length
of the vector <code>per_cpu_stats</code> as it is possible the underlying syscall will not return stats
for all CPUs.</p>
</td>
<td>No default</td>
</tr>
<tr id="CpuStats.per_cpu_stats">
<td><code>per_cpu_stats</code></td>
<td>
<code>vector&lt;<a class='link' href='#PerCpuStats'>PerCpuStats</a>&gt;[512]?</code>
</td>
<td></td>
<td>No default</td>
</tr>
</table>
## **TABLES**
### MemoryStats {#MemoryStats data-text="MemoryStats"}
*Defined in [fuchsia.kernel/kernel-stats.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/kernel-stats.fidl;l=10)*
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="MemoryStats.total_bytes">
<td><h3 id="MemoryStats.total_bytes" class="add-link hide-from-toc">1</h3></td>
<td><code>total_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStats.free_bytes">
<td><h3 id="MemoryStats.free_bytes" class="add-link hide-from-toc">2</h3></td>
<td><code>free_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStats.wired_bytes">
<td><h3 id="MemoryStats.wired_bytes" class="add-link hide-from-toc">3</h3></td>
<td><code>wired_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStats.total_heap_bytes">
<td><h3 id="MemoryStats.total_heap_bytes" class="add-link hide-from-toc">4</h3></td>
<td><code>total_heap_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStats.free_heap_bytes">
<td><h3 id="MemoryStats.free_heap_bytes" class="add-link hide-from-toc">5</h3></td>
<td><code>free_heap_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStats.vmo_bytes">
<td><h3 id="MemoryStats.vmo_bytes" class="add-link hide-from-toc">6</h3></td>
<td><code>vmo_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStats.mmu_overhead_bytes">
<td><h3 id="MemoryStats.mmu_overhead_bytes" class="add-link hide-from-toc">7</h3></td>
<td><code>mmu_overhead_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStats.ipc_bytes">
<td><h3 id="MemoryStats.ipc_bytes" class="add-link hide-from-toc">8</h3></td>
<td><code>ipc_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStats.other_bytes">
<td><h3 id="MemoryStats.other_bytes" class="add-link hide-from-toc">9</h3></td>
<td><code>other_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
</table>
### MemoryStatsExtended {#MemoryStatsExtended data-text="MemoryStatsExtended"}
*Defined in [fuchsia.kernel/kernel-stats.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/kernel-stats.fidl;l=24)*
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="MemoryStatsExtended.total_bytes">
<td><h3 id="MemoryStatsExtended.total_bytes" class="add-link hide-from-toc">1</h3></td>
<td><code>total_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.free_bytes">
<td><h3 id="MemoryStatsExtended.free_bytes" class="add-link hide-from-toc">2</h3></td>
<td><code>free_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.wired_bytes">
<td><h3 id="MemoryStatsExtended.wired_bytes" class="add-link hide-from-toc">3</h3></td>
<td><code>wired_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.total_heap_bytes">
<td><h3 id="MemoryStatsExtended.total_heap_bytes" class="add-link hide-from-toc">4</h3></td>
<td><code>total_heap_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.free_heap_bytes">
<td><h3 id="MemoryStatsExtended.free_heap_bytes" class="add-link hide-from-toc">5</h3></td>
<td><code>free_heap_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.vmo_bytes">
<td><h3 id="MemoryStatsExtended.vmo_bytes" class="add-link hide-from-toc">6</h3></td>
<td><code>vmo_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.vmo_pager_total_bytes">
<td><h3 id="MemoryStatsExtended.vmo_pager_total_bytes" class="add-link hide-from-toc">7</h3></td>
<td><code>vmo_pager_total_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.vmo_pager_newest_bytes">
<td><h3 id="MemoryStatsExtended.vmo_pager_newest_bytes" class="add-link hide-from-toc">8</h3></td>
<td><code>vmo_pager_newest_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.vmo_pager_oldest_bytes">
<td><h3 id="MemoryStatsExtended.vmo_pager_oldest_bytes" class="add-link hide-from-toc">9</h3></td>
<td><code>vmo_pager_oldest_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.vmo_discardable_locked_bytes">
<td><h3 id="MemoryStatsExtended.vmo_discardable_locked_bytes" class="add-link hide-from-toc">10</h3></td>
<td><code>vmo_discardable_locked_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.vmo_discardable_unlocked_bytes">
<td><h3 id="MemoryStatsExtended.vmo_discardable_unlocked_bytes" class="add-link hide-from-toc">11</h3></td>
<td><code>vmo_discardable_unlocked_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.mmu_overhead_bytes">
<td><h3 id="MemoryStatsExtended.mmu_overhead_bytes" class="add-link hide-from-toc">12</h3></td>
<td><code>mmu_overhead_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.ipc_bytes">
<td><h3 id="MemoryStatsExtended.ipc_bytes" class="add-link hide-from-toc">13</h3></td>
<td><code>ipc_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="MemoryStatsExtended.other_bytes">
<td><h3 id="MemoryStatsExtended.other_bytes" class="add-link hide-from-toc">14</h3></td>
<td><code>other_bytes</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
</table>
### PerCpuStats {#PerCpuStats data-text="PerCpuStats"}
*Defined in [fuchsia.kernel/kernel-stats.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/kernel-stats.fidl;l=43)*
<table>
<tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr>
<tr id="PerCpuStats.cpu_number">
<td><h3 id="PerCpuStats.cpu_number" class="add-link hide-from-toc">1</h3></td>
<td><code>cpu_number</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.flags">
<td><h3 id="PerCpuStats.flags" class="add-link hide-from-toc">2</h3></td>
<td><code>flags</code></td>
<td>
<code>uint32</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.idle_time">
<td><h3 id="PerCpuStats.idle_time" class="add-link hide-from-toc">3</h3></td>
<td><code>idle_time</code></td>
<td>
<code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.reschedules">
<td><h3 id="PerCpuStats.reschedules" class="add-link hide-from-toc">4</h3></td>
<td><code>reschedules</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.context_switches">
<td><h3 id="PerCpuStats.context_switches" class="add-link hide-from-toc">5</h3></td>
<td><code>context_switches</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.irq_preempts">
<td><h3 id="PerCpuStats.irq_preempts" class="add-link hide-from-toc">6</h3></td>
<td><code>irq_preempts</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.yields">
<td><h3 id="PerCpuStats.yields" class="add-link hide-from-toc">7</h3></td>
<td><code>yields</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.ints">
<td><h3 id="PerCpuStats.ints" class="add-link hide-from-toc">8</h3></td>
<td><code>ints</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.timer_ints">
<td><h3 id="PerCpuStats.timer_ints" class="add-link hide-from-toc">9</h3></td>
<td><code>timer_ints</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.timers">
<td><h3 id="PerCpuStats.timers" class="add-link hide-from-toc">10</h3></td>
<td><code>timers</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.page_faults">
<td><h3 id="PerCpuStats.page_faults" class="add-link hide-from-toc">11</h3></td>
<td><code>page_faults</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.exceptions">
<td><h3 id="PerCpuStats.exceptions" class="add-link hide-from-toc">12</h3></td>
<td><code>exceptions</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.syscalls">
<td><h3 id="PerCpuStats.syscalls" class="add-link hide-from-toc">13</h3></td>
<td><code>syscalls</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.reschedule_ipis">
<td><h3 id="PerCpuStats.reschedule_ipis" class="add-link hide-from-toc">14</h3></td>
<td><code>reschedule_ipis</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
<tr id="PerCpuStats.generic_ipis">
<td><h3 id="PerCpuStats.generic_ipis" class="add-link hide-from-toc">15</h3></td>
<td><code>generic_ipis</code></td>
<td>
<code>uint64</code>
</td>
<td></td>
</tr>
</table>
## **CONSTANTS**
<table>
<tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr>
<tr id="DEBUG_COMMAND_MAX">
<td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.kernel/kernel-debug.fidl;l=9">DEBUG_COMMAND_MAX</a></td>
<td>
<code>1024</code>
</td>
<td><code>uint32</code></td>
<td><p>Maximum number of bytes in a command string</p>
</td>
</tr>
</table>