句柄
- 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_attach - 配置线程,使其堆栈定期对线程进行采样和写入
- sampler_create - 创建一个采样器会话,返回一个 IOBuffer,其中包含为每个采样分配的缓冲区
- sampler_start - 开始采样到提供的 IOBuffer。
- sampler_stop - 停止将样本写入提供的 IOBuffer。
IO 缓冲区
- iob_allocate_id - 从规则的 IOBuffer 区域分配一个 ID
- iob_create - 使用一组选项创建 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。
事件和事件对
- event_create - 创建事件。
- eventpair_create - 创建事件对。
- system_get_event - 检索系统事件的句柄。
端口
- port_cancel - 取消对象的异步端口通知。
- port_cancel_key - 取消与密钥匹配的所有异步端口通知。
- port_create - 创建 IO 端口。
- port_queue - 将数据包排入某个端口队列。
- port_wait - 等待数据包到达某个端口。
足球
- futex_get_owner - 获取 futex 的当前所有者(如果有)。
- 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 - 创建一个虚拟机对象。
- 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_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 - 将页面提供给分页器拥有的 VMO。
加密安全的 RNG
- cprng_add_entropy - 向内核 CPRNG 添加熵。
- cprng_draw - 从内核的 CPRNG 绘制。
时间
- clock_create - 创建新的时钟对象。
- clock_get_boot - 获取当前启动时间。
- clock_get_details - 获取时钟当前状态的所有低级别详细信息。
- clock_get_monotonic - 获取当前的单调时间。
- clock_read - 对时钟执行基本读取。
- clock_update - 对时钟对象进行调整。
- deadline_after - 将相对于现在的时间转换为绝对截止期限。
- nanosleep - 高分辨率睡眠。
- ticks_get - 读取自启动以来高精度计时器的计时次数。
- ticks_get_boot - 读取自启动以来高精度计时器的计时次数,包括在
- ticks_per_second - 读取高精度计时器每秒计时的数量。
计时器
- timer_cancel - 取消计时器。
- timer_create - 创建计时器。
- timer_set - 启动计时器。
消息有信号中断 (MSI)
- msi_allocate - 分配消息信号中断 (MSI)。
- msi_create - 从 Messaged-Signaled Interrupt (MSI) 分配创建中断对象。
Hypervisor 访客
- guest_create - 创建访客。
- guest_set_trap - 设置访客中的陷阱。
虚拟 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_create_processor_power_level_transition_handler - 为内核提供端口句柄,以便调度程序可以请求该端口
- 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_level_domain - 通知内核给定功率范围内的处理器功率等级
- system_suspend_enter -
DDK
- 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)。
显示器驱动程序
- framebuffer_get_info - TODO(https://fxbug.dev/42108078)
- framebuffer_set_range - TODO(https://fxbug.dev/42108078)
跟踪记录
- ktrace_control - TODO(https://fxbug.dev/42108078)
- ktrace_read - TODO(https://fxbug.dev/42108078)
- ktrace_write - 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)
- pc_firmware_tables - 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 - 此函数已过时,不应使用。