blob: 8a43350f78d729557387f419876e655c15ba834b [file] [log] [blame]
# Copyright 2017 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
include <zircon/syscalls.h>
include <zircon/syscalls/object.h>
include <zircon/syscalls/exception.h>
resource koid[int64]: 0
# TODO: temporary disabled as it crashes kernel left and right.
# zx_object_get_child(handle zx_handle, koid koid, rights flags[zx_rights], out ptr[out, zx_handle])
zx_object_get_info$ZX_INFO_HANDLE_VALID(handle zx_handle, topic const[ZX_INFO_HANDLE_VALID], buffer const[0], buffer_size const[0], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_HANDLE_BASIC(handle zx_handle, topic const[ZX_INFO_HANDLE_BASIC], buffer ptr[out, zx_info_handle_basic], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_HANDLE_COUNT(handle zx_handle, topic const[ZX_INFO_HANDLE_COUNT], buffer ptr[out, zx_info_handle_count], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_PROCESS_HANDLE_STATS(handle zx_process, topic const[ZX_INFO_PROCESS_HANDLE_STATS], buffer ptr[out, zx_info_process_handle_stats], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_JOB(handle zx_process, topic const[ZX_INFO_JOB], buffer ptr[out, zx_info_job], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_PROCESS(handle zx_process, topic const[ZX_INFO_PROCESS], buffer ptr[out, zx_info_process], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_PROCESS_THREADS(handle zx_process, topic const[ZX_INFO_PROCESS_THREADS], buffer ptr[out, array[koid]], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_THREAD(handle zx_process, topic const[ZX_INFO_THREAD], buffer ptr[out, zx_info_thread], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_THREAD_EXCEPTION_REPORT(handle zx_thread, topic const[ZX_INFO_THREAD_EXCEPTION_REPORT], buffer ptr[out, zx_exception_report], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_THREAD_STATS(handle zx_thread, topic const[ZX_INFO_THREAD_STATS], buffer ptr[out, zx_info_thread_stats], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_CPU_STATS(root_resource zx_root_resource, topic const[ZX_INFO_CPU_STATS], buffer ptr[out, array[zx_info_cpu_stats]], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_VMAR(handle zx_vmar, topic const[ZX_INFO_VMAR], buffer ptr[out, zx_info_vmar], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_VMO(handle zx_vmar, topic const[ZX_INFO_VMO], buffer ptr[out, zx_info_vmo], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_SOCKET(handle zx_vmar, topic const[ZX_INFO_SOCKET], buffer ptr[out, zx_info_socket], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_JOB_CHILDREN(handle zx_job, topic const[ZX_INFO_JOB_CHILDREN], buffer ptr[out, array[koid]], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_JOB_PROCESSES(handle zx_job, topic const[ZX_INFO_JOB_PROCESSES], buffer ptr[out, array[koid]], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_TASK_STATS(handle zx_process, topic const[ZX_INFO_TASK_STATS], buffer ptr[out, zx_info_task_stats], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_PROCESS_MAPS(handle zx_process, topic const[ZX_INFO_PROCESS_MAPS], buffer ptr[out, array[zx_info_maps]], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_PROCESS_VMOS(handle zx_process, topic const[ZX_INFO_PROCESS_VMOS], buffer ptr[out, array[zx_info_vmo]], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_KMEM_STATS(root_resource zx_root_resource, topic const[ZX_INFO_KMEM_STATS], buffer ptr[out, zx_info_kmem_stats], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
# TODO: what is handle type here?
zx_object_get_info$ZX_INFO_RESOURCE(resource_handle zx_handle, topic const[ZX_INFO_RESOURCE], buffer ptr[out, zx_info_resource], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
zx_object_get_info$ZX_INFO_BTI(resource_handle zx_handle, topic const[ZX_INFO_BTI], buffer ptr[out, zx_info_bti], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
# TODO: detail properties
zx_object_get_property(handle zx_handle, property int32, value ptr[out, array[int8]], size len[value])
zx_object_set_property(handle zx_handle, property int32, value ptr[in, array[int8]], size len[value])
zx_object_signal(handle zx_handle, clear_mask int32, set_mask int32)
zx_object_signal_peer(handle zx_handle, clear_mask int32, set_mask int32)
zx_object_wait_many(items ptr[in, array[zx_wait_item]], count len[items], deadline zx_time)
zx_object_wait_one(handle zx_handle, signals int32, deadline zx_time, observed ptr[out, int32])
zx_object_wait_async(handle zx_handle, port zx_port, key proc[1000, 4], signals int32, options flags[wait_async_options])
wait_async_options = ZX_WAIT_ASYNC_ONCE
zx_info_handle_basic {
koid koid
rights int32
type int32
related_koid koid
props int32
}
zx_info_handle_count {
count int32
}
zx_info_process_handle_stats {
handle_count array[int32, ZX_OBJ_TYPE_UPPER_BOUND]
}
zx_info_job {
return_code int64
exited int8
kill_on_oom int8
debugger_attached int8
}
zx_info_process {
return_code int64
started int8
exited int8
debugger_attached int8
}
zx_info_thread {
state int32
wait_exception_port_type int32
}
zx_exception_report {
header zx_exception_header
context zx_exception_context
}
zx_info_thread_stats {
total_runtime int64
}
zx_info_cpu_stats {
cpu_number int32
flags int32
idle_time int64
reschedules int64
context_switches int64
irq_preempts int64
preempts int64
yields int64
ints int64
timer_ints int64
timers int64
page_faults int64
exceptions int64
syscalls int64
reschedule_ipis int64
generic_ipis int64
}
zx_info_vmar {
base intptr
len intptr
}
zx_info_vmo {
koid koid
name array[int8, ZX_MAX_NAME_LEN]
size_bytes int64
parent_koid koid
num_children intptr
num_mappings intptr
share_count intptr
flags int32
committed_bytes int64
handle_rights int32
create_options int32
cache_policy int32
}
zx_info_socket {
options int32
rx_buf_max intptr
rx_buf_size intptr
rx_buf_available intptr
tx_buf_max intptr
tx_buf_size intptr
}
zx_info_task_stats {
mem_mapped_bytes intptr
mem_private_bytes intptr
mem_shared_bytes intptr
mem_scaled_shared_bytes intptr
}
zx_info_maps {
name array[int8, ZX_MAX_NAME_LEN]
base intptr
size intptr
depth intptr
type int32
mapping zx_info_maps_mapping
}
zx_info_maps_mapping {
mmu_flags int32
vmo_koid koid
committed_pages intptr
}
zx_info_kmem_stats {
total_bytes int64
free_bytes int64
wired_bytes int64
total_heap_bytes int64
free_heap_bytes int64
vmo_bytes int64
mmu_overhead_bytes int64
ipc_bytes int64
other_bytes int64
}
zx_info_resource {
kind int32
flags int32
base int64
size intptr
name array[int8, ZX_MAX_NAME_LEN]
}
zx_info_bti {
minimum_contiguity int64
aspace_size int64
}
zx_exception_header {
size int32
type int32
}
zx_exception_context [
x86_64 x86_64_exc_data
arm_64 arm64_exc_data
]
x86_64_exc_data {
vector int64
err_code int64
cr2 int64
}
arm64_exc_data {
esr int32
far int64
}
zx_wait_item {
handle zx_handle
waitfor int32
pending int32
}