句柄
- handle_check_valid - 检查句柄的有效性。
 - handle_close - 关闭句柄。
 - handle_close_many - 关闭多个句柄。
 - handle_duplicate - 复制标识名。
 - handle_replace - 替换句柄。
 
物体
- object_get_child - 如果内核对象具有子对象,则获取由提供的内核对象 ID 指定的子对象的句柄。
 - object_get_info - 查询有关对象的信息。
 - object_get_property - 请求各种内核对象的各种属性。
 - object_set_profile - 将调度配置文件应用于线程。
 - object_set_property - 设置各种内核对象的各种属性。
 - object_signal - 向对象发送信号。
 - object_signal_peer - 向对象的对等方发送信号。
 - object_wait_async - 订阅对象的信号。
 - object_wait_many - 等待多个对象上的信号。
 - object_wait_one - 等待对象上的信号。
 
线程
- thread_create - 创建线程。
 - thread_exit - 终止当前正在运行的线程。
 - thread_legacy_yield - 将当前线程的 CPU 交还给调度器。
 - thread_raise_exception - 抛出用户生成的异常。
 - thread_read_state - 读取线程状态的一个方面。
 - thread_start - 在线程上开始执行。
 - thread_write_state - 写入线程状态的一个方面。
 
线程抽样
- sampler_create - 创建一个采样器会话,返回一个 IOBuffer,其中包含为每个
 - sampler_start - 开始对提供的 IOBuffer 进行采样。
 - sampler_stop - 停止将样本写入提供的 IOBuffer。
 
IO 缓冲区
- iob_allocate_id - 从 IOBuffer 区域分配一个 ID
 - iob_create - 使用一组选项创建 IOBuffer。
 - iob_create_shared_region - 创建可用于多个 IOBuffer 对象的共享区域。
 - iob_writev - 对 IOBuffer 区域执行中介写入。
 
进程
- process_create - 创建新进程。
 - process_create_shared - 创建一个新进程,该进程可以与其他进程共享其部分地址空间。
 - process_exit - 退出当前正在运行的进程。
 - process_read_memory - 从给定进程的地址空间读取。
 - process_start - 在进程上开始执行。
 - process_write_memory - 写入给定进程的地址空间。
 
工作机会
- job_create - 创建新作业。
 - job_set_critical - 将进程设置为对作业至关重要。
 - job_set_policy - 设置作业安全和资源政策。
 
任务(线程、进程或作业)
- task_create_exception_channel - 为给定的作业、进程或线程创建异常渠道。
 - task_kill - 终止提供的作业或进程。
 - task_suspend - 暂停指定任务。目前,只能暂停线程或进程句柄。
 - task_suspend_token - 暂停指定任务。目前,只能暂停线程或进程句柄。
 
个人资料
- profile_create - 创建调度程序配置文件。
 
异常
- exception_get_process - 为异常的进程创建句柄。
 - exception_get_thread - 为异常的线程创建句柄。
 
频道
- channel_call - 向渠道发送消息并等待回复。
 - channel_call_etc - 向渠道发送消息并等待回复。
 - channel_create - 创建频道。
 - channel_read - 从渠道读取消息。
 - channel_read_etc - 从渠道读取消息。
 - channel_write - 向渠道写入消息。
 - channel_write_etc - 将消息写入频道。
 
套接字
- socket_create - 创建套接字。
 - socket_read - 从套接字读取数据。
 - socket_set_disposition - 设置写入处置方式。
 - socket_write - 将数据写入套接字。
 
信息流
- stream_create - 从 VMO 创建流。
 - stream_readv - 从当前搜索偏移量处的流中读取数据。
 - stream_readv_at - 从指定偏移量处的流中读取数据。
 - stream_seek - 修改搜索偏移量。
 - stream_writev - 将数据写入流中的当前搜索偏移量。
 - stream_writev_at - 将数据写入指定偏移量处的流。
 
Fifos
- fifo_create - 创建 FIFO。
 - fifo_read - 从 FIFO 读取数据。
 - fifo_write - 将数据写入 FIFO。
 
事件、配对事件和计数器
- counter_add - 向计数器添加一个值。
 - counter_create - 创建计数器。
 - counter_read - 读取计数器的值。
 - counter_write - 将值写入计数器。
 - event_create - 创建事件。
 - eventpair_create - 创建事件对。
 - system_get_event - 检索系统事件的句柄。
 
端口
- port_cancel - 取消对象的异步端口通知。
 - port_cancel_key - 取消与某个键匹配的所有异步端口通知。
 - port_create - 创建 IO 端口。
 - port_queue - 将数据包排入端口队列。
 - port_wait - 等待端口中的数据包到达。
 
Futex
- futex_get_owner - 获取 futex 的当前 koid 所有者(如果有)。
 - futex_requeue - 唤醒等待 futex 的一些线程,并将更多等待者移至另一个等待队列。
 - futex_requeue_single_owner - 唤醒一个等待 futex 的线程,并将更多等待者重新排队到另一个 futex 等待队列。
 - futex_wait - 等待 futex。
 - futex_wake - 唤醒等待 futex 的一些线程,并将 futex 的所有权设置为无。
 - futex_wake_handle_close_thread_exit - 写入 futex、唤醒 futex、关闭句柄、退出。
 - futex_wake_single_owner - 唤醒一个等待 futex 的线程,并将 futex 的所有权设置为该线程。
 
虚拟内存对象 (VMO)
- vmo_create - 创建 VM 对象。
 - vmo_create_child -
 - vmo_create_contiguous -
 - vmo_create_physical -
 - vmo_get_size -
 - vmo_get_stream_size -
 - vmo_op_range -
 - vmo_read - 从 VMO 读取字节。
 - vmo_replace_as_executable -
 - vmo_set_cache_policy -
 - vmo_set_size -
 - vmo_set_stream_size -
 - vmo_transfer_data -
 - vmo_write - 将字节写入 VMO。
 
虚拟内存地址区域 (VMAR)
- vmar_allocate - 分配新的子区域。
 - vmar_destroy - 销毁虚拟内存地址区域。
 - vmar_map - 添加内存映射。
 - vmar_map_clock - 映射内核时钟对象的状态。
 - vmar_map_iob - 映射附加到 IOBuffer 的内存区域。此调用具有
 - vmar_op_range - 对映射到此 VMAR 中的 VMO 执行操作。
 - vmar_protect - 设置虚拟内存页的保护。
 - vmar_unmap - 取消映射虚拟内存页。
 
用户空间分页器
- pager_create - 创建新的分页器对象。
 - pager_create_vmo - 创建由分页器拥有的 VMO。
 - pager_detach_vmo - 从分页器分离 VMO。
 - pager_op_range - 对属于分页器 VMO 的范围执行操作。
 - pager_query_dirty_ranges - 查询由分页器拥有的 VMO 中的连续脏页范围。
 - pager_query_vmo_stats -
 - pager_supply_pages - 将内存页提供给归 Pager 所有的 VMO。
 
加密安全的 RNG
- cprng_add_entropy - 向内核 CPRNG 添加熵。
 - cprng_draw - 从内核的 CPRNG 中抽取。
 
时间
- clock_create - 创建新的时钟对象。
 - clock_get_boot - 获取当前启动时间。
 - clock_get_details - 获取时钟当前状态的所有低层级详细信息。
 - clock_get_details_mapped - 获取映射时钟当前状态的所有低层级详细信息。行为与以下函数完全相同
 - clock_get_monotonic - 获取当前单调时间。
 - clock_read - 执行时钟的基本读取。
 - clock_read_mapped - 对映射时钟的状态执行基本读取。行为与调用
 - clock_update - 对时钟对象进行调整。
 - deadline_after - 将相对于当前时间的相对时间转换为绝对截止时间。
 - nanosleep - 高分辨率睡眠。
 - ticks_get - 读取自启动以来高精度计时器滴答的次数,不包括
 - ticks_get_boot - 读取自启动以来高精度计时器滴答的次数,包括在
 - ticks_per_second - 读取每秒的高精度计时器 tick 数。
 
计时器
- timer_cancel - 取消计时器。
 - timer_create - 创建计时器。
 - timer_set - 启动计时器。
 
消息信号中断 (MSI)
- msi_allocate - 分配消息信号中断 (MSI)。
 - msi_create - 根据消息信号中断 (MSI) 分配创建中断对象。
 
Hypervisor guest
- guest_create - 创建访客。
 - guest_set_trap - 在 guest 中设置陷阱。
 
虚拟 CPU
- vcpu_create - 创建 VCPU。
 - vcpu_enter - 进入 VCPU,使其恢复执行。
 - vcpu_interrupt - 在 VCPU 上引发中断。
 - vcpu_kick - 踢出 VCPU,使其停止执行。
 - vcpu_read_state - 读取 VCPU 的状态。
 - vcpu_write_state - 写入 vCPU 的状态。
 
全球系统信息
- system_get_dcache_line_size - TODO(https://fxbug.dev/42108078)
 - system_get_features - 获取支持的硬件功能。
 - system_get_num_cpus - 获取系统上的逻辑处理器数量。
 - system_get_page_size - 获取系统的页面大小。
 - system_get_physmem - 获取系统上的物理内存量。
 - system_get_version_string - 获取系统的版本字符串。
 
调试日志记录
- debug_read - 从调试串行端口读取消息。
 - debug_send_command - TODO(https://fxbug.dev/42108078)
 - debug_write - 将消息写入调试串行端口。
 - debuglog_create - 创建一个允许访问内核调试日志的对象。
 - debuglog_read - 从内核调试日志读取单个日志记录。
 - debuglog_write - 将消息写入内核调试日志。
 
多功能
- vmar_unmap_handle_close_thread_exit - 取消内存映射、关闭句柄、退出。
 
系统
- system_barrier - 对其他正在运行的线程发出屏障。
 - system_get_performance_info - 获取 CPU 性能参数。
 - system_mexec - 使用新内核和启动映像软重启系统。
 - system_mexec_payload_get - 返回包含启动此系统所需的 ZBI 条目的 ZBI。
 - system_powerctl - TODO(https://fxbug.dev/42108078)
 - system_set_performance_info - 设置 CPU 性能参数。
 - system_set_processor_power_domain - 将给定电源域内的处理器电源级别告知内核
 - system_set_processor_power_state - 更新内核观察到的当前处理器电源电平状态。
 - system_suspend_enter -
 - system_watch_memory_stall - 检索一个事件,如果内存停滞级别
 
驱动程序
- bti_create - 创建新的总线事务启动器。
 - bti_pin - 固定网页并授予设备对网页的访问权限。
 - bti_release_quarantine - 发布所有隔离的 PMT。
 - cache_flush - 清空 CPU 数据和/或指令缓存。
 - interrupt_ack - 确认中断并重新启用中断。
 - interrupt_bind - 将中断对象绑定到端口。
 - interrupt_create - 创建中断对象。
 - interrupt_destroy - 销毁中断对象。
 - interrupt_trigger - 触发虚拟中断对象。
 - interrupt_wait - 等待中断。
 - iommu_create - 在内核中创建一个新的 IOMMU 对象。
 - pmt_unpin - 取消固定页面并撤消设备对这些页面的访问权限。
 - resource_create - 创建资源对象。
 - smc_call - 从用户空间发出安全监控器调用 (SMC)。
 
跟踪记录
- ktrace_control - TODO(https://fxbug.dev/42108078)
 - ktrace_read - TODO(https://fxbug.dev/42108078)
 - mtrace_control - TODO(https://fxbug.dev/42108078)
 
受限模式(正在开发中)
- restricted_bind_state - 创建受限状态 VMO 并将其绑定到当前线程。
 - restricted_enter - 进入受限模式
 - restricted_kick - 将线程从受限模式中踢出。
 - restricted_unbind_state - 从当前线程解除绑定受限状态 VMO。
 
其他/正在处理
- ioports_release - TODO(https://fxbug.dev/42108078)
 - ioports_request - TODO(https://fxbug.dev/42108078)
 - pci_add_subtract_io_range - 此函数已过时,不应再使用。
 - pci_cfg_pio_rw - 此函数已过时,不应再使用。
 - pci_config_read - 此函数已过时,不应再使用。
 - pci_config_write - 此函数已过时,不应再使用。
 - pci_enable_bus_master - 此函数已过时,不应使用。
 - pci_get_bar - 此函数已过时,不应使用。
 - pci_get_nth_device - 此函数已过时,不应再使用。
 - pci_init - 此函数已过时,不应使用。
 - pci_map_interrupt - 此函数已过时,不应再使用。
 - pci_query_irq_mode - 此函数已过时,不应再使用。
 - pci_reset_device - 此函数已过时,不应使用。
 - pci_set_irq_mode - 此函数已过时,不应再使用。