- handle_close - close a handle
- handle_close_many - close several handles
- handle_duplicate - create a duplicate handle (optionally with reduced rights)
- handle_replace - create a new handle (optionally with reduced rights) and destroy the old one
- object_get_child - find the child of an object by its koid
- object_get_info - obtain information about an object
- object_get_property - read an object property
- object_set_profile - apply a profile to a thread
- object_set_property - modify an object property
- object_signal - set or clear the user signals on an object
- object_signal_peer - set or clear the user signals in the opposite end
- object_wait_many - wait for signals on multiple objects
- object_wait_one - wait for signals on one object
- object_wait_async - asynchronous notifications on signal change
- thread_create - create a new thread within a process
- thread_exit - exit the current thread
- thread_read_state - read register state from a thread
- thread_start - cause a new thread to start executing
- thread_write_state - modify register state of a thread
- process_create - create a new process within a job
- process_read_memory - read from a process's address space
- process_start - cause a new process to start executing
- process_write_memory - write to a process's address space
- process_exit - exit the current process
- job_create - create a new job within a job
- job_set_critical - set a process as critical to a job
- job_set_policy - modify policies for a job and its descendants
- task_create_exception_channel - create an exception channel on a task
- task_kill - cause a task to stop running
- task_suspend - cause a task to be suspended
- profile_create - create a new profile object
- exception_get_thread - create a handle for the exception thread
- exception_get_process - create a handle for the exception process
- channel_call - synchronously send a message and receive a reply
- channel_call_etc - synchronously send a message and receive a reply with handle information
- channel_create - create a new channel
- channel_read - receive a message from a channel
- channel_read_etc - receive a message from a channel with handle information
- channel_write - write a message to a channel
- channel_write_etc - write a message to the channel and modify the handles
- socket_create - create a new socket
- socket_read - read data from a socket
- socket_set_disposition - set write disposition of a socket
- socket_write - write data to a socket
- stream_create - create a stream from a VMO
- stream_readv - read data from the stream at the current seek offset
- stream_readv_at - read data from the stream at a given offset
- stream_writev - write data to the stream at the current seek offset
- stream_writev_at - write data to the stream at a given offset
- stream_seek - modify the current seek offset of the stream
- fifo_create - create a new fifo
- fifo_read - read data from a fifo
- fifo_write - write data to a fifo
- event_create - create an event
- eventpair_create - create a connected pair of events
- system_get_event - retrieve a handle to a system event
- port_create - create a port
- port_queue - send a packet to a port
- port_wait - wait for packets to arrive on a port
- port_cancel - cancel notifications from async_wait
- futex_wait - wait on a futex
- futex_wake - wake waiters on a futex
- futex_requeue - wake some waiters and requeue other waiters
- vmo_create - create a new vmo
- vmo_read - read from a vmo
- vmo_write - write to a vmo
- vmo_create_child - creates a child of a vmo
- vmo_get_size - obtain the size of a vmo
- vmo_set_size - adjust the size of a vmo
- vmo_op_range - perform an operation on a range of a vmo
- vmo_replace_as_executable - add execute rights to a vmo
- vmo_create_physical - create a VM object referring to a specific contiguous range of physical memory
- vmo_set_cache_policy - set the caching policy for pages held by a VMO
- vmar_allocate - create a new child VMAR
- vmar_map - map a VMO into a process
- vmar_unmap - unmap a memory region from a process
- vmar_protect - adjust memory access permissions
- vmar_op_range - perform an operation on VMOs mapped into a range of a VMAR
- vmar_destroy - destroy a VMAR and all of its children
- pager_create - create a new pager object
- pager_create_vmo - create a pager owned vmo
- pager_detach_vmo - detaches a pager from a vmo
- pager_supply_pages - supply pages into a pager owned vmo
- pager_op_range - perform an operation on a range of a pager owned vmo
- nanosleep - sleep for some number of nanoseconds
- clock_get_monotonic - read the monotonic system clock
- clock_create - Create a new clock object
- clock_get_details - Fetch all of the low level details of the clock's current status
- clock_update - Make adjustments to a clock object
- ticks_get - read high-precision timer ticks
- ticks_per_second - read the number of high-precision timer ticks in a second
- deadline_after - Convert a time relative to now to an absolute deadline
- timer_create - create a timer object
- timer_set - start a timer
- timer_cancel - cancel a timer
- guest_create - create a hypervisor guest
- guest_set_trap - set a trap in a hypervisor guest
- vcpu_create - create a VCPU
- vcpu_enter - enter a VCPU, and start or continue execution
- vcpu_kick - kick a VCPU, and stop execution
- vcpu_interrupt - raise an interrupt on a VCPU
- vcpu_read_state - read state from a VCPU
- vcpu_write_state - write state to a VCPU
- interrupt_bind_vcpu - bind an interrupt object to a VCPU
- system_get_dcache_line_size
- system_get_features - get hardware-specific features
- system_get_num_cpus - get number of CPUs
- system_get_page_size - get memory page size
- system_get_physmem - get physical memory size
- system_get_version_string - get version string
- debuglog_create - create a kernel managed debuglog reader or writer
- debuglog_write - write log entry to debuglog
- debuglog_read - read log entries from debuglog
- debug_read - TODO(fxbug.dev/32938)
- debug_write - TODO(fxbug.dev/32938)
- debug_send_command - TODO(fxbug.dev/32938)
- vmar_unmap_handle_close_thread_exit - three-in-one
- futex_wake_handle_close_thread_exit - three-in-one
- system_mexec - Soft reboot the system with a new kernel and bootimage
- system_mexec_payload_get - Return a ZBI containing ZBI entries necessary to boot this system
- system_powerctl
- system_get_performance_info - Get CPU performance info
- system_set_performance_info - Set CPU performance info
- bti_create - create a new bus transaction initiator
- bti_pin - pin pages and grant devices access to them
- bti_release_quarantine - releases all quarantined PMTs
- cache_flush - Flush CPU data and/or instruction caches
- interrupt_ack - Acknowledge an interrupt object
- interrupt_bind - Bind an interrupt object to a port
- interrupt_create - Create a physical or virtual interrupt object
- interrupt_destroy - Destroy an interrupt object
- interrupt_trigger - Trigger a virtual interrupt object
- interrupt_wait - Wait on an interrupt object
- iommu_create - create a new IOMMU object in the kernel
- pmt_unpin - unpin pages and revoke device access to them
- resource_create - create a resource object
- smc_call - Make an SMC call from user space
Syscall support is generated from //zircon/vdso
. The FIDL files in that
directory are first run through fidlc
, which produces an intermediate format.
That intermediate format is consumed by kazoo, which
produces output for both the kernel and userspace in a variety of languages.
This output includes C or C++ headers for both the kernel and userspace, syscall
entry points, other language bindings, and so on.
This tool is invoked as a part of the build, rather than checking in its output.