Zircon System Calls

Life of a Fuchsia syscall

Handles

Objects

Threads

Thread Sampling

  • sampler_attach - Configure a thread to have its stack periodically sampled and written to
  • sampler_create - Create a sampler session, returning an IOBuffer containing a buffer allocated for each
  • sampler_start - Begin sampling to the provided IOBuffer.
  • sampler_stop - Stop writing samples to the provided IOBuffer.

IO Buffers

  • iob_allocate_id - Allocates an ID out of an IOBuffer region of discipline
  • iob_create - Create an IOBuffer with a set of options.

Processes

Jobs

Tasks (Thread, Process, or Job)

  • task_create_exception_channel - Create an exception channel for a given job, process, or thread.
  • task_kill - Kill the provided job or process.
  • task_suspend - Suspend the given task. Currently only thread or process handles may be suspended.
  • task_suspend_token - Suspend the given task. Currently only thread or process handles may be suspended.

Profiles

Exceptions

Channels

Sockets

Streams

Fifos

Events and Event Pairs

Ports

Futexes

Virtual Memory Objects (VMOs)

Virtual Memory Address Regions (VMARs)

Userspace Pagers

Cryptographically Secure RNG

Time

Timers

Message Signaled Interrupts (MSIs)

  • msi_allocate - Allocate Message-Signaled Interrupts (MSIs).
  • msi_create - Create an Interrupt object from a Messaged-Signaled Interrupt (MSI) allocation.

Hypervisor guests

Virtual CPUs

Global system information

Debug Logging

Multi-function

System

DDK

Display drivers

Tracing

Restricted Mode (Work in progress)

Others/Work in progress