github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/fuchsia/object.txt (about)

     1  # Copyright 2017 syzkaller project authors. All rights reserved.
     2  # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     3  
     4  # See https://cs.opensource.google/fuchsia/fuchsia/+/main:zircon/vdso/object.fidl
     5  
     6  include <zircon/syscalls.h>
     7  include <zircon/syscalls/exception.h>
     8  include <zircon/syscalls/object.h>
     9  include <zircon/syscalls/port.h>
    10  include <zircon/syscalls/profile.h>
    11  
    12  resource koid[int64]: 0
    13  
    14  zx_object_get_child(handle zx_handle, koid koid, rights flags[zx_rights], out ptr[out, zx_handle])
    15  
    16  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])
    17  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])
    18  zx_object_get_info$ZX_INFO_HANDLE_TABLE(handle zx_handle, topic const[ZX_INFO_HANDLE_TABLE], buffer ptr[out, zx_info_handle_extended], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
    19  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])
    20  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])
    21  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])
    22  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])
    23  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])
    24  zx_object_get_info$ZX_INFO_THREAD(handle zx_thread, topic const[ZX_INFO_THREAD], buffer ptr[out, zx_info_thread], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
    25  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])
    26  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])
    27  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])
    28  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])
    29  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])
    30  zx_object_get_info$ZX_INFO_SOCKET(handle zx_socket, topic const[ZX_INFO_SOCKET], buffer ptr[out, zx_info_socket], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
    31  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])
    32  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])
    33  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])
    34  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])
    35  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])
    36  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])
    37  zx_object_get_info$ZX_INFO_KMEM_STATS_EXTENDED(root_resource zx_root_resource, topic const[ZX_INFO_KMEM_STATS_EXTENDED], buffer ptr[out, zx_info_kmem_stats_extended], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
    38  zx_object_get_info$ZX_INFO_TIMER(handle zx_timer, topic const[ZX_INFO_TIMER], buffer ptr[out, zx_info_timer], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
    39  zx_object_get_info$ZX_INFO_GUEST_STATS(handle zx_handle, topic const[ZX_INFO_GUEST_STATS], buffer ptr[out, zx_info_handle_basic], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
    40  zx_object_get_info$ZX_INFO_TASK_RUNTIME(handle zx_handle, topic const[ZX_INFO_TASK_RUNTIME], buffer ptr[out, zx_info_handle_basic], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
    41  zx_object_get_info$ZX_INFO_RESOURCE(handle zx_resource, topic const[ZX_INFO_RESOURCE], buffer ptr[out, zx_info_resource], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
    42  zx_object_get_info$ZX_INFO_BTI(handle zx_bti, topic const[ZX_INFO_BTI], buffer ptr[out, zx_info_bti], buffer_size bytesize[buffer], actual ptr[out, intptr], avail ptr[out, intptr])
    43  
    44  zx_object_get_property$ZX_PROP_NAME(handle zx_handle, property const[ZX_PROP_NAME], value ptr[out, array[int8]], size len[value])
    45  zx_object_get_property$ZX_PROP_REGISTER_FS(handle zx_thread, property const[ZX_PROP_REGISTER_FS], value ptr[out, intptr], size len[value])
    46  zx_object_get_property$ZX_PROP_REGISTER_GS(handle zx_thread, property const[ZX_PROP_REGISTER_GS], value ptr[out, intptr], size len[value])
    47  zx_object_get_property$ZX_PROP_PROCESS_DEBUG_ADDR(handle zx_process, property const[ZX_PROP_PROCESS_DEBUG_ADDR], value ptr[out, intptr], size len[value])
    48  zx_object_get_property$ZX_PROP_PROCESS_BREAK_ON_LOAD(handle zx_process, property const[ZX_PROP_PROCESS_BREAK_ON_LOAD], value ptr[out, intptr], size len[value])
    49  zx_object_get_property$ZX_PROP_PROCESS_VDSO_BASE_ADDRESS(handle zx_process, property const[ZX_PROP_PROCESS_VDSO_BASE_ADDRESS], value ptr[out, intptr], size len[value])
    50  zx_object_get_property$ZX_PROP_PROCESS_HW_TRACE_CONTEXT_ID(handle zx_process, property const[ZX_PROP_PROCESS_HW_TRACE_CONTEXT_ID], value ptr[out, intptr], size len[value])
    51  zx_object_get_property$ZX_PROP_SOCKET_RX_THRESHOLD(handle zx_socket, property const[ZX_PROP_SOCKET_RX_THRESHOLD], value ptr[out, int64], size len[value])
    52  zx_object_get_property$ZX_PROP_SOCKET_TX_THRESHOLD(handle zx_socket, property const[ZX_PROP_SOCKET_TX_THRESHOLD], value ptr[out, int64], size len[value])
    53  zx_object_get_property$ZX_PROP_STREAM_MODE_APPEND(handle zx_stream, property const[ZX_PROP_STREAM_MODE_APPEND], value ptr[out, int8], size len[value])
    54  zx_object_get_property$ZX_PROP_VMO_CONTENT_SIZE(handle zx_vmo, property const[ZX_PROP_VMO_CONTENT_SIZE], value ptr[out, int64], size len[value])
    55  # zx_exception not defined because never generated by a syscall
    56  zx_object_get_property$ZX_PROP_EXCEPTION_STATE(handle zx_handle, property const[ZX_PROP_EXCEPTION_STATE], value ptr[out, int32], size len[value])
    57  zx_object_get_property$ZX_PROP_EXCEPTION_STRATEGY(handle zx_handle, property const[ZX_PROP_EXCEPTION_STRATEGY], value ptr[out, int32], size len[value])
    58  
    59  zx_object_set_property$ZX_PROP_NAME(handle zx_handle, property const[ZX_PROP_NAME], value ptr[in, array[int8]], size len[value])
    60  zx_object_set_property$ZX_PROP_REGISTER_FS(handle zx_thread, property const[ZX_PROP_REGISTER_FS], value ptr[in, intptr], size len[value])
    61  zx_object_set_property$ZX_PROP_REGISTER_GS(handle zx_thread, property const[ZX_PROP_REGISTER_GS], value ptr[in, intptr], size len[value])
    62  zx_object_set_property$ZX_PROP_PROCESS_DEBUG_ADDR(handle zx_process, property const[ZX_PROP_PROCESS_DEBUG_ADDR], value ptr[in, intptr], size len[value])
    63  zx_object_set_property$ZX_PROP_PROCESS_BREAK_ON_LOAD(handle zx_process, property const[ZX_PROP_PROCESS_BREAK_ON_LOAD], value ptr[in, intptr], size len[value])
    64  zx_object_set_property$ZX_PROP_JOB_KILL_ON_OOM(handle zx_job, property const[ZX_PROP_JOB_KILL_ON_OOM], value ptr[in, int64], size len[value])
    65  zx_object_set_property$ZX_PROP_SOCKET_RX_THRESHOLD(handle zx_socket, property const[ZX_PROP_SOCKET_RX_THRESHOLD], value ptr[in, int64], size len[value])
    66  zx_object_set_property$ZX_PROP_SOCKET_TX_THRESHOLD(handle zx_socket, property const[ZX_PROP_SOCKET_TX_THRESHOLD], value ptr[in, int64], size len[value])
    67  zx_object_set_property$ZX_PROP_STREAM_MODE_APPEND(handle zx_stream, property const[ZX_PROP_STREAM_MODE_APPEND], value ptr[in, int8], size len[value])
    68  zx_object_set_property$ZX_PROP_VMO_CONTENT_SIZE(handle zx_vmo, property const[ZX_PROP_VMO_CONTENT_SIZE], value ptr[in, int64], size len[value])
    69  # zx_exception not defined because never generated by a syscall
    70  zx_object_set_property$ZX_PROP_EXCEPTION_STATE(handle zx_handle, property const[ZX_PROP_EXCEPTION_STATE], value ptr[in, int32], size len[value])
    71  zx_object_set_property$ZX_PROP_EXCEPTION_STRATEGY(handle zx_handle, property const[ZX_PROP_EXCEPTION_STRATEGY], value ptr[in, int32], size len[value])
    72  
    73  zx_object_signal(handle zx_handle, clear_mask int32, set_mask int32)
    74  zx_object_signal_peer(handle zx_handle, clear_mask int32, set_mask int32)
    75  zx_object_wait_many(items ptr[in, array[zx_wait_item]], count len[items], deadline zx_time)
    76  zx_object_wait_one(handle zx_handle, signals int32, deadline zx_time, observed ptr[out, int32])
    77  zx_object_wait_async(handle zx_handle, port zx_port, key proc[1000, 4], signals int32, options flags[wait_async_options])
    78  zx_object_set_profile(handle zx_handle, profile zx_profile, options const[0])
    79  
    80  wait_async_options = ZX_WAIT_ASYNC_ONCE, ZX_WAIT_ASYNC_EDGE
    81  
    82  zx_info_handle_basic {
    83  	koid		koid
    84  	rights		int32
    85  	type		int32
    86  	related_koid	koid
    87  	props		int32
    88  }
    89  
    90  zx_info_handle_extended {
    91  	type		int32
    92  	handle		zx_handle
    93  	rights		int32
    94  	reserved	int32
    95  	koid		koid
    96  	related_koid	koid
    97  	peer_owner_koid	koid
    98  }
    99  
   100  zx_info_handle_count {
   101  	count	int32
   102  }
   103  
   104  zx_info_process_handle_stats {
   105  	handle_count	array[int32, ZX_OBJ_TYPE_UPPER_BOUND]
   106  }
   107  
   108  zx_info_job {
   109  	return_code		int64
   110  	exited			int8
   111  	kill_on_oom		int8
   112  	debugger_attached	int8
   113  }
   114  
   115  zx_info_process {
   116  	return_code		int64
   117  	started			int8
   118  	exited			int8
   119  	debugger_attached	int8
   120  }
   121  
   122  zx_info_thread {
   123  	state				int32
   124  	wait_exception_channel_type	int32
   125  }
   126  
   127  zx_exception_report {
   128  	header	zx_exception_header
   129  	context	zx_exception_context
   130  }
   131  
   132  zx_info_thread_stats {
   133  	total_runtime	int64
   134  }
   135  
   136  zx_info_cpu_stats {
   137  	cpu_number		int32
   138  	flags			int32
   139  	idle_time		int64
   140  	reschedules		int64
   141  	context_switches	int64
   142  	irq_preempts		int64
   143  	preempts		int64
   144  	yields			int64
   145  	ints			int64
   146  	timer_ints		int64
   147  	timers			int64
   148  	page_faults		int64
   149  	exceptions		int64
   150  	syscalls		int64
   151  	reschedule_ipis		int64
   152  	generic_ipis		int64
   153  }
   154  
   155  zx_info_vmar {
   156  	base	intptr
   157  	len	intptr
   158  }
   159  
   160  zx_info_vmo {
   161  	koid		koid
   162  	name		array[int8, ZX_MAX_NAME_LEN]
   163  	size_bytes	int64
   164  	parent_koid	koid
   165  	num_children	intptr
   166  	num_mappings	intptr
   167  	share_count	intptr
   168  	flags		int32
   169  	committed_bytes	int64
   170  	handle_rights	int32
   171  	create_options	int32
   172  	cache_policy	int32
   173  }
   174  
   175  zx_info_socket {
   176  	options			int32
   177  	rx_buf_max		intptr
   178  	rx_buf_size		intptr
   179  	rx_buf_available	intptr
   180  	tx_buf_max		intptr
   181  	tx_buf_size		intptr
   182  }
   183  
   184  zx_info_task_stats {
   185  	mem_mapped_bytes	intptr
   186  	mem_private_bytes	intptr
   187  	mem_shared_bytes	intptr
   188  	mem_scaled_shared_bytes	intptr
   189  }
   190  
   191  zx_info_maps {
   192  	name	array[int8, ZX_MAX_NAME_LEN]
   193  	base	intptr
   194  	size	intptr
   195  	depth	intptr
   196  	type	int32
   197  	mapping	zx_info_maps_mapping
   198  }
   199  
   200  zx_info_maps_mapping {
   201  	mmu_flags	int32
   202  	vmo_koid	koid
   203  	committed_pages	intptr
   204  }
   205  
   206  zx_info_kmem_stats {
   207  	total_bytes		int64
   208  	free_bytes		int64
   209  	wired_bytes		int64
   210  
   211  	total_heap_bytes	int64
   212  	free_heap_bytes		int64
   213  	vmo_bytes		int64
   214  	mmu_overhead_bytes	int64
   215  	ipc_bytes		int64
   216  	other_bytes		int64
   217  }
   218  
   219  zx_info_kmem_stats_extended {
   220  	total_bytes			int64
   221  	free_bytes			int64
   222  	wired_bytes			int64
   223  	total_heap_bytes		int64
   224  	free_heap_bytes			int64
   225  	vmo_bytes			int64
   226  # extended part
   227  	vmo_pager_total_bytes		int64
   228  	vmo_pager_newest_bytes		int64
   229  	vmo_pager_oldest_bytes		int64
   230  	vmo_discardable_locked_bytes	int64
   231  	vmo_discardable_unlocked_bytes	int64
   232  	mmu_overhead_bytes		int64
   233  	ipc_bytes			int64
   234  	other_bytes			int64
   235  }
   236  
   237  zx_info_timer {
   238  	options		int32
   239  	deadline	zx_time
   240  	slack		int64
   241  }
   242  
   243  zx_info_resource {
   244  	kind	int32
   245  	flags	int32
   246  	base	int64
   247  	size	intptr
   248  	name	array[int8, ZX_MAX_NAME_LEN]
   249  }
   250  
   251  zx_info_bti {
   252  	minimum_contiguity	int64
   253  	aspace_size		int64
   254  }
   255  
   256  zx_exception_header {
   257  	size	int32
   258  	type	int32
   259  }
   260  
   261  zx_exception_context [
   262  	x86_64	x86_64_exc_data
   263  	arm_64	arm64_exc_data
   264  ]
   265  
   266  x86_64_exc_data {
   267  	vector		int64
   268  	err_code	int64
   269  	cr2		int64
   270  }
   271  
   272  arm64_exc_data {
   273  	esr	int32
   274  	far	int64
   275  }
   276  
   277  zx_wait_item {
   278  	handle	zx_handle
   279  	waitfor	int32
   280  	pending	int32
   281  }