7c642bcc6a
Change-Id: I95b6a42330f8b9d3711c5c894aeaf88a9256f2de
6.1 KiB
6.1 KiB
Magenta System Calls
Handles
- handle_close - close a handle
- 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
Objects
- object_get_child - find the child of an object by its koid
- object_get_cookie - read an object cookie
- object_get_info - obtain information about an object
- object_get_property - read an object property
- object_set_cookie - write an object cookie
- 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
Threads
- 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
Processes
- 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
Jobs
- job_create - create a new job within a job
Tasks (Task, Process, or Job)
- task_resume - cause a suspended task to continue running
- task_bind_exception_port - attach an exception port to a task
- task_kill - cause a task to stop running
Channels
- channel_call - synchronously send a message and receive a reply
- channel_create - create a new channel
- channel_read - receive a message from a channel
- channel_write - write a message to a channel
Sockets
- socket_create - create a new socket
- socket_read - read data from a socket
- socket_write - write data to a socket
Fifos
- fifo_create - create a new fifo
- fifo_read - read data from a fifo
- fifo_write - write data to a fifo
Events and Event Pairs
- event_create - create an event
- eventpair_create - create a connected pair of events
Wait Sets
- waitset_create - create a new waitset
- waitset_add - add an entry to a waitset
- waitset_remove - remove an entry from a waitset
- waitset_wait - wait for one or more entries to be signalled
Ports
- port_create - create a port
- port_queue - send a packet to a port
- port_wait - wait for packets to arrive on a port
- port_bind - bind an object to a port
- port_cancel - cancel notificaitons from async_wait
Futexes
- futex_wait - wait on a futex
- futex_wake - wake waiters on a futex
- futex_requeue - wake some waiters and requeue other waiters
Virtual Memory Objects (VMOs)
- vmo_create - create a new vmo
- vmo_read - read from a vmo
- vmo_write - write to 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
Virtual Memory Address Regions (VMARs)
- 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_destroy - destroy a VMAR and all of its children
Cryptographically Secure RNG
Time
- nanosleep - sleep for some number of nanoseconds
- time_get - read a system clock
- ticks_get - read high-precision timer ticks
- ticks_per_second - read the number of high-precision timer ticks in a second
Global system information
- system_get_num_cpus - get number of CPUs
- system_get_physmem - get physical memory size
- system_get_version - get version string
Logging
- log_create - create a kernel managed log reader or writer
- log_write - write log entry to log
- log_read - read log entries from log
Multi-function
- vmar_unmap_handle_close_thread_exit - three-in-one
- futex_wake_handle_close_thread_exit - three-in-one