- 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.