# Zircon System Calls

## Handles
+ [handle_close](handle_close.md) - close a handle
+ [handle_close_many](handle_close_many.md) - close several handles
+ [handle_duplicate](handle_duplicate.md) - create a duplicate handle (optionally with reduced rights)
+ [handle_replace](handle_replace.md) - create a new handle (optionally with reduced rights) and destroy the old one

## Objects
+ [object_get_child](object_get_child.md) - find the child of an object by its koid
+ [object_get_info](object_get_info.md) - obtain information about an object
+ [object_get_property](object_get_property.md) - read an object property
+ [object_set_profile](object_set_profile.md) - apply a profile to a thread
+ [object_set_property](object_set_property.md) - modify an object property
+ [object_signal](object_signal.md) - set or clear the user signals on an object
+ [object_signal_peer](object_signal_peer.md) - set or clear the user signals in the opposite end
+ [object_wait_many](object_wait_many.md) - wait for signals on multiple objects
+ [object_wait_one](object_wait_one.md) - wait for signals on one object
+ [object_wait_async](object_wait_async.md) - asynchronous notifications on signal change

## Threads
+ [thread_create](thread_create.md) - create a new thread within a process
+ [thread_exit](thread_exit.md) - exit the current thread
+ [thread_read_state](thread_read_state.md) - read register state from a thread
+ [thread_start](thread_start.md) - cause a new thread to start executing
+ [thread_write_state](thread_write_state.md) - modify register state of a thread

## Processes
+ [process_create](process_create.md) - create a new process within a job
+ [process_read_memory](process_read_memory.md) - read from a process's address space
+ [process_start](process_start.md) - cause a new process to start executing
+ [process_write_memory](process_write_memory.md) - write to a process's address space
+ [process_exit](process_exit.md) - exit the current process

## Jobs
+ [job_create](job_create.md) - create a new job within a job
+ [job_set_critical](job_set_critical.md) - set a process as critical to a job
+ [job_set_policy](job_set_policy.md) - modify policies for a job and its descendants

## Tasks (Thread, Process, or Job)
+ [task_create_exception_channel](task_create_exception_channel.md) - create an exception channel on a task
+ [task_kill](task_kill.md) - cause a task to stop running
+ [task_suspend](task_suspend.md) - cause a task to be suspended

## Profiles
+ [profile_create](profile_create.md) - create a new profile object

## Exceptions
+ [exception_get_thread](exception_get_thread.md) - create a handle for the exception thread
+ [exception_get_process](exception_get_process.md) - create a handle for the exception process

## Channels
+ [channel_call](channel_call.md) - synchronously send a message and receive a reply
+ [channel_create](channel_create.md) - create a new channel
+ [channel_read](channel_read.md) - receive a message from a channel
+ [channel_read_etc](channel_read_etc.md) - receive a message from a channel with handle information
+ [channel_write](channel_write.md) - write a message to a channel
+ [channel_write_etc](channel_write_etc.md) - write a message to the channel and modify the handles.

## Sockets
+ [socket_create](socket_create.md) - create a new socket
+ [socket_read](socket_read.md) - read data from a socket
+ [socket_shutdown](socket_shutdown.md) - prevent reading or writing
+ [socket_write](socket_write.md) - write data to a socket

## Stream
+ [`zx_stream_create()`](stream_create.md) - create a stream from a VMO
+ [`zx_stream_readv()`](stream_readv.md) - read data from the stream at the current seek offset
+ [`zx_stream_readv_at()`](stream_readv_at.md) - read data from the stream at a given offset
+ [`zx_stream_writev()`](stream_writev.md) - write data to the stream at the current seek offset
+ [`zx_stream_writev_at()`](stream_writev_at.md) - write data to the stream at a given offset
+ [`zx_stream_seek()`](stream_seek.md) - modify the current seek offset of the stream

## Fifos
+ [fifo_create](fifo_create.md) - create a new fifo
+ [fifo_read](fifo_read.md) - read data from a fifo
+ [fifo_write](fifo_write.md) - write data to a fifo

## Events and Event Pairs
+ [event_create](event_create.md) - create an event
+ [eventpair_create](eventpair_create.md) - create a connected pair of events
+ [system_get_event](system_get_event.md) - retrieve a handle to a system event

## Ports
+ [port_create](port_create.md) - create a port
+ [port_queue](port_queue.md) - send a packet to a port
+ [port_wait](port_wait.md) - wait for packets to arrive on a port
+ [port_cancel](port_cancel.md) - cancel notifications from async_wait

## Futexes
+ [futex_wait](futex_wait.md) - wait on a futex
+ [futex_wake](futex_wake.md) - wake waiters on a futex
+ [futex_requeue](futex_requeue.md) - wake some waiters and requeue other waiters

## Virtual Memory Objects (VMOs)
+ [vmo_create](vmo_create.md) - create a new vmo
+ [vmo_read](vmo_read.md) - read from a vmo
+ [vmo_write](vmo_write.md) - write to a vmo
+ [vmo_create_child](vmo_create_child.md) - creates a child of a vmo
+ [vmo_get_size](vmo_get_size.md) - obtain the size of a vmo
+ [vmo_set_size](vmo_set_size.md) - adjust the size of a vmo
+ [vmo_op_range](vmo_op_range.md) - perform an operation on a range of a vmo
+ [vmo_replace_as_executable](vmo_replace_as_executable.md) - add execute rights to a vmo
+ [vmo_create_physical](vmo_create_physical.md) - create a VM object referring to a specific contiguous range of physical memory
+ [vmo_set_cache_policy](vmo_set_cache_policy.md) - set the caching policy for pages held by a VMO

## Virtual Memory Address Regions (VMARs)
+ [vmar_allocate](vmar_allocate.md) - create a new child VMAR
+ [vmar_map](vmar_map.md) - map a VMO into a process
+ [vmar_unmap](vmar_unmap.md) - unmap a memory region from a process
+ [vmar_protect](vmar_protect.md) - adjust memory access permissions
+ [vmar_op_range](vmar_op_range.md) - perform an operation on VMOs mapped into a range of a VMAR
+ [vmar_destroy](vmar_destroy.md) - destroy a VMAR and all of its children

## Userspace Pagers
+ [pager_create](pager_create.md) - create a new pager object
+ [pager_create_vmo](pager_create_vmo.md) - create a pager owned vmo
+ [pager_detach_vmo](pager_detach_vmo.md) - detaches a pager from a vmo
+ [pager_supply_pages](pager_supply_pages.md) - supply pages into a pager owned vmo
+ [pager_op_range](pager_op_range.md) - perform an operation on a range of a pager owned vmo

## Cryptographically Secure RNG
+ [cprng_add_entropy](cprng_add_entropy.md)
+ [cprng_draw](cprng_draw.md)

## Time
+ [nanosleep](nanosleep.md) - sleep for some number of nanoseconds
+ [clock_get](clock_get.md) - read a system clock
+ [clock_get_monotonic](clock_get_monotonic.md) - read the monotonic system clock
+ [ticks_get](ticks_get.md) - read high-precision timer ticks
+ [ticks_per_second](ticks_per_second.md) - read the number of high-precision timer ticks in a second
+ [deadline_after](deadline_after.md) - Convert a time relative to now to an absolute deadline
+ [clock_adjust](clock_adjust.md)

## Timers
+ [timer_create](timer_create.md) - create a timer object
+ [timer_set](timer_set.md) - start a timer
+ [timer_cancel](timer_cancel.md) - cancel a timer

## Hypervisor guests
+ [guest_create](guest_create.md) - create a hypervisor guest
+ [guest_set_trap](guest_set_trap.md) - set a trap in a hypervisor guest

## Virtual CPUs
+ [vcpu_create](vcpu_create.md) - create a virtual cpu
+ [vcpu_resume](vcpu_resume.md) - resume execution of a virtual cpu
+ [vcpu_interrupt](vcpu_interrupt.md) - raise an interrupt on a virtual cpu
+ [vcpu_read_state](vcpu_read_state.md) - read state from a virtual cpu
+ [vcpu_write_state](vcpu_write_state.md) - write state to a virtual cpu
+ [interrupt_bind_vcpu](interrupt_bind_vcpu.md) - Bind an interrupt object to a VCPU

## Global system information
+ [system_get_dcache_line_size](system_get_dcache_line_size.md)
+ [system_get_features](system_get_features.md) - get hardware-specific features
+ [system_get_num_cpus](system_get_num_cpus.md) - get number of CPUs
+ [system_get_physmem](system_get_physmem.md) - get physical memory size
+ [system_get_version_string](system_get_version_string.md) - get version string

## Debug Logging
+ [debuglog_create](debuglog_create.md) - create a kernel managed debuglog reader or writer
+ [debuglog_write](debuglog_write.md) - write log entry to debuglog
+ [debuglog_read](debuglog_read.md) - read log entries from debuglog
+ [debug_read](debug_read.md) - TODO(fxbug.dev/32938)
+ [debug_write](debug_write.md) - TODO(fxbug.dev/32938)
+ [debug_send_command](debug_send_command.md) - TODO(fxbug.dev/32938)

## Multi-function
+ [vmar_unmap_handle_close_thread_exit](vmar_unmap_handle_close_thread_exit.md) - three-in-one
+ [futex_wake_handle_close_thread_exit](futex_wake_handle_close_thread_exit.md) - three-in-one

## System
+ [system_mexec](system_mexec.md) - Soft reboot the system with a new kernel and bootimage
+ [system_mexec_payload_get](system_mexec_payload_get.md) - Return a ZBI containing ZBI entries necessary to boot this system
+ [system_powerctl](system_powerctl.md)

## DDK
+ [bti_create](bti_create.md) - create a new bus transaction initiator
+ [bti_pin](bti_pin.md) - pin pages and grant devices access to them
+ [bti_release_quarantine](bti_release_quarantine.md) - releases all quarantined PMTs
+ [cache_flush](cache_flush.md) - Flush CPU data and/or instruction caches
+ [interrupt_ack](interrupt_ack.md) - Acknowledge an interrupt object
+ [interrupt_bind](interrupt_bind.md) - Bind an interrupt object to a port
+ [interrupt_create](interrupt_create.md) - Create a physical or virtual interrupt object
+ [interrupt_destroy](interrupt_destroy.md) - Destroy an interrupt object
+ [interrupt_trigger](interrupt_trigger.md) - Trigger a virtual interrupt object
+ [interrupt_wait](interrupt_wait.md) - Wait on an interrupt object
+ [iommu_create](iommu_create.md) - create a new IOMMU object in the kernel
+ [pmt_unpin](pmt_unpin.md) - unpin pages and revoke device access to them
+ [resource_create](resource_create.md) - create a resource object
+ [smc_call](smc_call.md) - Make an SMC call from user space

## Display drivers
+ [framebuffer_get_info](framebuffer_get_info.md)
+ [framebugger_set_range](framebuffer_set_range.md)

## Tracing
+ [ktrace_control](ktrace_control.md)
+ [ktrace_read](ktrace_read.md)
+ [ktrace_write](ktrace_write.md)
+ [mtrace_control](mtrace_control.md)

## Others/Work in progress
+ [ioports_release](ioports_release.md)
+ [pc_firmware_tables](pc_firmware_tables.md)
+ [pci_add_subtract_io_range](pci_add_subtract_io_range.md)
+ [pci_cfg_pio_rw](pci_cfg_pio_rw.md)
+ [pci_config_read](pci_config_read.md)
+ [pci_config_write](pci_config_write.md)
+ [pci_enable_bus_master](pci_enable_bus_master.md)
+ [pci_get_bar](pci_get_bar.md)
+ [pci_get_nth_device](pci_get_nth_device.md)
+ [pci_init](pci_init.md)
+ [pci_map_interrupt](pci_map_interrupt.md)
+ [pci_query_irq_mode](pci_query_irq_mode.md)
+ [pci_reset_device](pci_reset_device.md)
+ [pci_set_irq_mode](pci_set_irq_mode.md)


+ [syscall_test_0](syscall_test_0.md)
+ [syscall_test_1](syscall_test_1.md)
+ [syscall_test_2](syscall_test_2.md)
+ [syscall_test_3](syscall_test_3.md)
+ [syscall_test_4](syscall_test_4.md)
+ [syscall_test_5](syscall_test_5.md)
+ [syscall_test_6](syscall_test_6.md)
+ [syscall_test_7](syscall_test_7.md)
+ [syscall_test_8](syscall_test_8.md)
+ [syscall_test_wrapper](syscall_test_wrapper.md)
+ [syscall_test_handle_create](syscall_test_handle_create.md)

## Syscall generation

Syscall support is generated from `//zircon/syscalls`. The FIDL files in that
directory are first run through `fidlc` which produces an intermediate format.
That intermediate format is consumed by [kazoo](/zircon/tools/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.

