Zircon系统调用
Handle
- handle_close - 关闭句柄
- handle_duplicate - 创建句柄副本(可选项为缩减的权限值)
- handle_replace - 创建新句柄(可选项为缩减的权限值),并销毁旧句柄
Object
- object_get_child - 通过koid,查找某个对象的子对象
- object_get_cookie - 读取对象的cookie值
- object_get_info - 获取对象的信息
- object_get_property - 读取对象的属性值
- object_set_cookie - 向对象的cookie中写入值
- object_set_property - 修改对象属性值
- object_signal - 设置或清除某个对象上的用户信号
- object_signal_peer - 设置或清除相反对等方向上的用户信号
- object_wait_many - 等待多个对象上的信号产生
- object_wait_one - 等待单个对象上的信号产生
- object_wait_async - 在信号改变时进行异步通知
Thread(线程)
- thread_create - 在进程中创建新线程
- thread_exit - 退出当前线程
- thread_read_state - 从线程中读取寄存器状态
- thread_start - 运行新线程
- thread_write_state - 修改线程的寄存器状态
Process(进程)
- process_create - 在作业中创建新进程
- process_read_memory - 从进程的地址空间中读取数据
- process_start - 启动新进程
- process_write_memory - 向进程的地址空间中写入数据
- process_exit - 退出当前进程
Job(作业)
- job_create - 在作业中创建新的子作业
- job_set_policy - 改变作业和它的子作业的策略
Task(任务),包括线程, 进程和作业
- task_bind_exception_port - 向任务上挂载异常端口
- task_kill - 终止任务的运行
- task_resume - 继续执行挂起的任务
- task_suspend - 将一个任务中断挂起
Channel
- channel_call - 同步发送消息并接受响应
- channel_create - 创建新channel
- channel_read - 从channel中读取消息
- channel_read_etc - 从channel中读取消息并返回带句柄信息的数组
- channel_write - 向channel中读取消息
Socket
- socket_create - 创建socket
- socket_read - 从socket中读数据
- socket_write - 向socket写入数据
先进先出队列
- fifo_create - 创建队列
- fifo_read - 从队列中读取数据
- fifo_write - 写入数据到队列中
Event和Event Pair
- event_create - 创建Event对象
- eventpair_create - 创建一对Event Pair
Port
- port_create - 创建端口
- port_queue - 向端口发送数据包
- port_wait - 等待端口接收数据包
- port_cancel - 取消获取来自async_wait的通知
Futex
- futex_wait - 等待futex变成可用
- futex_wake - 唤醒futex的等待者
- futex_requeue - 唤醒futex的一些等待者,并将其他等待者重新加入队列中
虚拟内存对象(VMO)
- vmo_create - 创建vmo
- vmo_read - 读取vmo
- vmo_write - 写入vmo
- vmo_clone - 关闭vmo
- vmo_get_size - 获取vmo的大小
- vmo_set_size - 调整vmo的大小
- vmo_op_range - 在vmo的一段区域内执行操作
虚拟动态内存对象(VMAR)
- vmar_allocate -创建子VMAR
- vmar_map - 将VMO对象映射到某个进程中
- vmar_unmap - 将某个内存区域从进程中取消映射
- vmar_protect - 调整内存访问的权限
- vmar_destroy - 销毁VMAR和它所有的子代VMAR
加密安全的随机数发生器
时间
- nanosleep - 休眠一段时间(以ns为单位)
- clock_get - 读取系统时钟
- ticks_get - 读取高精度计时器tick数
- ticks_per_second - 读取一秒时间内高精度计时器tick数
计时器
- timer_create - 创建计时器对象
- timer_set - 启动计时器
- timer_cancel - 取消计时器
虚拟机监视器管理的客户机
- guest_create - 创建客户虚拟机
- guest_set_trap - 在客户虚拟机机中设置陷入中断
虚拟CPU
- vcpu_create - 创建虚拟cpu
- vcpu_resume - 恢复虚拟cpu的运行
- vcpu_interrupt - 在虚拟cpu上触发中断
- vcpu_read_state - 读取虚拟cpu的状态
- vcpu_write_state - 向虚拟cpu写入状态信息
全局系统信息
- system_get_features - 获取硬件相关功能
- system_get_num_cpus - 获取CPU核数
- system_get_physmem - 获取物理内存大小
- system_get_version - 获取版本信息字符串
日志
- log_create - 创建内核托管的日志读写器
- log_write - 向日志项中写入日志
- log_read - 从日志项中读取日志
操作合并函数
- vmar_unmap_handle_close_thread_exit - 三合一操作(取消vmar映射,关闭句柄和退出线程)
- futex_wake_handle_close_thread_exit - 三合一操作(唤醒futex,关闭句柄和退出线程)
驱动开发工具
- cache_flush - 刷新CPU数据和/或指令缓存
- interrupt_create - 创建中断对象
- interrupt_bind - 绑定中断向量到中断对象句柄
- interrupt_wait - 等待中断对象句柄产生中断
- interrupt_ack - 确认应答并重新启动中断。
- interrupt_destry - 销毁中断对象
- interrupt_trigger - 触发虚拟中断对象
- acpi_uefi_rsdp
- mmap_device_io
- set_framebuffer
- set_framebuffer_vmo
- vmo_create_contiguous
- vmo_create_physical