| # 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 |
| } |