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

     1  # Copyright 2022 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  include <zircon/syscalls.h>
     5  include <zircon/syscalls/port.h>
     6  
     7  resource zx_port[zx_handle]
     8  
     9  port_create_options = ZX_PORT_BIND_TO_INTERRUPT, 0
    10  
    11  zx_port_create(options flags[port_create_options], out ptr[out, zx_port])
    12  zx_port_cancel(port zx_port, source zx_handle, key proc[1000, 16])
    13  zx_port_queue(handle zx_port, packet ptr[in, zx_port_packet_user])
    14  zx_port_wait(handle zx_port, deadline zx_time, packet ptr[out, zx_port_packet])
    15  
    16  zx_packet_user [
    17  	u64	array[int64, 4]
    18  	u32	array[int32, 8]
    19  	u16	array[int16, 16]
    20  	c8	array[int8, 32]
    21  ]
    22  
    23  zx_packet_signal {
    24  	trigger		int32
    25  	observed	int32
    26  	count		int64
    27  	timestamp	int64
    28  	reserved1	int64
    29  }
    30  
    31  zx_packet_interrupt {
    32  	timestamp	int64
    33  	reserved0	int64
    34  	reserved1	int64
    35  	reserved2	int64
    36  }
    37  
    38  zx_packet_page_request {
    39  	command		int16
    40  	flags		int16
    41  	reserved0	int16
    42  	offset		int64
    43  	length		int64
    44  	reserved1	int64
    45  }
    46  
    47  zx_port_packet_payload [
    48  	user		zx_packet_user
    49  	signal		zx_packet_signal
    50  	interrupt	zx_packet_interrupt
    51  	page_request	zx_packet_page_request
    52  ]
    53  
    54  zx_port_packet {
    55  	key	int64
    56  	type	int32
    57  	status	int32
    58  	payload	zx_port_packet_payload
    59  }
    60  
    61  zx_port_packet_user {
    62  	key	proc[1000, 16, int64]
    63  	type	const[ZX_PKT_TYPE_USER, int32]
    64  	status	const[0, int32]
    65  	payload	zx_packet_user
    66  }