-
Notifications
You must be signed in to change notification settings - Fork 214
Status: Syscalls
GCYY edited this page Sep 6, 2020
·
5 revisions
- Total = 153
- 100% Finished (已经完成) = 61
- XX% 0<XX<100% (部分完成/不完善) = 31
- 0% (完全没做)= 61
| Status | Description |
|---|---|
| ✅ | 已经完成 |
| 部分完成 | |
| ? | 不完善 |
| 完全没做 |
- “已经完成”表示通过了基本测试集。
- “部分完成”/“不完善”有bug或实现不全,不能通过基本测试集
- “完全没做”等待认领
即使已经完成的,也可能有错误。如果发现错误、请通过issues/PR方式提供信息。 谢谢!
Old
| syscall type | count |
|---|---|
| Handles | 4 |
| Objects | 10 |
| Threads | 5 |
| Processes | 5 |
| Jobs | 3 |
| Tasks | 3 |
| Profiles | 1 |
| Exceptions | 2 |
| Channels | 6 |
| Sockets | 4 |
| Stream | 6 |
| Fifos | 3 |
| Events and Event Pairs | 3 |
| Ports | 4 |
| Futexes | 3 |
| Virtual Memory Objects (VMOs) | 10 |
| Virtual Memory Address Regions (VMARs) | 6 |
| Userspace Pagers | 5 |
| Cryptographically Secure RNG | 2 |
| Time | 7 |
| Timers | 3 |
| Hypervisor guests | 2 |
| Virtual CPUs | 6 |
| Global system information | 5 |
| Debug Logging | 6 |
| Multi-function | 2 |
| System | 3 |
| DDK | 14 |
| Display drivers | 2 |
| Tracing | 4 |
| Others/Work in progress | 14 |
共31个Object syscall
total = 153
2020 08 31
| syscall type | count |
|---|---|
| Handles | 4 |
| Objects | 10 |
| Threads | 5 |
| Processes | 5 |
| Jobs | 3 |
| Tasks | 3 |
| Profiles | 1 |
| Exceptions | 2 |
| Channels | 7 |
| Sockets | 4 |
| Stream | 6 |
| Fifos | 3 |
| Events and Event Pairs | 3 |
| Ports | 4 |
| Futexes | 3 |
| Virtual Memory Objects (VMOs) | 10 |
| Virtual Memory Address Regions (VMARs) | 6 |
| Userspace Pagers | 5 |
| Cryptographically Secure RNG | 2 |
| Time | 7 |
| Timers | 3 |
| Hypervisor guests | 2 |
| Virtual CPUs | 6 |
| Global system information | 5 |
| Debug Logging | 6 |
| Multi-function | 2 |
| System | 3 |
| DDK | 14 |
| Display drivers | 2 |
| Tracing | 4 |
| Others/Work in progress | 14 |
共31个Object syscall
total = 154
变化
| syscall type | diff |
|---|---|
| Channels | +1 |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 1 | handle_close | close a handle | ✅ |
| 2 | handle_close_many | close several handles | ✅ |
| 3 | handle_duplicate | create a duplicate handle (optionally with reduced rights) | ✅ |
| 4 | handle_replace | create a new handle (optionally with reduced rights) and destroy the old one | ✅ |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 5 | object_get_child | find the child of an object by its koid | |
| 6 | object_get_info | obtain information about an object | |
| 7 | object_get_property | read an object property | |
| 8 | object_set_profile | apply a profile to a thread | |
| 9 | object_set_property | modify an object property | |
| 10 | object_signal | set or clear the user signals on an object | |
| 11 | object_signal_peer | set or clear the user signals in the opposite end | ✅ |
| 12 | object_wait_many | wait for signals on multiple objects | |
| 13 | object_wait_one | wait for signals on one object | ✅ |
| 14 | object_wait_async | asynchronous notifications on signal change | ✅ |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 15 | thread_create | ✅ | |
| 16 | thread_exit | ||
| 17 | thread_read_state | ||
| 18 | thread_start | ✅ | |
| 19 | thread_write_state |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 20 | process_create | ✅ | |
| 21 | process_read_memory | ✅ | |
| 22 | process_start | ✅ | |
| 23 | process_write_memory | ✅ | |
| 24 | process_exit |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 25 | job_create | ✅ | |
| 26 | job_set_critical | ||
| 27 | job_set_policy |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 28 | task_create_exception_channel | ||
| 29 | task_kill | ||
| 30 | task_suspend | ✅? |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 31 | profile_create |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 32 | exception_get_thread | ||
| 33 | exception_get_process |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 34 | channel_call | ✅? | |
| 35 | channel_create | ✅ | |
| 36 | channel_read | ✅ | |
| 37 | channel_read_etc | ||
| 38 | channel_write | ✅ | |
| 39 | channel_write_etc |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 40 | socket_create | ✅ | |
| 41 | socket_read | ✅ | |
| 42 | socket_shutdown | ✅ | |
| 43 | socket_write | ✅ |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 44 | stream_create | ||
| 45 | stream_readv | ||
| 46 | stream_readv_at | ||
| 47 | stream_writev | ||
| 48 | stream_writev_at | ||
| 49 | stream_seek |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 50 | fifo_create | ||
| 51 | fifo_read | ||
| 52 | fifo_write |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 53 | event_create | ✅ | |
| 54 | eventpair_create | ||
| 55 | system_get_event |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 56 | port_create | ✅ | |
| 57 | port_queue | ||
| 58 | port_wait | ✅ | |
| 59 | port_cancel |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 60 | futex_wait | ✅ | |
| 61 | futex_wake | ✅ | |
| 62 | futex_requeue |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 63 | vmo_create | ✅ | |
| 64 | vmo_read | ✅ | |
| 65 | vmo_write | ||
| 66 | vmo_create_child | ||
| 67 | vmo_get_size | ||
| 68 | vmo_set_size | ✅ | |
| 69 | vmo_op_range | ||
| 70 | vmo_replace_as_executable | ✅ | |
| 71 | vmo_create_physical | create a VM object referring to a specific contiguous range of physical memory | ✅ |
| 72 | vmo_set_cache_policy |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 73 | vmar_allocate | ✅ | |
| 74 | vmar_map | ✅ | |
| 75 | vmar_unmap | ✅ | |
| 76 | vmar_protect | ||
| 77 | vmar_op_range | ||
| 78 | vmar_destroy | ✅ |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 79 | pager_create | ||
| 80 | pager_create_vmo | ||
| 81 | pager_detach_vmo | ||
| 82 | pager_supply_pages | ||
| 83 | pager_op_range |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 84 | cprng_add_entropy | ||
| 85 | cprng_draw |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 86 | nanosleep | ||
| 87 | clock_get | ||
| 88 | clock_get_monotonic | ✅ | |
| 89 | ticks_get | ||
| 90 | ticks_per_second | ||
| 91 | deadline_after | ||
| 92 | clock_adjust |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 93 | timer_create | ✅ | |
| 94 | timer_set | ✅ | |
| 95 | timer_cancel | ✅ |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 96 | guest_create | ✅ | |
| 97 | guest_set_trap | ✅ |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 98 | vcpu_create | ✅ | |
| 99 | vcpu_resume | ✅ | |
| 100 | vcpu_interrupt | ✅ | |
| 101 | vcpu_read_state | ✅ | |
| 102 | vcpu_write_state | ✅ | |
| 103 | interrupt_bind_vcpu |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 104 | system_get_dcache_line_size | ||
| 105 | system_get_features | ||
| 106 | system_get_num_cpus | ||
| 107 | system_get_physmem | ||
| 108 | system_get_version_string |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 109 | debuglog_create | ✅ | |
| 110 | debuglog_write | ||
| 111 | debuglog_read | ||
| 112 | debug_read | ||
| 113 | debug_write | ||
| 114 | debug_send_command |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 115 | vmar_unmap_handle_close_thread_exit | ||
| 116 | futex_wake_handle_close_thread_exit |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 117 | system_mexec | ||
| 118 | system_mexec_payload_get | ||
| 119 | system_powerctl |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 120 | bti_create | ✅ | |
| 121 | bti_pin | ✅ | |
| 122 | bti_release_quarantine | ✅ | |
| 123 | cache_flush | ||
| 124 | interrupt_ack | ✅ | |
| 125 | interrupt_bind | ✅ | |
| 126 | interrupt_create | ✅ | |
| 127 | interrupt_destroy | ✅ | |
| 128 | interrupt_trigger | ✅ | |
| 129 | interrupt_wait | ✅ | |
| 130 | iommu_create | ✅ | |
| 131 | pmt_unpin | ✅ | |
| 132 | resource_create | ||
| 133 | smc_call |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 134 | framebuffer_get_info | ||
| 135 | framebugger_set_range |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 136 | ktrace_control | ||
| 137 | ktrace_read | ||
| 138 | ktrace_write | ||
| 139 | mtrace_control |
| id | zircon syscall | description | zcore |
|---|---|---|---|
| 140 | ioports_release | ||
| 141 | pc_firmware_tables | ||
| 142 | pci_add_subtract_io_range | ✅ | |
| 143 | pci_cfg_pio_rw | ✅ | |
| 144 | pci_config_read | ✅ | |
| 145 | pci_config_write | ✅ | |
| 146 | pci_enable_bus_master | ✅ | |
| 147 | pci_get_bar | ✅ | |
| 148 | pci_get_nth_device | ✅ | |
| 149 | pci_init | ✅ | |
| 150 | pci_map_interrupt | ✅ | |
| 151 | pci_query_irq_mode | ✅ | |
| 152 | pci_reset_device | ||
| 153 | pci_set_irq_mode |
- 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_shutdown - prevent reading or writing
- socket_write - write data to a socket
- zx_stream_create() - create a stream from a VMO
- zx_stream_readv() - read data from the stream at the current seek offset
- zx_stream_readv_at() - read data from the stream at a given offset
- zx_stream_writev() - write data to the stream at the current seek offset
- zx_stream_writev_at() - write data to the stream at a given offset
- zx_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 - read a system clock
- clock_get_monotonic - read the monotonic system clock
- 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
- clock_adjust
- 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 virtual cpu
- vcpu_resume - resume execution of a virtual cpu
- vcpu_interrupt - raise an interrupt on a virtual cpu
- vcpu_read_state - read state from a virtual cpu
- vcpu_write_state - write state to a virtual cpu
- 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_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
- 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