帳號代碼
- 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_set_rseq:為執行緒註冊可重新啟動的序列。
- thread_start:在執行緒上開始執行。
- thread_write_state:寫入執行緒狀態的其中一個面向。
執行緒取樣
- sampler_create:建立取樣器工作階段,傳回 IOBuffer,其中包含為每個
- sampler_read:讀出可用的樣本。
- 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 - 將頁面提供給分頁器擁有的 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:讀取自開機以來的高精度計時器 tick 數,包括在
- ticks_per_second:讀取一秒內的高精度計時器 tick 數。
計時器
- timer_cancel - 取消計時器。
- timer_create:建立計時器。
- timer_set:啟動計時器。
訊息信號中斷 (MSI)
- msi_allocate:分配訊息信號中斷 (MSI)。
- msi_create:從訊息信號中斷 (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_resume:允許在成功後存取偵錯序列埠硬體
- debug_send_command - TODO(https://fxbug.dev/42108078)
- debug_suspend:暫停存取偵錯序列埠硬體。
- debug_write:將訊息寫入偵錯序列埠。
- debuglog_create:建立可存取核心偵錯記錄的物件。
- debuglog_read - 從核心偵錯記錄讀取單一記錄。
- debuglog_write:將訊息寫入核心偵錯記錄。
多功能
- vmar_unmap_handle_close_thread_exit - 取消對應記憶體、關閉控制代碼、結束。
系統
- system_get_performance_info:取得 CPU 效能參數。
- system_powerctl - TODO(https://fxbug.dev/42108078)
- system_set_performance_info:設定 CPU 效能參數。
- 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 物件。
- ioports_release - TODO(https://fxbug.dev/42108078)
- ioports_request - TODO(https://fxbug.dev/42108078)
- pmt_unpin:取消固定頁面,並撤銷裝置對頁面的存取權。
- resource_create:建立資源物件。
- smc_call:從使用者空間發出安全監控呼叫 (SMC)。
追蹤
- ktrace_control - TODO(https://fxbug.dev/42108078)
- ktrace_read - 待處理(https://fxbug.dev/42108078)
記憶體屏障
- membarrier_sync_process_data:在這個程序內的所有執行中執行緒上,發出資料 membarrier。
- membarrier_sync_process_insn:對這個程序中所有執行中的執行緒發出指令 membarrier。
嚴格篩選模式 (開發中)
- restricted_bind_state:建立受限狀態 VMO,並繫結至目前執行緒。
- restricted_enter - 進入受限模式
- restricted_kick - 將執行緒踢出受限模式。
- restricted_unbind_state:從目前執行緒解除繫結受限狀態 VMO。