blob: 6be91ec243acbd0d3d216e51b0591d95b71e5e34 [file] [log] [blame]
----- c-ulib-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
#ifndef LIB_ZXIO_TYPES_H_
#define LIB_ZXIO_TYPES_H_
#include <stdbool.h>
#include <stdint.h>
#include <zircon/compiler.h>
// This header defines the public types used in the zxio and zxio_ops interface.
__BEGIN_CDECLS
// Rights ----------------------------------------------------------------------
typedef uint32_t zx_rights_t;
#define ZX_RIGHT_NONE ((zx_rights_t)0x0u)
#define ZX_RIGHT_DUPLICATE ((zx_rights_t)0x1u)
#define ZX_RIGHT_TRANSFER ((zx_rights_t)0x2u)
#define ZX_RIGHT_READ ((zx_rights_t)0x4u)
#define ZX_RIGHT_WRITE ((zx_rights_t)0x8u)
#define ZX_RIGHT_EXECUTE ((zx_rights_t)0x10u)
#define ZX_RIGHT_MAP ((zx_rights_t)0x20u)
#define ZX_RIGHT_GET_PROPERTY ((zx_rights_t)0x40u)
#define ZX_RIGHT_SET_PROPERTY ((zx_rights_t)0x80u)
#define ZX_RIGHT_ENUMERATE ((zx_rights_t)0x100u)
#define ZX_RIGHT_DESTROY ((zx_rights_t)0x200u)
#define ZX_RIGHT_SET_POLICY ((zx_rights_t)0x400u)
#define ZX_RIGHT_GET_POLICY ((zx_rights_t)0x800u)
#define ZX_RIGHT_SIGNAL ((zx_rights_t)0x1000u)
#define ZX_RIGHT_SIGNAL_PEER ((zx_rights_t)0x2000u)
#define ZX_RIGHT_WAIT ((zx_rights_t)0x4000u)
#define ZX_RIGHT_INSPECT ((zx_rights_t)0x8000u)
#define ZX_RIGHT_MANAGE_JOB ((zx_rights_t)0x10000u)
#define ZX_RIGHT_MANAGE_PROCESS ((zx_rights_t)0x20000u)
#define ZX_RIGHT_MANAGE_THREAD ((zx_rights_t)0x40000u)
#define ZX_RIGHT_APPLY_PROFILE ((zx_rights_t)0x80000u)
#define ZX_RIGHT_SAME_RIGHTS ((zx_rights_t)0x80000000u)
#define ZX_RIGHT_ALL ((zx_rights_t)0x800fffffu)
// Clock -----------------------------------------------------------------------
typedef uint32_t zx_clock_t;
#define ZX_CLOCK_MONOTONIC ((zx_clock_t)0x0u)
#define ZX_CLOCK_UTC ((zx_clock_t)0x1u)
#define ZX_CLOCK_THREAD ((zx_clock_t)0x2u)
// Profile Info Type -----------------------------------------------------------
typedef uint32_t zx_profile_info_type_t;
#define ZX_PROFILE_INFO_TYPE_ZX_PROFILE_INFO_SCHEDULER ((zx_profile_info_type_t)0x1u)
// Stream Seek Origin ----------------------------------------------------------
typedef uint32_t zx_stream_seek_origin_t;
#define ZX_STREAM_SEEK_ORIGIN_START ((zx_stream_seek_origin_t)0x0u)
#define ZX_STREAM_SEEK_ORIGIN_CURRENT ((zx_stream_seek_origin_t)0x1u)
#define ZX_STREAM_SEEK_ORIGIN_END ((zx_stream_seek_origin_t)0x2u)
typedef uint32_t zx_handle_op_t;
typedef int32_t zx_futex_t;
typedef uint32_t zx_vm_option_t;
typedef int32_t zx_status_t;
typedef int64_t zx_time_t;
typedef int64_t zx_duration_t;
typedef int64_t zx_ticks_t;
typedef uint64_t zx_koid_t;
typedef uint64_t zx_vaddr_t;
typedef uint64_t zx_paddr_t;
typedef uint32_t zx_paddr32_t;
typedef uint64_t zx_gpaddr_t;
typedef uint64_t zx_off_t;
typedef uint32_t zx_procarg_t;
typedef uint32_t zx_signals_t;
typedef uint64_t zx_usize_t;
typedef uint64_t zx_uintptr_t;
__END_CDECLS
#endif // LIB_ZXIO_TYPES_H_
----- c-ulib-header.h END -----
----- category.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
#define HAVE_SYSCALL_CATEGORY_blocking 1
SYSCALL_CATEGORY_BEGIN(blocking)
SYSCALL_IN_CATEGORY(channel_call)
SYSCALL_IN_CATEGORY(channel_call_etc)
SYSCALL_IN_CATEGORY(futex_wait)
SYSCALL_IN_CATEGORY(interrupt_wait)
SYSCALL_IN_CATEGORY(nanosleep)
SYSCALL_IN_CATEGORY(object_wait_one)
SYSCALL_IN_CATEGORY(object_wait_many)
SYSCALL_IN_CATEGORY(port_wait)
SYSCALL_IN_CATEGORY(vcpu_resume)
SYSCALL_IN_CATEGORY(vmo_read)
SYSCALL_IN_CATEGORY(vmo_write)
SYSCALL_IN_CATEGORY(vmo_op_range)
SYSCALL_CATEGORY_END(blocking)
#define HAVE_SYSCALL_CATEGORY_const 1
SYSCALL_CATEGORY_BEGIN(const)
SYSCALL_IN_CATEGORY(ticks_per_second)
SYSCALL_IN_CATEGORY(system_get_dcache_line_size)
SYSCALL_IN_CATEGORY(system_get_num_cpus)
SYSCALL_IN_CATEGORY(system_get_version_string)
SYSCALL_CATEGORY_END(const)
#define HAVE_SYSCALL_CATEGORY_noreturn 1
SYSCALL_CATEGORY_BEGIN(noreturn)
SYSCALL_IN_CATEGORY(futex_wake_handle_close_thread_exit)
SYSCALL_IN_CATEGORY(process_exit)
SYSCALL_IN_CATEGORY(thread_exit)
SYSCALL_CATEGORY_END(noreturn)
#define HAVE_SYSCALL_CATEGORY_test_category1 1
SYSCALL_CATEGORY_BEGIN(test_category1)
SYSCALL_IN_CATEGORY(syscall_test_1)
SYSCALL_IN_CATEGORY(syscall_test_2)
SYSCALL_CATEGORY_END(test_category1)
#define HAVE_SYSCALL_CATEGORY_test_category2 1
SYSCALL_CATEGORY_BEGIN(test_category2)
SYSCALL_IN_CATEGORY(syscall_test_3)
SYSCALL_CATEGORY_END(test_category2)
#define HAVE_SYSCALL_CATEGORY_vdsocall 1
SYSCALL_CATEGORY_BEGIN(vdsocall)
SYSCALL_IN_CATEGORY(cache_flush)
SYSCALL_IN_CATEGORY(channel_call)
SYSCALL_IN_CATEGORY(channel_call_etc)
SYSCALL_IN_CATEGORY(clock_get_monotonic)
SYSCALL_IN_CATEGORY(cprng_draw)
SYSCALL_IN_CATEGORY(ticks_get)
SYSCALL_IN_CATEGORY(ticks_per_second)
SYSCALL_IN_CATEGORY(deadline_after)
SYSCALL_IN_CATEGORY(vmar_unmap_handle_close_thread_exit)
SYSCALL_IN_CATEGORY(futex_wake_handle_close_thread_exit)
SYSCALL_IN_CATEGORY(system_get_dcache_line_size)
SYSCALL_IN_CATEGORY(system_get_num_cpus)
SYSCALL_IN_CATEGORY(system_get_version_string)
SYSCALL_IN_CATEGORY(system_get_physmem)
SYSCALL_IN_CATEGORY(system_get_features)
SYSCALL_CATEGORY_END(vdsocall)
----- category.h END -----
----- go-syscall-arm64-asm.go START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
#include "textflag.h"
// func Sys_bti_create(iommu Handle, options uint32, bti_id uint64, out *Handle) Status
TEXT ·Sys_bti_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_bti_create(SB)
// func Sys_bti_pin(handle Handle, options uint32, vmo Handle, offset uint64, size uint64, addrs *Paddr, num_addrs uint, pmt *Handle) Status
TEXT ·Sys_bti_pin(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_bti_pin(SB)
// func Sys_bti_release_quarantine(handle Handle) Status
TEXT ·Sys_bti_release_quarantine(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_bti_release_quarantine(SB)
// func Sys_cache_flush(addr unsafe.Pointer, size uint, options uint32) Status
TEXT ·Sys_cache_flush(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_cache_flush(SB)
// func Sys_channel_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_channel_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_create(SB)
// func Sys_channel_read(handle Handle, options uint32, bytes unsafe.Pointer, handles *Handle, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_read(SB)
// func Sys_channel_read_etc(handle Handle, options uint32, bytes unsafe.Pointer, handles *HandleInfo, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_read_etc(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_read_etc(SB)
// func Sys_channel_write(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *Handle, num_handles uint32) Status
TEXT ·Sys_channel_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_write(SB)
// func Sys_channel_write_etc(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *HandleDisposition, num_handles uint32) Status
TEXT ·Sys_channel_write_etc(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_write_etc(SB)
// func Sys_channel_call_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_noretry(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_noretry(SB)
// func Sys_channel_call_finish(deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_finish(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_finish(SB)
// func Sys_channel_call(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call(SB)
// func Sys_channel_call_etc_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc_noretry(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_etc_noretry(SB)
// func Sys_channel_call_etc_finish(deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc_finish(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_etc_finish(SB)
// func Sys_channel_call_etc(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_etc(SB)
// func Sys_clock_get(clock_id uint32, out *Time) Status
TEXT ·Sys_clock_get(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_get(SB)
// func Sys_clock_get_monotonic() Time
TEXT ·Sys_clock_get_monotonic(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_get_monotonic(SB)
// func Sys_clock_adjust(handle Handle, clock_id uint32, offset int64) Status
TEXT ·Sys_clock_adjust(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_adjust(SB)
// func Sys_clock_get_monotonic_via_kernel() Time
TEXT ·Sys_clock_get_monotonic_via_kernel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_get_monotonic_via_kernel(SB)
// func Sys_clock_create(options uint64, args unsafe.Pointer, out *Handle) Status
TEXT ·Sys_clock_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_create(SB)
// func Sys_clock_read(handle Handle, now *Time) Status
TEXT ·Sys_clock_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_read(SB)
// func Sys_clock_get_details(handle Handle, options uint64, details unsafe.Pointer) Status
TEXT ·Sys_clock_get_details(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_get_details(SB)
// func Sys_clock_update(handle Handle, options uint64, args unsafe.Pointer) Status
TEXT ·Sys_clock_update(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_update(SB)
// func Sys_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_cprng_draw_once(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_cprng_draw_once(SB)
// func Sys_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
TEXT ·Sys_cprng_draw(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_cprng_draw(SB)
// func Sys_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_cprng_add_entropy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_cprng_add_entropy(SB)
// func Sys_debug_read(handle Handle, buffer *uint8, buffer_size uint, actual *uint) Status
TEXT ·Sys_debug_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debug_read(SB)
// func Sys_debug_write(buffer *uint8, buffer_size uint) Status
TEXT ·Sys_debug_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debug_write(SB)
// func Sys_debug_send_command(resource Handle, buffer *uint8, buffer_size uint) Status
TEXT ·Sys_debug_send_command(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debug_send_command(SB)
// func Sys_debuglog_create(resource Handle, options uint32, out *Handle) Status
TEXT ·Sys_debuglog_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debuglog_create(SB)
// func Sys_debuglog_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_debuglog_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debuglog_write(SB)
// func Sys_debuglog_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_debuglog_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debuglog_read(SB)
// func Sys_event_create(options uint32, out *Handle) Status
TEXT ·Sys_event_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_event_create(SB)
// func Sys_eventpair_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_eventpair_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_eventpair_create(SB)
// func Sys_exception_get_thread(handle Handle, out *Handle) Status
TEXT ·Sys_exception_get_thread(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_exception_get_thread(SB)
// func Sys_exception_get_process(handle Handle, out *Handle) Status
TEXT ·Sys_exception_get_process(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_exception_get_process(SB)
// func Sys_fifo_create(elem_count uint, elem_size uint, options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_fifo_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_fifo_create(SB)
// func Sys_fifo_read(handle Handle, elem_size uint, data unsafe.Pointer, data_size uint, actual_count *uint) Status
TEXT ·Sys_fifo_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_fifo_read(SB)
// func Sys_fifo_write(handle Handle, elem_size uint, data unsafe.Pointer, count uint, actual_count *uint) Status
TEXT ·Sys_fifo_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_fifo_write(SB)
// func Sys_framebuffer_get_info(resource Handle, format *uint32, width *uint32, height *uint32, stride *uint32) Status
TEXT ·Sys_framebuffer_get_info(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_framebuffer_get_info(SB)
// func Sys_framebuffer_set_range(resource Handle, vmo Handle, len uint32, format uint32, width uint32, height uint32, stride uint32) Status
TEXT ·Sys_framebuffer_set_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_framebuffer_set_range(SB)
// func Sys_futex_wait(value_ptr *int32, current_value int32, new_futex_owner Handle, deadline Time) Status
TEXT ·Sys_futex_wait(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_wait(SB)
// func Sys_futex_wake(value_ptr *int32, wake_count uint32) Status
TEXT ·Sys_futex_wake(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_wake(SB)
// func Sys_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
TEXT ·Sys_futex_requeue(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_requeue(SB)
// func Sys_futex_wake_single_owner(value_ptr *int32) Status
TEXT ·Sys_futex_wake_single_owner(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_wake_single_owner(SB)
// func Sys_futex_requeue_single_owner(value_ptr *int32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
TEXT ·Sys_futex_requeue_single_owner(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_requeue_single_owner(SB)
// func Sys_futex_get_owner(value_ptr *int32, koid *uint64) Status
TEXT ·Sys_futex_get_owner(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_get_owner(SB)
// func Sys_guest_create(resource Handle, options uint32, guest_handle *Handle, vmar_handle *Handle) Status
TEXT ·Sys_guest_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_guest_create(SB)
// func Sys_guest_set_trap(handle Handle, kind uint32, addr Vaddr, size uint, port_handle Handle, key uint64) Status
TEXT ·Sys_guest_set_trap(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_guest_set_trap(SB)
// func Sys_handle_close(handle Handle) Status
TEXT ·Sys_handle_close(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_handle_close(SB)
// func Sys_handle_close_many(handles *Handle, num_handles uint) Status
TEXT ·Sys_handle_close_many(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_handle_close_many(SB)
// func Sys_handle_duplicate(handle Handle, rights Rights, out *Handle) Status
TEXT ·Sys_handle_duplicate(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_handle_duplicate(SB)
// func Sys_handle_replace(handle Handle, rights Rights, out *Handle) Status
TEXT ·Sys_handle_replace(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_handle_replace(SB)
// func Sys_interrupt_create(src_obj Handle, src_num uint32, options uint32, out_handle *Handle) Status
TEXT ·Sys_interrupt_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_create(SB)
// func Sys_interrupt_bind(handle Handle, port_handle Handle, key uint64, options uint32) Status
TEXT ·Sys_interrupt_bind(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_bind(SB)
// func Sys_interrupt_wait(handle Handle, out_timestamp *Time) Status
TEXT ·Sys_interrupt_wait(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_wait(SB)
// func Sys_interrupt_destroy(handle Handle) Status
TEXT ·Sys_interrupt_destroy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_destroy(SB)
// func Sys_interrupt_ack(handle Handle) Status
TEXT ·Sys_interrupt_ack(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_ack(SB)
// func Sys_interrupt_trigger(handle Handle, options uint32, timestamp Time) Status
TEXT ·Sys_interrupt_trigger(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_trigger(SB)
// func Sys_interrupt_bind_vcpu(handle Handle, vcpu Handle, options uint32) Status
TEXT ·Sys_interrupt_bind_vcpu(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_bind_vcpu(SB)
// func Sys_iommu_create(resource Handle, typ uint32, desc unsafe.Pointer, desc_size uint, out *Handle) Status
TEXT ·Sys_iommu_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_iommu_create(SB)
// func Sys_ioports_request(resource Handle, io_addr uint16, len uint32) Status
TEXT ·Sys_ioports_request(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ioports_request(SB)
// func Sys_ioports_release(resource Handle, io_addr uint16, len uint32) Status
TEXT ·Sys_ioports_release(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ioports_release(SB)
// func Sys_job_create(parent_job Handle, options uint32, out *Handle) Status
TEXT ·Sys_job_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_job_create(SB)
// func Sys_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status
TEXT ·Sys_job_set_policy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_job_set_policy(SB)
// func Sys_job_set_critical(job Handle, options uint32, process Handle) Status
TEXT ·Sys_job_set_critical(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_job_set_critical(SB)
// func Sys_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status
TEXT ·Sys_ktrace_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ktrace_read(SB)
// func Sys_ktrace_control(handle Handle, action uint32, options uint32, ptr unsafe.Pointer) Status
TEXT ·Sys_ktrace_control(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ktrace_control(SB)
// func Sys_ktrace_write(handle Handle, id uint32, arg0 uint32, arg1 uint32) Status
TEXT ·Sys_ktrace_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ktrace_write(SB)
// func Sys_nanosleep(deadline Time) Status
TEXT ·Sys_nanosleep(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_nanosleep(SB)
// func Sys_ticks_get() int64
TEXT ·Sys_ticks_get(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ticks_get(SB)
// func Sys_ticks_per_second() int64
TEXT ·Sys_ticks_per_second(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ticks_per_second(SB)
// func Sys_deadline_after(nanoseconds Duration) Time
TEXT ·Sys_deadline_after(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_deadline_after(SB)
// func Sys_vmar_unmap_handle_close_thread_exit(vmar_handle Handle, addr Vaddr, size uint, close_handle Handle) Status
TEXT ·Sys_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB)
// func Sys_futex_wake_handle_close_thread_exit(value_ptr *int32, wake_count uint32, new_value int32, close_handle Handle)
TEXT ·Sys_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB)
// func Sys_ticks_get_via_kernel() int64
TEXT ·Sys_ticks_get_via_kernel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ticks_get_via_kernel(SB)
// func Sys_msi_allocate(handle Handle, count uint32, out_allocation *Handle) Status
TEXT ·Sys_msi_allocate(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_msi_allocate(SB)
// func Sys_msi_create(handle Handle, options uint32, msi_id uint32, vmo Handle, vmo_offset uint, out_interrupt *Handle) Status
TEXT ·Sys_msi_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_msi_create(SB)
// func Sys_mtrace_control(handle Handle, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) Status
TEXT ·Sys_mtrace_control(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_mtrace_control(SB)
// func Sys_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status
TEXT ·Sys_object_wait_one(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_wait_one(SB)
// func Sys_object_wait_many(items *WaitItem, num_items uint, deadline Time) Status
TEXT ·Sys_object_wait_many(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_wait_many(SB)
// func Sys_object_wait_async(handle Handle, port Handle, key uint64, signals Signals, options uint32) Status
TEXT ·Sys_object_wait_async(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_wait_async(SB)
// func Sys_object_signal(handle Handle, clear_mask uint32, set_mask uint32) Status
TEXT ·Sys_object_signal(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_signal(SB)
// func Sys_object_signal_peer(handle Handle, clear_mask uint32, set_mask uint32) Status
TEXT ·Sys_object_signal_peer(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_signal_peer(SB)
// func Sys_object_get_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
TEXT ·Sys_object_get_property(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_get_property(SB)
// func Sys_object_set_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
TEXT ·Sys_object_set_property(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_set_property(SB)
// func Sys_object_get_info(handle Handle, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint, avail *uint) Status
TEXT ·Sys_object_get_info(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_get_info(SB)
// func Sys_object_get_child(handle Handle, koid uint64, rights Rights, out *Handle) Status
TEXT ·Sys_object_get_child(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_get_child(SB)
// func Sys_object_set_profile(handle Handle, profile Handle, options uint32) Status
TEXT ·Sys_object_set_profile(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_set_profile(SB)
// func Sys_pager_create(options uint32, out *Handle) Status
TEXT ·Sys_pager_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_create(SB)
// func Sys_pager_create_vmo(pager Handle, options uint32, port Handle, key uint64, size uint64, out *Handle) Status
TEXT ·Sys_pager_create_vmo(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_create_vmo(SB)
// func Sys_pager_detach_vmo(pager Handle, vmo Handle) Status
TEXT ·Sys_pager_detach_vmo(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_detach_vmo(SB)
// func Sys_pager_supply_pages(pager Handle, pager_vmo Handle, offset uint64, length uint64, aux_vmo Handle, aux_offset uint64) Status
TEXT ·Sys_pager_supply_pages(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_supply_pages(SB)
// func Sys_pager_op_range(pager Handle, op uint32, pager_vmo Handle, offset uint64, length uint64, data uint64) Status
TEXT ·Sys_pager_op_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_op_range(SB)
// func Sys_pc_firmware_tables(handle Handle, acpi_rsdp *Paddr, smbios *Paddr) Status
TEXT ·Sys_pc_firmware_tables(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pc_firmware_tables(SB)
// func Sys_pci_get_nth_device(handle Handle, index uint32, out_info *uintptr, out_handle *Handle) Status
TEXT ·Sys_pci_get_nth_device(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_get_nth_device(SB)
// func Sys_pci_enable_bus_master(handle Handle, enable uint32) Status
TEXT ·Sys_pci_enable_bus_master(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_enable_bus_master(SB)
// func Sys_pci_reset_device(handle Handle) Status
TEXT ·Sys_pci_reset_device(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_reset_device(SB)
// func Sys_pci_config_read(handle Handle, offset uint16, width uint, out_val *uint32) Status
TEXT ·Sys_pci_config_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_config_read(SB)
// func Sys_pci_config_write(handle Handle, offset uint16, width uint, val uint32) Status
TEXT ·Sys_pci_config_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_config_write(SB)
// func Sys_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write uint32) Status
TEXT ·Sys_pci_cfg_pio_rw(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_cfg_pio_rw(SB)
// func Sys_pci_get_bar(handle Handle, bar_num uint32, out_bar *uintptr, out_handle *Handle) Status
TEXT ·Sys_pci_get_bar(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_get_bar(SB)
// func Sys_pci_map_interrupt(handle Handle, which_irq int32, out_handle *Handle) Status
TEXT ·Sys_pci_map_interrupt(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_map_interrupt(SB)
// func Sys_pci_query_irq_mode(handle Handle, mode uint32, out_max_irqs *uint32) Status
TEXT ·Sys_pci_query_irq_mode(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_query_irq_mode(SB)
// func Sys_pci_set_irq_mode(handle Handle, mode uint32, requested_irq_count uint32) Status
TEXT ·Sys_pci_set_irq_mode(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_set_irq_mode(SB)
// func Sys_pci_init(handle Handle, init_buf *uintptr, len uint32) Status
TEXT ·Sys_pci_init(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_init(SB)
// func Sys_pci_add_subtract_io_range(handle Handle, mmio uint32, base uint64, len uint64, add uint32) Status
TEXT ·Sys_pci_add_subtract_io_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_add_subtract_io_range(SB)
// func Sys_pmt_unpin(handle Handle) Status
TEXT ·Sys_pmt_unpin(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pmt_unpin(SB)
// func Sys_port_create(options uint32, out *Handle) Status
TEXT ·Sys_port_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_port_create(SB)
// func Sys_port_queue(handle Handle, packet *int) Status
TEXT ·Sys_port_queue(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_port_queue(SB)
// func Sys_port_wait(handle Handle, deadline Time, packet *int) Status
TEXT ·Sys_port_wait(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_port_wait(SB)
// func Sys_port_cancel(handle Handle, source Handle, key uint64) Status
TEXT ·Sys_port_cancel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_port_cancel(SB)
// func Sys_process_exit(retcode int64)
TEXT ·Sys_process_exit(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_exit(SB)
// func Sys_process_create(job Handle, name *uint8, name_size uint, options uint32, proc_handle *Handle, vmar_handle *Handle) Status
TEXT ·Sys_process_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_create(SB)
// func Sys_process_start(handle Handle, thread Handle, entry Vaddr, stack Vaddr, arg1 Handle, arg2 uintptr) Status
TEXT ·Sys_process_start(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_start(SB)
// func Sys_process_read_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_process_read_memory(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_read_memory(SB)
// func Sys_process_write_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_process_write_memory(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_write_memory(SB)
// func Sys_profile_create(root_job Handle, options uint32, profile *int, out *Handle) Status
TEXT ·Sys_profile_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_profile_create(SB)
// func Sys_resource_create(parent_rsrc Handle, options uint32, base uint64, size uint, name *uint8, name_size uint, resource_out *Handle) Status
TEXT ·Sys_resource_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_resource_create(SB)
// func Sys_smc_call(handle Handle, parameters *SMCParameters, out_smc_result *SMCResult) Status
TEXT ·Sys_smc_call(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_smc_call(SB)
// func Sys_socket_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_socket_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_socket_create(SB)
// func Sys_socket_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_socket_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_socket_write(SB)
// func Sys_socket_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_socket_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_socket_read(SB)
// func Sys_socket_shutdown(handle Handle, options uint32) Status
TEXT ·Sys_socket_shutdown(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_socket_shutdown(SB)
// func Sys_stream_create(options uint32, vmo Handle, seek uint64, out_stream *Handle) Status
TEXT ·Sys_stream_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_create(SB)
// func Sys_stream_writev(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_writev(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_writev(SB)
// func Sys_stream_writev_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_writev_at(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_writev_at(SB)
// func Sys_stream_readv(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_readv(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_readv(SB)
// func Sys_stream_readv_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_readv_at(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_readv_at(SB)
// func Sys_stream_seek(handle Handle, whence uint32, offset int64, out_seek *uint64) Status
TEXT ·Sys_stream_seek(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_seek(SB)
// func Sys_syscall_test_0() Status
TEXT ·Sys_syscall_test_0(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_0(SB)
// func Sys_syscall_test_1(a int32) Status
TEXT ·Sys_syscall_test_1(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_1(SB)
// func Sys_syscall_test_2(a int32, b int32) Status
TEXT ·Sys_syscall_test_2(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_2(SB)
// func Sys_syscall_test_3(a int32, b int32, c int32) Status
TEXT ·Sys_syscall_test_3(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_3(SB)
// func Sys_syscall_test_4(a int32, b int32, c int32, d int32) Status
TEXT ·Sys_syscall_test_4(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_4(SB)
// func Sys_syscall_test_5(a int32, b int32, c int32, d int32, e int32) Status
TEXT ·Sys_syscall_test_5(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_5(SB)
// func Sys_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) Status
TEXT ·Sys_syscall_test_6(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_6(SB)
// func Sys_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) Status
TEXT ·Sys_syscall_test_7(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_7(SB)
// func Sys_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) Status
TEXT ·Sys_syscall_test_8(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_8(SB)
// func Sys_syscall_test_wrapper(a int32, b int32, c int32) Status
TEXT ·Sys_syscall_test_wrapper(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_wrapper(SB)
// func Sys_syscall_test_handle_create(return_value Status, out *Handle) Status
TEXT ·Sys_syscall_test_handle_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_handle_create(SB)
// func Sys_system_get_dcache_line_size() uint32
TEXT ·Sys_system_get_dcache_line_size(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_dcache_line_size(SB)
// func Sys_system_get_num_cpus() uint32
TEXT ·Sys_system_get_num_cpus(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_num_cpus(SB)
// func Sys_system_get_version_string() unsafe.Pointer
TEXT ·Sys_system_get_version_string(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_version_string(SB)
// func Sys_system_get_physmem() uint64
TEXT ·Sys_system_get_physmem(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_physmem(SB)
// func Sys_system_get_features(kind uint32, features *uint32) Status
TEXT ·Sys_system_get_features(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_features(SB)
// func Sys_system_get_event(root_job Handle, kind uint32, event *Handle) Status
TEXT ·Sys_system_get_event(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_event(SB)
// func Sys_system_mexec(resource Handle, kernel_vmo Handle, bootimage_vmo Handle) Status
TEXT ·Sys_system_mexec(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_mexec(SB)
// func Sys_system_mexec_payload_get(resource Handle, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_system_mexec_payload_get(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_mexec_payload_get(SB)
// func Sys_system_powerctl(resource Handle, cmd uint32, arg *int) Status
TEXT ·Sys_system_powerctl(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_powerctl(SB)
// func Sys_task_suspend(handle Handle, token *Handle) Status
TEXT ·Sys_task_suspend(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_task_suspend(SB)
// func Sys_task_suspend_token(handle Handle, token *Handle) Status
TEXT ·Sys_task_suspend_token(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_task_suspend_token(SB)
// func Sys_task_create_exception_channel(handle Handle, options uint32, out *Handle) Status
TEXT ·Sys_task_create_exception_channel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_task_create_exception_channel(SB)
// func Sys_task_kill(handle Handle) Status
TEXT ·Sys_task_kill(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_task_kill(SB)
// func Sys_thread_exit()
TEXT ·Sys_thread_exit(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_exit(SB)
// func Sys_thread_create(process Handle, name *uint8, name_size uint, options uint32, out *Handle) Status
TEXT ·Sys_thread_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_create(SB)
// func Sys_thread_start(handle Handle, thread_entry Vaddr, stack Vaddr, arg1 uintptr, arg2 uintptr) Status
TEXT ·Sys_thread_start(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_start(SB)
// func Sys_thread_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_thread_read_state(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_read_state(SB)
// func Sys_thread_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_thread_write_state(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_write_state(SB)
// func Sys_timer_create(options uint32, clock_id uint32, out *Handle) Status
TEXT ·Sys_timer_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_timer_create(SB)
// func Sys_timer_set(handle Handle, deadline Time, slack Duration) Status
TEXT ·Sys_timer_set(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_timer_set(SB)
// func Sys_timer_cancel(handle Handle) Status
TEXT ·Sys_timer_cancel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_timer_cancel(SB)
// func Sys_vcpu_create(guest Handle, options uint32, entry Vaddr, out *Handle) Status
TEXT ·Sys_vcpu_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_create(SB)
// func Sys_vcpu_resume(handle Handle, packet *int) Status
TEXT ·Sys_vcpu_resume(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_resume(SB)
// func Sys_vcpu_interrupt(handle Handle, vector uint32) Status
TEXT ·Sys_vcpu_interrupt(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_interrupt(SB)
// func Sys_vcpu_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vcpu_read_state(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_read_state(SB)
// func Sys_vcpu_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vcpu_write_state(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_write_state(SB)
// func Sys_vmar_allocate(parent_vmar Handle, options VMFlag, offset uint, size uint, child_vmar *Handle, child_addr *Vaddr) Status
TEXT ·Sys_vmar_allocate(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_allocate(SB)
// func Sys_vmar_destroy(handle Handle) Status
TEXT ·Sys_vmar_destroy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_destroy(SB)
// func Sys_vmar_map(handle Handle, options VMFlag, vmar_offset uint, vmo Handle, vmo_offset uint64, len uint, mapped_addr *Vaddr) Status
TEXT ·Sys_vmar_map(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_map(SB)
// func Sys_vmar_unmap(handle Handle, addr Vaddr, len uint) Status
TEXT ·Sys_vmar_unmap(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_unmap(SB)
// func Sys_vmar_protect(handle Handle, options VMFlag, addr Vaddr, len uint) Status
TEXT ·Sys_vmar_protect(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_protect(SB)
// func Sys_vmar_op_range(handle Handle, op uint32, address Vaddr, size uint, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vmar_op_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_op_range(SB)
// func Sys_vmo_create(size uint64, options uint32, out *Handle) Status
TEXT ·Sys_vmo_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_create(SB)
// func Sys_vmo_read(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
TEXT ·Sys_vmo_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_read(SB)
// func Sys_vmo_write(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
TEXT ·Sys_vmo_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_write(SB)
// func Sys_vmo_get_size(handle Handle, size *uint64) Status
TEXT ·Sys_vmo_get_size(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_get_size(SB)
// func Sys_vmo_set_size(handle Handle, size uint64) Status
TEXT ·Sys_vmo_set_size(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_set_size(SB)
// func Sys_vmo_op_range(handle Handle, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vmo_op_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_op_range(SB)
// func Sys_vmo_create_child(handle Handle, options uint32, offset uint64, size uint64, out *Handle) Status
TEXT ·Sys_vmo_create_child(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_create_child(SB)
// func Sys_vmo_set_cache_policy(handle Handle, cache_policy uint32) Status
TEXT ·Sys_vmo_set_cache_policy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_set_cache_policy(SB)
// func Sys_vmo_replace_as_executable(handle Handle, vmex Handle, out *Handle) Status
TEXT ·Sys_vmo_replace_as_executable(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_replace_as_executable(SB)
// func Sys_vmo_create_contiguous(bti Handle, size uint, alignment_log2 uint32, out *Handle) Status
TEXT ·Sys_vmo_create_contiguous(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_create_contiguous(SB)
// func Sys_vmo_create_physical(resource Handle, paddr Paddr, size uint, out *Handle) Status
TEXT ·Sys_vmo_create_physical(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_create_physical(SB)
----- go-syscall-arm64-asm.go END -----
----- go-syscall-stubs.go START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
package zx
import "unsafe"
//go:noescape
//go:nosplit
func Sys_bti_create(iommu Handle, options uint32, bti_id uint64, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_bti_pin(handle Handle, options uint32, vmo Handle, offset uint64, size uint64, addrs *Paddr, num_addrs uint, pmt *Handle) Status
//go:noescape
//go:nosplit
func Sys_bti_release_quarantine(handle Handle) Status
//go:noescape
//go:nosplit
func Sys_cache_flush(addr unsafe.Pointer, size uint, options uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_create(options uint32, out0 *Handle, out1 *Handle) Status
//go:noescape
//go:nosplit
func Sys_channel_read(handle Handle, options uint32, bytes unsafe.Pointer, handles *Handle, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_read_etc(handle Handle, options uint32, bytes unsafe.Pointer, handles *HandleInfo, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_write(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *Handle, num_handles uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_write_etc(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *HandleDisposition, num_handles uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_call_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_call_finish(deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_call(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_call_etc_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_call_etc_finish(deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
//go:noescape
//go:nosplit
func Sys_channel_call_etc(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
//go:noescape
//go:nosplit
func Sys_clock_get(clock_id uint32, out *Time) Status
//go:noescape
//go:nosplit
func Sys_clock_get_monotonic() Time
//go:noescape
//go:nosplit
func Sys_clock_adjust(handle Handle, clock_id uint32, offset int64) Status
//go:noescape
//go:nosplit
func Sys_clock_get_monotonic_via_kernel() Time
//go:noescape
//go:nosplit
func Sys_clock_create(options uint64, args unsafe.Pointer, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_clock_read(handle Handle, now *Time) Status
//go:noescape
//go:nosplit
func Sys_clock_get_details(handle Handle, options uint64, details unsafe.Pointer) Status
//go:noescape
//go:nosplit
func Sys_clock_update(handle Handle, options uint64, args unsafe.Pointer) Status
//go:noescape
//go:nosplit
func Sys_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
//go:noescape
//go:nosplit
func Sys_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_debug_read(handle Handle, buffer *uint8, buffer_size uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_debug_write(buffer *uint8, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_debug_send_command(resource Handle, buffer *uint8, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_debuglog_create(resource Handle, options uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_debuglog_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_debuglog_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_event_create(options uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_eventpair_create(options uint32, out0 *Handle, out1 *Handle) Status
//go:noescape
//go:nosplit
func Sys_exception_get_thread(handle Handle, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_exception_get_process(handle Handle, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_fifo_create(elem_count uint, elem_size uint, options uint32, out0 *Handle, out1 *Handle) Status
//go:noescape
//go:nosplit
func Sys_fifo_read(handle Handle, elem_size uint, data unsafe.Pointer, data_size uint, actual_count *uint) Status
//go:noescape
//go:nosplit
func Sys_fifo_write(handle Handle, elem_size uint, data unsafe.Pointer, count uint, actual_count *uint) Status
//go:noescape
//go:nosplit
func Sys_framebuffer_get_info(resource Handle, format *uint32, width *uint32, height *uint32, stride *uint32) Status
//go:noescape
//go:nosplit
func Sys_framebuffer_set_range(resource Handle, vmo Handle, len uint32, format uint32, width uint32, height uint32, stride uint32) Status
//go:noescape
//go:nosplit
func Sys_futex_wait(value_ptr *int32, current_value int32, new_futex_owner Handle, deadline Time) Status
//go:noescape
//go:nosplit
func Sys_futex_wake(value_ptr *int32, wake_count uint32) Status
//go:noescape
//go:nosplit
func Sys_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
//go:noescape
//go:nosplit
func Sys_futex_wake_single_owner(value_ptr *int32) Status
//go:noescape
//go:nosplit
func Sys_futex_requeue_single_owner(value_ptr *int32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
//go:noescape
//go:nosplit
func Sys_futex_get_owner(value_ptr *int32, koid *uint64) Status
//go:noescape
//go:nosplit
func Sys_guest_create(resource Handle, options uint32, guest_handle *Handle, vmar_handle *Handle) Status
//go:noescape
//go:nosplit
func Sys_guest_set_trap(handle Handle, kind uint32, addr Vaddr, size uint, port_handle Handle, key uint64) Status
//go:noescape
//go:nosplit
func Sys_handle_close(handle Handle) Status
//go:noescape
//go:nosplit
func Sys_handle_close_many(handles *Handle, num_handles uint) Status
//go:noescape
//go:nosplit
func Sys_handle_duplicate(handle Handle, rights Rights, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_handle_replace(handle Handle, rights Rights, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_interrupt_create(src_obj Handle, src_num uint32, options uint32, out_handle *Handle) Status
//go:noescape
//go:nosplit
func Sys_interrupt_bind(handle Handle, port_handle Handle, key uint64, options uint32) Status
//go:noescape
//go:nosplit
func Sys_interrupt_wait(handle Handle, out_timestamp *Time) Status
//go:noescape
//go:nosplit
func Sys_interrupt_destroy(handle Handle) Status
//go:noescape
//go:nosplit
func Sys_interrupt_ack(handle Handle) Status
//go:noescape
//go:nosplit
func Sys_interrupt_trigger(handle Handle, options uint32, timestamp Time) Status
//go:noescape
//go:nosplit
func Sys_interrupt_bind_vcpu(handle Handle, vcpu Handle, options uint32) Status
//go:noescape
//go:nosplit
func Sys_iommu_create(resource Handle, typ uint32, desc unsafe.Pointer, desc_size uint, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_ioports_request(resource Handle, io_addr uint16, len uint32) Status
//go:noescape
//go:nosplit
func Sys_ioports_release(resource Handle, io_addr uint16, len uint32) Status
//go:noescape
//go:nosplit
func Sys_job_create(parent_job Handle, options uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status
//go:noescape
//go:nosplit
func Sys_job_set_critical(job Handle, options uint32, process Handle) Status
//go:noescape
//go:nosplit
func Sys_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_ktrace_control(handle Handle, action uint32, options uint32, ptr unsafe.Pointer) Status
//go:noescape
//go:nosplit
func Sys_ktrace_write(handle Handle, id uint32, arg0 uint32, arg1 uint32) Status
//go:noescape
//go:nosplit
func Sys_nanosleep(deadline Time) Status
//go:noescape
//go:nosplit
func Sys_ticks_get() int64
//go:noescape
//go:nosplit
func Sys_ticks_per_second() int64
//go:noescape
//go:nosplit
func Sys_deadline_after(nanoseconds Duration) Time
//go:noescape
//go:nosplit
func Sys_vmar_unmap_handle_close_thread_exit(vmar_handle Handle, addr Vaddr, size uint, close_handle Handle) Status
//go:noescape
//go:nosplit
func Sys_futex_wake_handle_close_thread_exit(value_ptr *int32, wake_count uint32, new_value int32, close_handle Handle)
//go:noescape
//go:nosplit
func Sys_ticks_get_via_kernel() int64
//go:noescape
//go:nosplit
func Sys_msi_allocate(handle Handle, count uint32, out_allocation *Handle) Status
//go:noescape
//go:nosplit
func Sys_msi_create(handle Handle, options uint32, msi_id uint32, vmo Handle, vmo_offset uint, out_interrupt *Handle) Status
//go:noescape
//go:nosplit
func Sys_mtrace_control(handle Handle, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) Status
//go:noescape
//go:nosplit
func Sys_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status
//go:noescape
//go:nosplit
func Sys_object_wait_many(items *WaitItem, num_items uint, deadline Time) Status
//go:noescape
//go:nosplit
func Sys_object_wait_async(handle Handle, port Handle, key uint64, signals Signals, options uint32) Status
//go:noescape
//go:nosplit
func Sys_object_signal(handle Handle, clear_mask uint32, set_mask uint32) Status
//go:noescape
//go:nosplit
func Sys_object_signal_peer(handle Handle, clear_mask uint32, set_mask uint32) Status
//go:noescape
//go:nosplit
func Sys_object_get_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
//go:noescape
//go:nosplit
func Sys_object_set_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
//go:noescape
//go:nosplit
func Sys_object_get_info(handle Handle, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint, avail *uint) Status
//go:noescape
//go:nosplit
func Sys_object_get_child(handle Handle, koid uint64, rights Rights, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_object_set_profile(handle Handle, profile Handle, options uint32) Status
//go:noescape
//go:nosplit
func Sys_pager_create(options uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_pager_create_vmo(pager Handle, options uint32, port Handle, key uint64, size uint64, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_pager_detach_vmo(pager Handle, vmo Handle) Status
//go:noescape
//go:nosplit
func Sys_pager_supply_pages(pager Handle, pager_vmo Handle, offset uint64, length uint64, aux_vmo Handle, aux_offset uint64) Status
//go:noescape
//go:nosplit
func Sys_pager_op_range(pager Handle, op uint32, pager_vmo Handle, offset uint64, length uint64, data uint64) Status
//go:noescape
//go:nosplit
func Sys_pc_firmware_tables(handle Handle, acpi_rsdp *Paddr, smbios *Paddr) Status
//go:noescape
//go:nosplit
func Sys_pci_get_nth_device(handle Handle, index uint32, out_info *uintptr, out_handle *Handle) Status
//go:noescape
//go:nosplit
func Sys_pci_enable_bus_master(handle Handle, enable uint32) Status
//go:noescape
//go:nosplit
func Sys_pci_reset_device(handle Handle) Status
//go:noescape
//go:nosplit
func Sys_pci_config_read(handle Handle, offset uint16, width uint, out_val *uint32) Status
//go:noescape
//go:nosplit
func Sys_pci_config_write(handle Handle, offset uint16, width uint, val uint32) Status
//go:noescape
//go:nosplit
func Sys_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write uint32) Status
//go:noescape
//go:nosplit
func Sys_pci_get_bar(handle Handle, bar_num uint32, out_bar *uintptr, out_handle *Handle) Status
//go:noescape
//go:nosplit
func Sys_pci_map_interrupt(handle Handle, which_irq int32, out_handle *Handle) Status
//go:noescape
//go:nosplit
func Sys_pci_query_irq_mode(handle Handle, mode uint32, out_max_irqs *uint32) Status
//go:noescape
//go:nosplit
func Sys_pci_set_irq_mode(handle Handle, mode uint32, requested_irq_count uint32) Status
//go:noescape
//go:nosplit
func Sys_pci_init(handle Handle, init_buf *uintptr, len uint32) Status
//go:noescape
//go:nosplit
func Sys_pci_add_subtract_io_range(handle Handle, mmio uint32, base uint64, len uint64, add uint32) Status
//go:noescape
//go:nosplit
func Sys_pmt_unpin(handle Handle) Status
//go:noescape
//go:nosplit
func Sys_port_create(options uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_port_queue(handle Handle, packet *int) Status
//go:noescape
//go:nosplit
func Sys_port_wait(handle Handle, deadline Time, packet *int) Status
//go:noescape
//go:nosplit
func Sys_port_cancel(handle Handle, source Handle, key uint64) Status
//go:noescape
//go:nosplit
func Sys_process_exit(retcode int64)
//go:noescape
//go:nosplit
func Sys_process_create(job Handle, name *uint8, name_size uint, options uint32, proc_handle *Handle, vmar_handle *Handle) Status
//go:noescape
//go:nosplit
func Sys_process_start(handle Handle, thread Handle, entry Vaddr, stack Vaddr, arg1 Handle, arg2 uintptr) Status
//go:noescape
//go:nosplit
func Sys_process_read_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_process_write_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_profile_create(root_job Handle, options uint32, profile *int, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_resource_create(parent_rsrc Handle, options uint32, base uint64, size uint, name *uint8, name_size uint, resource_out *Handle) Status
//go:noescape
//go:nosplit
func Sys_smc_call(handle Handle, parameters *SMCParameters, out_smc_result *SMCResult) Status
//go:noescape
//go:nosplit
func Sys_socket_create(options uint32, out0 *Handle, out1 *Handle) Status
//go:noescape
//go:nosplit
func Sys_socket_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_socket_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_socket_shutdown(handle Handle, options uint32) Status
//go:noescape
//go:nosplit
func Sys_stream_create(options uint32, vmo Handle, seek uint64, out_stream *Handle) Status
//go:noescape
//go:nosplit
func Sys_stream_writev(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_stream_writev_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_stream_readv(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_stream_readv_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
//go:noescape
//go:nosplit
func Sys_stream_seek(handle Handle, whence uint32, offset int64, out_seek *uint64) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_0() Status
//go:noescape
//go:nosplit
func Sys_syscall_test_1(a int32) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_2(a int32, b int32) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_3(a int32, b int32, c int32) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_4(a int32, b int32, c int32, d int32) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_5(a int32, b int32, c int32, d int32, e int32) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_wrapper(a int32, b int32, c int32) Status
//go:noescape
//go:nosplit
func Sys_syscall_test_handle_create(return_value Status, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_system_get_dcache_line_size() uint32
//go:noescape
//go:nosplit
func Sys_system_get_num_cpus() uint32
//go:noescape
//go:nosplit
func Sys_system_get_version_string() unsafe.Pointer
//go:noescape
//go:nosplit
func Sys_system_get_physmem() uint64
//go:noescape
//go:nosplit
func Sys_system_get_features(kind uint32, features *uint32) Status
//go:noescape
//go:nosplit
func Sys_system_get_event(root_job Handle, kind uint32, event *Handle) Status
//go:noescape
//go:nosplit
func Sys_system_mexec(resource Handle, kernel_vmo Handle, bootimage_vmo Handle) Status
//go:noescape
//go:nosplit
func Sys_system_mexec_payload_get(resource Handle, buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_system_powerctl(resource Handle, cmd uint32, arg *int) Status
//go:noescape
//go:nosplit
func Sys_task_suspend(handle Handle, token *Handle) Status
//go:noescape
//go:nosplit
func Sys_task_suspend_token(handle Handle, token *Handle) Status
//go:noescape
//go:nosplit
func Sys_task_create_exception_channel(handle Handle, options uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_task_kill(handle Handle) Status
//go:noescape
//go:nosplit
func Sys_thread_exit()
//go:noescape
//go:nosplit
func Sys_thread_create(process Handle, name *uint8, name_size uint, options uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_thread_start(handle Handle, thread_entry Vaddr, stack Vaddr, arg1 uintptr, arg2 uintptr) Status
//go:noescape
//go:nosplit
func Sys_thread_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_thread_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_timer_create(options uint32, clock_id uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_timer_set(handle Handle, deadline Time, slack Duration) Status
//go:noescape
//go:nosplit
func Sys_timer_cancel(handle Handle) Status
//go:noescape
//go:nosplit
func Sys_vcpu_create(guest Handle, options uint32, entry Vaddr, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_vcpu_resume(handle Handle, packet *int) Status
//go:noescape
//go:nosplit
func Sys_vcpu_interrupt(handle Handle, vector uint32) Status
//go:noescape
//go:nosplit
func Sys_vcpu_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_vcpu_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_vmar_allocate(parent_vmar Handle, options VMFlag, offset uint, size uint, child_vmar *Handle, child_addr *Vaddr) Status
//go:noescape
//go:nosplit
func Sys_vmar_destroy(handle Handle) Status
//go:noescape
//go:nosplit
func Sys_vmar_map(handle Handle, options VMFlag, vmar_offset uint, vmo Handle, vmo_offset uint64, len uint, mapped_addr *Vaddr) Status
//go:noescape
//go:nosplit
func Sys_vmar_unmap(handle Handle, addr Vaddr, len uint) Status
//go:noescape
//go:nosplit
func Sys_vmar_protect(handle Handle, options VMFlag, addr Vaddr, len uint) Status
//go:noescape
//go:nosplit
func Sys_vmar_op_range(handle Handle, op uint32, address Vaddr, size uint, buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_vmo_create(size uint64, options uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_vmo_read(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_vmo_write(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_vmo_get_size(handle Handle, size *uint64) Status
//go:noescape
//go:nosplit
func Sys_vmo_set_size(handle Handle, size uint64) Status
//go:noescape
//go:nosplit
func Sys_vmo_op_range(handle Handle, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) Status
//go:noescape
//go:nosplit
func Sys_vmo_create_child(handle Handle, options uint32, offset uint64, size uint64, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_vmo_set_cache_policy(handle Handle, cache_policy uint32) Status
//go:noescape
//go:nosplit
func Sys_vmo_replace_as_executable(handle Handle, vmex Handle, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_vmo_create_contiguous(bti Handle, size uint, alignment_log2 uint32, out *Handle) Status
//go:noescape
//go:nosplit
func Sys_vmo_create_physical(resource Handle, paddr Paddr, size uint, out *Handle) Status
----- go-syscall-stubs.go END -----
----- go-syscall-x86-asm.go START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
#include "textflag.h"
// func Sys_bti_create(iommu Handle, options uint32, bti_id uint64, out *Handle) Status
TEXT ·Sys_bti_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_bti_create(SB)
// func Sys_bti_pin(handle Handle, options uint32, vmo Handle, offset uint64, size uint64, addrs *Paddr, num_addrs uint, pmt *Handle) Status
TEXT ·Sys_bti_pin(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_bti_pin(SB)
// func Sys_bti_release_quarantine(handle Handle) Status
TEXT ·Sys_bti_release_quarantine(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_bti_release_quarantine(SB)
// func Sys_cache_flush(addr unsafe.Pointer, size uint, options uint32) Status
TEXT ·Sys_cache_flush(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_cache_flush(SB)
// func Sys_channel_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_channel_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_create(SB)
// func Sys_channel_read(handle Handle, options uint32, bytes unsafe.Pointer, handles *Handle, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_read(SB)
// func Sys_channel_read_etc(handle Handle, options uint32, bytes unsafe.Pointer, handles *HandleInfo, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_read_etc(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_read_etc(SB)
// func Sys_channel_write(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *Handle, num_handles uint32) Status
TEXT ·Sys_channel_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_write(SB)
// func Sys_channel_write_etc(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *HandleDisposition, num_handles uint32) Status
TEXT ·Sys_channel_write_etc(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_write_etc(SB)
// func Sys_channel_call_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_noretry(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_noretry(SB)
// func Sys_channel_call_finish(deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_finish(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_finish(SB)
// func Sys_channel_call(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call(SB)
// func Sys_channel_call_etc_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc_noretry(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_etc_noretry(SB)
// func Sys_channel_call_etc_finish(deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc_finish(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_etc_finish(SB)
// func Sys_channel_call_etc(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_channel_call_etc(SB)
// func Sys_clock_get(clock_id uint32, out *Time) Status
TEXT ·Sys_clock_get(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_get(SB)
// func Sys_clock_get_monotonic() Time
TEXT ·Sys_clock_get_monotonic(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_get_monotonic(SB)
// func Sys_clock_adjust(handle Handle, clock_id uint32, offset int64) Status
TEXT ·Sys_clock_adjust(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_adjust(SB)
// func Sys_clock_get_monotonic_via_kernel() Time
TEXT ·Sys_clock_get_monotonic_via_kernel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_get_monotonic_via_kernel(SB)
// func Sys_clock_create(options uint64, args unsafe.Pointer, out *Handle) Status
TEXT ·Sys_clock_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_create(SB)
// func Sys_clock_read(handle Handle, now *Time) Status
TEXT ·Sys_clock_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_read(SB)
// func Sys_clock_get_details(handle Handle, options uint64, details unsafe.Pointer) Status
TEXT ·Sys_clock_get_details(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_get_details(SB)
// func Sys_clock_update(handle Handle, options uint64, args unsafe.Pointer) Status
TEXT ·Sys_clock_update(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_clock_update(SB)
// func Sys_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_cprng_draw_once(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_cprng_draw_once(SB)
// func Sys_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
TEXT ·Sys_cprng_draw(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_cprng_draw(SB)
// func Sys_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_cprng_add_entropy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_cprng_add_entropy(SB)
// func Sys_debug_read(handle Handle, buffer *uint8, buffer_size uint, actual *uint) Status
TEXT ·Sys_debug_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debug_read(SB)
// func Sys_debug_write(buffer *uint8, buffer_size uint) Status
TEXT ·Sys_debug_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debug_write(SB)
// func Sys_debug_send_command(resource Handle, buffer *uint8, buffer_size uint) Status
TEXT ·Sys_debug_send_command(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debug_send_command(SB)
// func Sys_debuglog_create(resource Handle, options uint32, out *Handle) Status
TEXT ·Sys_debuglog_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debuglog_create(SB)
// func Sys_debuglog_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_debuglog_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debuglog_write(SB)
// func Sys_debuglog_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_debuglog_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_debuglog_read(SB)
// func Sys_event_create(options uint32, out *Handle) Status
TEXT ·Sys_event_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_event_create(SB)
// func Sys_eventpair_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_eventpair_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_eventpair_create(SB)
// func Sys_exception_get_thread(handle Handle, out *Handle) Status
TEXT ·Sys_exception_get_thread(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_exception_get_thread(SB)
// func Sys_exception_get_process(handle Handle, out *Handle) Status
TEXT ·Sys_exception_get_process(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_exception_get_process(SB)
// func Sys_fifo_create(elem_count uint, elem_size uint, options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_fifo_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_fifo_create(SB)
// func Sys_fifo_read(handle Handle, elem_size uint, data unsafe.Pointer, data_size uint, actual_count *uint) Status
TEXT ·Sys_fifo_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_fifo_read(SB)
// func Sys_fifo_write(handle Handle, elem_size uint, data unsafe.Pointer, count uint, actual_count *uint) Status
TEXT ·Sys_fifo_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_fifo_write(SB)
// func Sys_framebuffer_get_info(resource Handle, format *uint32, width *uint32, height *uint32, stride *uint32) Status
TEXT ·Sys_framebuffer_get_info(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_framebuffer_get_info(SB)
// func Sys_framebuffer_set_range(resource Handle, vmo Handle, len uint32, format uint32, width uint32, height uint32, stride uint32) Status
TEXT ·Sys_framebuffer_set_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_framebuffer_set_range(SB)
// func Sys_futex_wait(value_ptr *int32, current_value int32, new_futex_owner Handle, deadline Time) Status
TEXT ·Sys_futex_wait(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_wait(SB)
// func Sys_futex_wake(value_ptr *int32, wake_count uint32) Status
TEXT ·Sys_futex_wake(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_wake(SB)
// func Sys_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
TEXT ·Sys_futex_requeue(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_requeue(SB)
// func Sys_futex_wake_single_owner(value_ptr *int32) Status
TEXT ·Sys_futex_wake_single_owner(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_wake_single_owner(SB)
// func Sys_futex_requeue_single_owner(value_ptr *int32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
TEXT ·Sys_futex_requeue_single_owner(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_requeue_single_owner(SB)
// func Sys_futex_get_owner(value_ptr *int32, koid *uint64) Status
TEXT ·Sys_futex_get_owner(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_get_owner(SB)
// func Sys_guest_create(resource Handle, options uint32, guest_handle *Handle, vmar_handle *Handle) Status
TEXT ·Sys_guest_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_guest_create(SB)
// func Sys_guest_set_trap(handle Handle, kind uint32, addr Vaddr, size uint, port_handle Handle, key uint64) Status
TEXT ·Sys_guest_set_trap(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_guest_set_trap(SB)
// func Sys_handle_close(handle Handle) Status
TEXT ·Sys_handle_close(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_handle_close(SB)
// func Sys_handle_close_many(handles *Handle, num_handles uint) Status
TEXT ·Sys_handle_close_many(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_handle_close_many(SB)
// func Sys_handle_duplicate(handle Handle, rights Rights, out *Handle) Status
TEXT ·Sys_handle_duplicate(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_handle_duplicate(SB)
// func Sys_handle_replace(handle Handle, rights Rights, out *Handle) Status
TEXT ·Sys_handle_replace(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_handle_replace(SB)
// func Sys_interrupt_create(src_obj Handle, src_num uint32, options uint32, out_handle *Handle) Status
TEXT ·Sys_interrupt_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_create(SB)
// func Sys_interrupt_bind(handle Handle, port_handle Handle, key uint64, options uint32) Status
TEXT ·Sys_interrupt_bind(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_bind(SB)
// func Sys_interrupt_wait(handle Handle, out_timestamp *Time) Status
TEXT ·Sys_interrupt_wait(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_wait(SB)
// func Sys_interrupt_destroy(handle Handle) Status
TEXT ·Sys_interrupt_destroy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_destroy(SB)
// func Sys_interrupt_ack(handle Handle) Status
TEXT ·Sys_interrupt_ack(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_ack(SB)
// func Sys_interrupt_trigger(handle Handle, options uint32, timestamp Time) Status
TEXT ·Sys_interrupt_trigger(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_trigger(SB)
// func Sys_interrupt_bind_vcpu(handle Handle, vcpu Handle, options uint32) Status
TEXT ·Sys_interrupt_bind_vcpu(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_interrupt_bind_vcpu(SB)
// func Sys_iommu_create(resource Handle, typ uint32, desc unsafe.Pointer, desc_size uint, out *Handle) Status
TEXT ·Sys_iommu_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_iommu_create(SB)
// func Sys_ioports_request(resource Handle, io_addr uint16, len uint32) Status
TEXT ·Sys_ioports_request(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ioports_request(SB)
// func Sys_ioports_release(resource Handle, io_addr uint16, len uint32) Status
TEXT ·Sys_ioports_release(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ioports_release(SB)
// func Sys_job_create(parent_job Handle, options uint32, out *Handle) Status
TEXT ·Sys_job_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_job_create(SB)
// func Sys_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status
TEXT ·Sys_job_set_policy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_job_set_policy(SB)
// func Sys_job_set_critical(job Handle, options uint32, process Handle) Status
TEXT ·Sys_job_set_critical(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_job_set_critical(SB)
// func Sys_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status
TEXT ·Sys_ktrace_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ktrace_read(SB)
// func Sys_ktrace_control(handle Handle, action uint32, options uint32, ptr unsafe.Pointer) Status
TEXT ·Sys_ktrace_control(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ktrace_control(SB)
// func Sys_ktrace_write(handle Handle, id uint32, arg0 uint32, arg1 uint32) Status
TEXT ·Sys_ktrace_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ktrace_write(SB)
// func Sys_nanosleep(deadline Time) Status
TEXT ·Sys_nanosleep(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_nanosleep(SB)
// func Sys_ticks_get() int64
TEXT ·Sys_ticks_get(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ticks_get(SB)
// func Sys_ticks_per_second() int64
TEXT ·Sys_ticks_per_second(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ticks_per_second(SB)
// func Sys_deadline_after(nanoseconds Duration) Time
TEXT ·Sys_deadline_after(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_deadline_after(SB)
// func Sys_vmar_unmap_handle_close_thread_exit(vmar_handle Handle, addr Vaddr, size uint, close_handle Handle) Status
TEXT ·Sys_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB)
// func Sys_futex_wake_handle_close_thread_exit(value_ptr *int32, wake_count uint32, new_value int32, close_handle Handle)
TEXT ·Sys_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB)
// func Sys_ticks_get_via_kernel() int64
TEXT ·Sys_ticks_get_via_kernel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_ticks_get_via_kernel(SB)
// func Sys_msi_allocate(handle Handle, count uint32, out_allocation *Handle) Status
TEXT ·Sys_msi_allocate(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_msi_allocate(SB)
// func Sys_msi_create(handle Handle, options uint32, msi_id uint32, vmo Handle, vmo_offset uint, out_interrupt *Handle) Status
TEXT ·Sys_msi_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_msi_create(SB)
// func Sys_mtrace_control(handle Handle, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) Status
TEXT ·Sys_mtrace_control(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_mtrace_control(SB)
// func Sys_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status
TEXT ·Sys_object_wait_one(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_wait_one(SB)
// func Sys_object_wait_many(items *WaitItem, num_items uint, deadline Time) Status
TEXT ·Sys_object_wait_many(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_wait_many(SB)
// func Sys_object_wait_async(handle Handle, port Handle, key uint64, signals Signals, options uint32) Status
TEXT ·Sys_object_wait_async(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_wait_async(SB)
// func Sys_object_signal(handle Handle, clear_mask uint32, set_mask uint32) Status
TEXT ·Sys_object_signal(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_signal(SB)
// func Sys_object_signal_peer(handle Handle, clear_mask uint32, set_mask uint32) Status
TEXT ·Sys_object_signal_peer(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_signal_peer(SB)
// func Sys_object_get_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
TEXT ·Sys_object_get_property(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_get_property(SB)
// func Sys_object_set_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
TEXT ·Sys_object_set_property(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_set_property(SB)
// func Sys_object_get_info(handle Handle, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint, avail *uint) Status
TEXT ·Sys_object_get_info(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_get_info(SB)
// func Sys_object_get_child(handle Handle, koid uint64, rights Rights, out *Handle) Status
TEXT ·Sys_object_get_child(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_get_child(SB)
// func Sys_object_set_profile(handle Handle, profile Handle, options uint32) Status
TEXT ·Sys_object_set_profile(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_object_set_profile(SB)
// func Sys_pager_create(options uint32, out *Handle) Status
TEXT ·Sys_pager_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_create(SB)
// func Sys_pager_create_vmo(pager Handle, options uint32, port Handle, key uint64, size uint64, out *Handle) Status
TEXT ·Sys_pager_create_vmo(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_create_vmo(SB)
// func Sys_pager_detach_vmo(pager Handle, vmo Handle) Status
TEXT ·Sys_pager_detach_vmo(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_detach_vmo(SB)
// func Sys_pager_supply_pages(pager Handle, pager_vmo Handle, offset uint64, length uint64, aux_vmo Handle, aux_offset uint64) Status
TEXT ·Sys_pager_supply_pages(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_supply_pages(SB)
// func Sys_pager_op_range(pager Handle, op uint32, pager_vmo Handle, offset uint64, length uint64, data uint64) Status
TEXT ·Sys_pager_op_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pager_op_range(SB)
// func Sys_pc_firmware_tables(handle Handle, acpi_rsdp *Paddr, smbios *Paddr) Status
TEXT ·Sys_pc_firmware_tables(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pc_firmware_tables(SB)
// func Sys_pci_get_nth_device(handle Handle, index uint32, out_info *uintptr, out_handle *Handle) Status
TEXT ·Sys_pci_get_nth_device(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_get_nth_device(SB)
// func Sys_pci_enable_bus_master(handle Handle, enable uint32) Status
TEXT ·Sys_pci_enable_bus_master(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_enable_bus_master(SB)
// func Sys_pci_reset_device(handle Handle) Status
TEXT ·Sys_pci_reset_device(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_reset_device(SB)
// func Sys_pci_config_read(handle Handle, offset uint16, width uint, out_val *uint32) Status
TEXT ·Sys_pci_config_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_config_read(SB)
// func Sys_pci_config_write(handle Handle, offset uint16, width uint, val uint32) Status
TEXT ·Sys_pci_config_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_config_write(SB)
// func Sys_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write uint32) Status
TEXT ·Sys_pci_cfg_pio_rw(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_cfg_pio_rw(SB)
// func Sys_pci_get_bar(handle Handle, bar_num uint32, out_bar *uintptr, out_handle *Handle) Status
TEXT ·Sys_pci_get_bar(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_get_bar(SB)
// func Sys_pci_map_interrupt(handle Handle, which_irq int32, out_handle *Handle) Status
TEXT ·Sys_pci_map_interrupt(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_map_interrupt(SB)
// func Sys_pci_query_irq_mode(handle Handle, mode uint32, out_max_irqs *uint32) Status
TEXT ·Sys_pci_query_irq_mode(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_query_irq_mode(SB)
// func Sys_pci_set_irq_mode(handle Handle, mode uint32, requested_irq_count uint32) Status
TEXT ·Sys_pci_set_irq_mode(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_set_irq_mode(SB)
// func Sys_pci_init(handle Handle, init_buf *uintptr, len uint32) Status
TEXT ·Sys_pci_init(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_init(SB)
// func Sys_pci_add_subtract_io_range(handle Handle, mmio uint32, base uint64, len uint64, add uint32) Status
TEXT ·Sys_pci_add_subtract_io_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pci_add_subtract_io_range(SB)
// func Sys_pmt_unpin(handle Handle) Status
TEXT ·Sys_pmt_unpin(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_pmt_unpin(SB)
// func Sys_port_create(options uint32, out *Handle) Status
TEXT ·Sys_port_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_port_create(SB)
// func Sys_port_queue(handle Handle, packet *int) Status
TEXT ·Sys_port_queue(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_port_queue(SB)
// func Sys_port_wait(handle Handle, deadline Time, packet *int) Status
TEXT ·Sys_port_wait(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_port_wait(SB)
// func Sys_port_cancel(handle Handle, source Handle, key uint64) Status
TEXT ·Sys_port_cancel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_port_cancel(SB)
// func Sys_process_exit(retcode int64)
TEXT ·Sys_process_exit(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_exit(SB)
// func Sys_process_create(job Handle, name *uint8, name_size uint, options uint32, proc_handle *Handle, vmar_handle *Handle) Status
TEXT ·Sys_process_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_create(SB)
// func Sys_process_start(handle Handle, thread Handle, entry Vaddr, stack Vaddr, arg1 Handle, arg2 uintptr) Status
TEXT ·Sys_process_start(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_start(SB)
// func Sys_process_read_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_process_read_memory(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_read_memory(SB)
// func Sys_process_write_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_process_write_memory(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_process_write_memory(SB)
// func Sys_profile_create(root_job Handle, options uint32, profile *int, out *Handle) Status
TEXT ·Sys_profile_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_profile_create(SB)
// func Sys_resource_create(parent_rsrc Handle, options uint32, base uint64, size uint, name *uint8, name_size uint, resource_out *Handle) Status
TEXT ·Sys_resource_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_resource_create(SB)
// func Sys_smc_call(handle Handle, parameters *SMCParameters, out_smc_result *SMCResult) Status
TEXT ·Sys_smc_call(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_smc_call(SB)
// func Sys_socket_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_socket_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_socket_create(SB)
// func Sys_socket_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_socket_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_socket_write(SB)
// func Sys_socket_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_socket_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_socket_read(SB)
// func Sys_socket_shutdown(handle Handle, options uint32) Status
TEXT ·Sys_socket_shutdown(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_socket_shutdown(SB)
// func Sys_stream_create(options uint32, vmo Handle, seek uint64, out_stream *Handle) Status
TEXT ·Sys_stream_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_create(SB)
// func Sys_stream_writev(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_writev(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_writev(SB)
// func Sys_stream_writev_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_writev_at(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_writev_at(SB)
// func Sys_stream_readv(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_readv(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_readv(SB)
// func Sys_stream_readv_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_readv_at(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_readv_at(SB)
// func Sys_stream_seek(handle Handle, whence uint32, offset int64, out_seek *uint64) Status
TEXT ·Sys_stream_seek(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_stream_seek(SB)
// func Sys_syscall_test_0() Status
TEXT ·Sys_syscall_test_0(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_0(SB)
// func Sys_syscall_test_1(a int32) Status
TEXT ·Sys_syscall_test_1(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_1(SB)
// func Sys_syscall_test_2(a int32, b int32) Status
TEXT ·Sys_syscall_test_2(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_2(SB)
// func Sys_syscall_test_3(a int32, b int32, c int32) Status
TEXT ·Sys_syscall_test_3(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_3(SB)
// func Sys_syscall_test_4(a int32, b int32, c int32, d int32) Status
TEXT ·Sys_syscall_test_4(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_4(SB)
// func Sys_syscall_test_5(a int32, b int32, c int32, d int32, e int32) Status
TEXT ·Sys_syscall_test_5(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_5(SB)
// func Sys_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) Status
TEXT ·Sys_syscall_test_6(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_6(SB)
// func Sys_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) Status
TEXT ·Sys_syscall_test_7(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_7(SB)
// func Sys_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) Status
TEXT ·Sys_syscall_test_8(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_8(SB)
// func Sys_syscall_test_wrapper(a int32, b int32, c int32) Status
TEXT ·Sys_syscall_test_wrapper(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_wrapper(SB)
// func Sys_syscall_test_handle_create(return_value Status, out *Handle) Status
TEXT ·Sys_syscall_test_handle_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_syscall_test_handle_create(SB)
// func Sys_system_get_dcache_line_size() uint32
TEXT ·Sys_system_get_dcache_line_size(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_dcache_line_size(SB)
// func Sys_system_get_num_cpus() uint32
TEXT ·Sys_system_get_num_cpus(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_num_cpus(SB)
// func Sys_system_get_version_string() unsafe.Pointer
TEXT ·Sys_system_get_version_string(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_version_string(SB)
// func Sys_system_get_physmem() uint64
TEXT ·Sys_system_get_physmem(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_physmem(SB)
// func Sys_system_get_features(kind uint32, features *uint32) Status
TEXT ·Sys_system_get_features(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_features(SB)
// func Sys_system_get_event(root_job Handle, kind uint32, event *Handle) Status
TEXT ·Sys_system_get_event(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_get_event(SB)
// func Sys_system_mexec(resource Handle, kernel_vmo Handle, bootimage_vmo Handle) Status
TEXT ·Sys_system_mexec(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_mexec(SB)
// func Sys_system_mexec_payload_get(resource Handle, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_system_mexec_payload_get(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_mexec_payload_get(SB)
// func Sys_system_powerctl(resource Handle, cmd uint32, arg *int) Status
TEXT ·Sys_system_powerctl(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_system_powerctl(SB)
// func Sys_task_suspend(handle Handle, token *Handle) Status
TEXT ·Sys_task_suspend(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_task_suspend(SB)
// func Sys_task_suspend_token(handle Handle, token *Handle) Status
TEXT ·Sys_task_suspend_token(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_task_suspend_token(SB)
// func Sys_task_create_exception_channel(handle Handle, options uint32, out *Handle) Status
TEXT ·Sys_task_create_exception_channel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_task_create_exception_channel(SB)
// func Sys_task_kill(handle Handle) Status
TEXT ·Sys_task_kill(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_task_kill(SB)
// func Sys_thread_exit()
TEXT ·Sys_thread_exit(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_exit(SB)
// func Sys_thread_create(process Handle, name *uint8, name_size uint, options uint32, out *Handle) Status
TEXT ·Sys_thread_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_create(SB)
// func Sys_thread_start(handle Handle, thread_entry Vaddr, stack Vaddr, arg1 uintptr, arg2 uintptr) Status
TEXT ·Sys_thread_start(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_start(SB)
// func Sys_thread_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_thread_read_state(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_read_state(SB)
// func Sys_thread_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_thread_write_state(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_thread_write_state(SB)
// func Sys_timer_create(options uint32, clock_id uint32, out *Handle) Status
TEXT ·Sys_timer_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_timer_create(SB)
// func Sys_timer_set(handle Handle, deadline Time, slack Duration) Status
TEXT ·Sys_timer_set(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_timer_set(SB)
// func Sys_timer_cancel(handle Handle) Status
TEXT ·Sys_timer_cancel(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_timer_cancel(SB)
// func Sys_vcpu_create(guest Handle, options uint32, entry Vaddr, out *Handle) Status
TEXT ·Sys_vcpu_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_create(SB)
// func Sys_vcpu_resume(handle Handle, packet *int) Status
TEXT ·Sys_vcpu_resume(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_resume(SB)
// func Sys_vcpu_interrupt(handle Handle, vector uint32) Status
TEXT ·Sys_vcpu_interrupt(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_interrupt(SB)
// func Sys_vcpu_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vcpu_read_state(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_read_state(SB)
// func Sys_vcpu_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vcpu_write_state(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vcpu_write_state(SB)
// func Sys_vmar_allocate(parent_vmar Handle, options VMFlag, offset uint, size uint, child_vmar *Handle, child_addr *Vaddr) Status
TEXT ·Sys_vmar_allocate(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_allocate(SB)
// func Sys_vmar_destroy(handle Handle) Status
TEXT ·Sys_vmar_destroy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_destroy(SB)
// func Sys_vmar_map(handle Handle, options VMFlag, vmar_offset uint, vmo Handle, vmo_offset uint64, len uint, mapped_addr *Vaddr) Status
TEXT ·Sys_vmar_map(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_map(SB)
// func Sys_vmar_unmap(handle Handle, addr Vaddr, len uint) Status
TEXT ·Sys_vmar_unmap(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_unmap(SB)
// func Sys_vmar_protect(handle Handle, options VMFlag, addr Vaddr, len uint) Status
TEXT ·Sys_vmar_protect(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_protect(SB)
// func Sys_vmar_op_range(handle Handle, op uint32, address Vaddr, size uint, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vmar_op_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmar_op_range(SB)
// func Sys_vmo_create(size uint64, options uint32, out *Handle) Status
TEXT ·Sys_vmo_create(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_create(SB)
// func Sys_vmo_read(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
TEXT ·Sys_vmo_read(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_read(SB)
// func Sys_vmo_write(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
TEXT ·Sys_vmo_write(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_write(SB)
// func Sys_vmo_get_size(handle Handle, size *uint64) Status
TEXT ·Sys_vmo_get_size(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_get_size(SB)
// func Sys_vmo_set_size(handle Handle, size uint64) Status
TEXT ·Sys_vmo_set_size(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_set_size(SB)
// func Sys_vmo_op_range(handle Handle, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vmo_op_range(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_op_range(SB)
// func Sys_vmo_create_child(handle Handle, options uint32, offset uint64, size uint64, out *Handle) Status
TEXT ·Sys_vmo_create_child(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_create_child(SB)
// func Sys_vmo_set_cache_policy(handle Handle, cache_policy uint32) Status
TEXT ·Sys_vmo_set_cache_policy(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_set_cache_policy(SB)
// func Sys_vmo_replace_as_executable(handle Handle, vmex Handle, out *Handle) Status
TEXT ·Sys_vmo_replace_as_executable(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_replace_as_executable(SB)
// func Sys_vmo_create_contiguous(bti Handle, size uint, alignment_log2 uint32, out *Handle) Status
TEXT ·Sys_vmo_create_contiguous(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_create_contiguous(SB)
// func Sys_vmo_create_physical(resource Handle, paddr Paddr, size uint, out *Handle) Status
TEXT ·Sys_vmo_create_physical(SB),NOSPLIT,$0
JMP runtime·vdsoCall_zx_vmo_create_physical(SB)
----- go-syscall-x86-asm.go END -----
----- go-vdso-arm64-calls.s START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
#include "go_asm.h"
#include "go_tls.h"
#include "textflag.h"
#include "funcdata.h"
// func vdsoCall_zx_bti_create(iommu uint32, options uint32, bti_id uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_bti_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW iommu+0(FP), R0
MOVW options+4(FP), R1
MOVD bti_id+8(FP), R2
MOVD out+16(FP), R3
BL vdso_zx_bti_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_bti_pin(handle uint32, options uint32, vmo uint32, offset uint64, size uint64, addrs unsafe.Pointer, num_addrs uint, pmt unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_bti_pin(SB),NOSPLIT,$0-60
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVW vmo+8(FP), R2
MOVD offset+16(FP), R3
MOVD size+24(FP), R4
MOVD addrs+32(FP), R5
MOVD num_addrs+40(FP), R6
MOVD pmt+48(FP), R7
BL vdso_zx_bti_pin(SB)
MOVW R0, ret+56(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_bti_release_quarantine(handle uint32) int32
TEXT runtime·vdsoCall_zx_bti_release_quarantine(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
BL vdso_zx_bti_release_quarantine(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_cache_flush(addr unsafe.Pointer, size uint, options uint32) int32
TEXT runtime·vdsoCall_zx_cache_flush(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD addr+0(FP), R0
MOVD size+8(FP), R1
MOVW options+16(FP), R2
BL vdso_zx_cache_flush(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW options+0(FP), R0
MOVD out0+8(FP), R1
MOVD out1+16(FP), R2
BL vdso_zx_channel_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_read(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_read(SB),NOSPLIT,$0-52
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD bytes+8(FP), R2
MOVD handles+16(FP), R3
MOVW num_bytes+24(FP), R4
MOVW num_handles+28(FP), R5
MOVD actual_bytes+32(FP), R6
MOVD actual_handles+40(FP), R7
BL vdso_zx_channel_read(SB)
MOVW R0, ret+48(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_read_etc(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_read_etc(SB),NOSPLIT,$0-52
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD bytes+8(FP), R2
MOVD handles+16(FP), R3
MOVW num_bytes+24(FP), R4
MOVW num_handles+28(FP), R5
MOVD actual_bytes+32(FP), R6
MOVD actual_handles+40(FP), R7
BL vdso_zx_channel_read_etc(SB)
MOVW R0, ret+48(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_write(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
TEXT runtime·vdsoCall_zx_channel_write(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD bytes+8(FP), R2
MOVW num_bytes+16(FP), R3
MOVD handles+24(FP), R4
MOVW num_handles+32(FP), R5
BL vdso_zx_channel_write(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_write_etc(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
TEXT runtime·vdsoCall_zx_channel_write_etc(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD bytes+8(FP), R2
MOVW num_bytes+16(FP), R3
MOVD handles+24(FP), R4
MOVW num_handles+32(FP), R5
BL vdso_zx_channel_write_etc(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_call_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_noretry(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD deadline+8(FP), R2
MOVD args+16(FP), R3
MOVD actual_bytes+24(FP), R4
MOVD actual_handles+32(FP), R5
BL vdso_zx_channel_call_noretry(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_call_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_finish(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD deadline+0(FP), R0
MOVD args+8(FP), R1
MOVD actual_bytes+16(FP), R2
MOVD actual_handles+24(FP), R3
BL vdso_zx_channel_call_finish(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_call(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD deadline+8(FP), R2
MOVD args+16(FP), R3
MOVD actual_bytes+24(FP), R4
MOVD actual_handles+32(FP), R5
BL vdso_zx_channel_call(SB)
MOVW R0, ret+40(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_call_etc_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc_noretry(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD deadline+8(FP), R2
MOVD args+16(FP), R3
MOVD actual_bytes+24(FP), R4
MOVD actual_handles+32(FP), R5
BL vdso_zx_channel_call_etc_noretry(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_call_etc_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc_finish(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD deadline+0(FP), R0
MOVD args+8(FP), R1
MOVD actual_bytes+16(FP), R2
MOVD actual_handles+24(FP), R3
BL vdso_zx_channel_call_etc_finish(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_channel_call_etc(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD deadline+8(FP), R2
MOVD args+16(FP), R3
MOVD actual_bytes+24(FP), R4
MOVD actual_handles+32(FP), R5
BL vdso_zx_channel_call_etc(SB)
MOVW R0, ret+40(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_clock_get(clock_id uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_get(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW clock_id+0(FP), R0
MOVD out+8(FP), R1
BL vdso_zx_clock_get(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_clock_get_monotonic() int64
TEXT runtime·vdsoCall_zx_clock_get_monotonic(SB),NOSPLIT,$0-8
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_clock_get_monotonic(SB)
MOVD R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_clock_adjust(handle uint32, clock_id uint32, offset int64) int32
TEXT runtime·vdsoCall_zx_clock_adjust(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW clock_id+4(FP), R1
MOVD offset+8(FP), R2
BL vdso_zx_clock_adjust(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_clock_get_monotonic_via_kernel() int64
TEXT runtime·vdsoCall_zx_clock_get_monotonic_via_kernel(SB),NOSPLIT,$0-8
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_clock_get_monotonic_via_kernel(SB)
MOVD R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_clock_create(options uint64, args unsafe.Pointer, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD options+0(FP), R0
MOVD args+8(FP), R1
MOVD out+16(FP), R2
BL vdso_zx_clock_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_clock_read(handle uint32, now unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_read(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD now+8(FP), R1
BL vdso_zx_clock_read(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_clock_get_details(handle uint32, options uint64, details unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_get_details(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD options+8(FP), R1
MOVD details+16(FP), R2
BL vdso_zx_clock_get_details(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_clock_update(handle uint32, options uint64, args unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_update(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD options+8(FP), R1
MOVD args+16(FP), R2
BL vdso_zx_clock_update(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_cprng_draw_once(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD buffer+0(FP), R0
MOVD buffer_size+8(FP), R1
BL vdso_zx_cprng_draw_once(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
TEXT runtime·vdsoCall_zx_cprng_draw(SB),NOSPLIT,$0-16
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD buffer+0(FP), R0
MOVD buffer_size+8(FP), R1
BL vdso_zx_cprng_draw(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_cprng_add_entropy(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD buffer+0(FP), R0
MOVD buffer_size+8(FP), R1
BL vdso_zx_cprng_add_entropy(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_debug_read(handle uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_debug_read(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD buffer+8(FP), R1
MOVD buffer_size+16(FP), R2
MOVD actual+24(FP), R3
BL vdso_zx_debug_read(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_debug_write(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debug_write(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD buffer+0(FP), R0
MOVD buffer_size+8(FP), R1
BL vdso_zx_debug_write(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_debug_send_command(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debug_send_command(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVD buffer+8(FP), R1
MOVD buffer_size+16(FP), R2
BL vdso_zx_debug_send_command(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_debuglog_create(resource uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_debuglog_create(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVW options+4(FP), R1
MOVD out+8(FP), R2
BL vdso_zx_debuglog_create(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_debuglog_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debuglog_write(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD buffer+8(FP), R2
MOVD buffer_size+16(FP), R3
BL vdso_zx_debuglog_write(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_debuglog_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debuglog_read(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD buffer+8(FP), R2
MOVD buffer_size+16(FP), R3
BL vdso_zx_debuglog_read(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_event_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_event_create(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW options+0(FP), R0
MOVD out+8(FP), R1
BL vdso_zx_event_create(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_eventpair_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_eventpair_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW options+0(FP), R0
MOVD out0+8(FP), R1
MOVD out1+16(FP), R2
BL vdso_zx_eventpair_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_exception_get_thread(handle uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_exception_get_thread(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD out+8(FP), R1
BL vdso_zx_exception_get_thread(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_exception_get_process(handle uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_exception_get_process(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD out+8(FP), R1
BL vdso_zx_exception_get_process(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_fifo_create(elem_count uint, elem_size uint, options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_create(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD elem_count+0(FP), R0
MOVD elem_size+8(FP), R1
MOVW options+16(FP), R2
MOVD out0+24(FP), R3
MOVD out1+32(FP), R4
BL vdso_zx_fifo_create(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_fifo_read(handle uint32, elem_size uint, data unsafe.Pointer, data_size uint, actual_count unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_read(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD elem_size+8(FP), R1
MOVD data+16(FP), R2
MOVD data_size+24(FP), R3
MOVD actual_count+32(FP), R4
BL vdso_zx_fifo_read(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_fifo_write(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_write(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD elem_size+8(FP), R1
MOVD data+16(FP), R2
MOVD count+24(FP), R3
MOVD actual_count+32(FP), R4
BL vdso_zx_fifo_write(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_framebuffer_get_info(resource uint32, format unsafe.Pointer, width unsafe.Pointer, height unsafe.Pointer, stride unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_framebuffer_get_info(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVD format+8(FP), R1
MOVD width+16(FP), R2
MOVD height+24(FP), R3
MOVD stride+32(FP), R4
BL vdso_zx_framebuffer_get_info(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_framebuffer_set_range(resource uint32, vmo uint32, len uint32, format uint32, width uint32, height uint32, stride uint32) int32
TEXT runtime·vdsoCall_zx_framebuffer_set_range(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVW vmo+4(FP), R1
MOVW len+8(FP), R2
MOVW format+12(FP), R3
MOVW width+16(FP), R4
MOVW height+20(FP), R5
MOVW stride+24(FP), R6
BL vdso_zx_framebuffer_set_range(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_futex_wait(value_ptr unsafe.Pointer, current_value int32, new_futex_owner uint32, deadline int64) int32
TEXT runtime·vdsoCall_zx_futex_wait(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD value_ptr+0(FP), R0
MOVW current_value+8(FP), R1
MOVW new_futex_owner+12(FP), R2
MOVD deadline+16(FP), R3
BL vdso_zx_futex_wait(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_futex_wake(value_ptr unsafe.Pointer, wake_count uint32) int32
TEXT runtime·vdsoCall_zx_futex_wake(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD value_ptr+0(FP), R0
MOVW wake_count+8(FP), R1
BL vdso_zx_futex_wake(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_futex_requeue(value_ptr unsafe.Pointer, wake_count uint32, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
TEXT runtime·vdsoCall_zx_futex_requeue(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD value_ptr+0(FP), R0
MOVW wake_count+8(FP), R1
MOVW current_value+12(FP), R2
MOVD requeue_ptr+16(FP), R3
MOVW requeue_count+24(FP), R4
MOVW new_requeue_owner+28(FP), R5
BL vdso_zx_futex_requeue(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_futex_wake_single_owner(value_ptr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_futex_wake_single_owner(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD value_ptr+0(FP), R0
BL vdso_zx_futex_wake_single_owner(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_futex_requeue_single_owner(value_ptr unsafe.Pointer, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
TEXT runtime·vdsoCall_zx_futex_requeue_single_owner(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD value_ptr+0(FP), R0
MOVW current_value+8(FP), R1
MOVD requeue_ptr+16(FP), R2
MOVW requeue_count+24(FP), R3
MOVW new_requeue_owner+28(FP), R4
BL vdso_zx_futex_requeue_single_owner(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_futex_get_owner(value_ptr unsafe.Pointer, koid unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_futex_get_owner(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD value_ptr+0(FP), R0
MOVD koid+8(FP), R1
BL vdso_zx_futex_get_owner(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_guest_create(resource uint32, options uint32, guest_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_guest_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVW options+4(FP), R1
MOVD guest_handle+8(FP), R2
MOVD vmar_handle+16(FP), R3
BL vdso_zx_guest_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_guest_set_trap(handle uint32, kind uint32, addr uintptr, size uint, port_handle uint32, key uint64) int32
TEXT runtime·vdsoCall_zx_guest_set_trap(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW kind+4(FP), R1
MOVD addr+8(FP), R2
MOVD size+16(FP), R3
MOVW port_handle+24(FP), R4
MOVD key+32(FP), R5
BL vdso_zx_guest_set_trap(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_handle_close(handle uint32) int32
TEXT runtime·vdsoCall_zx_handle_close(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
BL vdso_zx_handle_close(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_handle_close_many(handles unsafe.Pointer, num_handles uint) int32
TEXT runtime·vdsoCall_zx_handle_close_many(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD handles+0(FP), R0
MOVD num_handles+8(FP), R1
BL vdso_zx_handle_close_many(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_handle_duplicate(handle uint32, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_handle_duplicate(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW rights+4(FP), R1
MOVD out+8(FP), R2
BL vdso_zx_handle_duplicate(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_handle_replace(handle uint32, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_handle_replace(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW rights+4(FP), R1
MOVD out+8(FP), R2
BL vdso_zx_handle_replace(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_interrupt_create(src_obj uint32, src_num uint32, options uint32, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_interrupt_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW src_obj+0(FP), R0
MOVW src_num+4(FP), R1
MOVW options+8(FP), R2
MOVD out_handle+16(FP), R3
BL vdso_zx_interrupt_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_interrupt_bind(handle uint32, port_handle uint32, key uint64, options uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_bind(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW port_handle+4(FP), R1
MOVD key+8(FP), R2
MOVW options+16(FP), R3
BL vdso_zx_interrupt_bind(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_interrupt_wait(handle uint32, out_timestamp unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_interrupt_wait(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVW handle+0(FP), R0
MOVD out_timestamp+8(FP), R1
BL vdso_zx_interrupt_wait(SB)
MOVW R0, ret+16(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_interrupt_destroy(handle uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_destroy(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
BL vdso_zx_interrupt_destroy(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_interrupt_ack(handle uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_ack(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
BL vdso_zx_interrupt_ack(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_interrupt_trigger(handle uint32, options uint32, timestamp int64) int32
TEXT runtime·vdsoCall_zx_interrupt_trigger(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD timestamp+8(FP), R2
BL vdso_zx_interrupt_trigger(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_interrupt_bind_vcpu(handle uint32, vcpu uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_bind_vcpu(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW vcpu+4(FP), R1
MOVW options+8(FP), R2
BL vdso_zx_interrupt_bind_vcpu(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_iommu_create(resource uint32, typ uint32, desc unsafe.Pointer, desc_size uint, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_iommu_create(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVW typ+4(FP), R1
MOVD desc+8(FP), R2
MOVD desc_size+16(FP), R3
MOVD out+24(FP), R4
BL vdso_zx_iommu_create(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_ioports_request(resource uint32, io_addr uint16, len uint32) int32
TEXT runtime·vdsoCall_zx_ioports_request(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVD io_addr+4(FP), R1
MOVW len+8(FP), R2
BL vdso_zx_ioports_request(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_ioports_release(resource uint32, io_addr uint16, len uint32) int32
TEXT runtime·vdsoCall_zx_ioports_release(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVD io_addr+4(FP), R1
MOVW len+8(FP), R2
BL vdso_zx_ioports_release(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_job_create(parent_job uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_job_create(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW parent_job+0(FP), R0
MOVW options+4(FP), R1
MOVD out+8(FP), R2
BL vdso_zx_job_create(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_job_set_policy(handle uint32, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) int32
TEXT runtime·vdsoCall_zx_job_set_policy(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVW topic+8(FP), R2
MOVD policy+16(FP), R3
MOVW policy_size+24(FP), R4
BL vdso_zx_job_set_policy(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_job_set_critical(job uint32, options uint32, process uint32) int32
TEXT runtime·vdsoCall_zx_job_set_critical(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW job+0(FP), R0
MOVW options+4(FP), R1
MOVW process+8(FP), R2
BL vdso_zx_job_set_critical(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_ktrace_read(handle uint32, data unsafe.Pointer, offset uint32, data_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_ktrace_read(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD data+8(FP), R1
MOVW offset+16(FP), R2
MOVD data_size+24(FP), R3
MOVD actual+32(FP), R4
BL vdso_zx_ktrace_read(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_ktrace_control(handle uint32, action uint32, options uint32, ptr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_ktrace_control(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW action+4(FP), R1
MOVW options+8(FP), R2
MOVD ptr+16(FP), R3
BL vdso_zx_ktrace_control(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_ktrace_write(handle uint32, id uint32, arg0 uint32, arg1 uint32) int32
TEXT runtime·vdsoCall_zx_ktrace_write(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW id+4(FP), R1
MOVW arg0+8(FP), R2
MOVW arg1+12(FP), R3
BL vdso_zx_ktrace_write(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_nanosleep(deadline int64) int32
TEXT runtime·vdsoCall_zx_nanosleep(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD deadline+0(FP), R0
BL vdso_zx_nanosleep(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_ticks_get() int64
TEXT runtime·vdsoCall_zx_ticks_get(SB),NOSPLIT,$0-8
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_ticks_get(SB)
MOVD R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_ticks_per_second() int64
TEXT runtime·vdsoCall_zx_ticks_per_second(SB),NOSPLIT,$0-8
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_ticks_per_second(SB)
MOVD R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_deadline_after(nanoseconds int64) int64
TEXT runtime·vdsoCall_zx_deadline_after(SB),NOSPLIT,$0-16
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD nanoseconds+0(FP), R0
BL vdso_zx_deadline_after(SB)
MOVD R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmar_unmap_handle_close_thread_exit(vmar_handle uint32, addr uintptr, size uint, close_handle uint32) int32
TEXT runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW vmar_handle+0(FP), R0
MOVD addr+8(FP), R1
MOVD size+16(FP), R2
MOVW close_handle+24(FP), R3
BL vdso_zx_vmar_unmap_handle_close_thread_exit(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_futex_wake_handle_close_thread_exit(value_ptr unsafe.Pointer, wake_count uint32, new_value int32, close_handle uint32)
TEXT runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$0-24
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD value_ptr+0(FP), R0
MOVW wake_count+8(FP), R1
MOVW new_value+12(FP), R2
MOVW close_handle+16(FP), R3
BL vdso_zx_futex_wake_handle_close_thread_exit(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_ticks_get_via_kernel() int64
TEXT runtime·vdsoCall_zx_ticks_get_via_kernel(SB),NOSPLIT,$0-8
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_ticks_get_via_kernel(SB)
MOVD R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_msi_allocate(handle uint32, count uint32, out_allocation unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_msi_allocate(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW count+4(FP), R1
MOVD out_allocation+8(FP), R2
BL vdso_zx_msi_allocate(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_msi_create(handle uint32, options uint32, msi_id uint32, vmo uint32, vmo_offset uint, out_interrupt unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_msi_create(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVW msi_id+8(FP), R2
MOVW vmo+12(FP), R3
MOVD vmo_offset+16(FP), R4
MOVD out_interrupt+24(FP), R5
BL vdso_zx_msi_create(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_mtrace_control(handle uint32, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) int32
TEXT runtime·vdsoCall_zx_mtrace_control(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW kind+4(FP), R1
MOVW action+8(FP), R2
MOVW options+12(FP), R3
MOVD ptr+16(FP), R4
MOVD ptr_size+24(FP), R5
BL vdso_zx_mtrace_control(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_wait_one(handle uint32, signals uint32, deadline int64, observed unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_wait_one(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVW handle+0(FP), R0
MOVW signals+4(FP), R1
MOVD deadline+8(FP), R2
MOVD observed+16(FP), R3
BL vdso_zx_object_wait_one(SB)
MOVW R0, ret+24(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_wait_many(items unsafe.Pointer, num_items uint, deadline int64) int32
TEXT runtime·vdsoCall_zx_object_wait_many(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVD items+0(FP), R0
MOVD num_items+8(FP), R1
MOVD deadline+16(FP), R2
BL vdso_zx_object_wait_many(SB)
MOVW R0, ret+24(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_wait_async(handle uint32, port uint32, key uint64, signals uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_object_wait_async(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW port+4(FP), R1
MOVD key+8(FP), R2
MOVW signals+16(FP), R3
MOVW options+20(FP), R4
BL vdso_zx_object_wait_async(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_signal(handle uint32, clear_mask uint32, set_mask uint32) int32
TEXT runtime·vdsoCall_zx_object_signal(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW clear_mask+4(FP), R1
MOVW set_mask+8(FP), R2
BL vdso_zx_object_signal(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_signal_peer(handle uint32, clear_mask uint32, set_mask uint32) int32
TEXT runtime·vdsoCall_zx_object_signal_peer(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW clear_mask+4(FP), R1
MOVW set_mask+8(FP), R2
BL vdso_zx_object_signal_peer(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_get_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
TEXT runtime·vdsoCall_zx_object_get_property(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW property+4(FP), R1
MOVD value+8(FP), R2
MOVD value_size+16(FP), R3
BL vdso_zx_object_get_property(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_set_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
TEXT runtime·vdsoCall_zx_object_set_property(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW property+4(FP), R1
MOVD value+8(FP), R2
MOVD value_size+16(FP), R3
BL vdso_zx_object_set_property(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_get_info(handle uint32, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_get_info(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW topic+4(FP), R1
MOVD buffer+8(FP), R2
MOVD buffer_size+16(FP), R3
MOVD actual+24(FP), R4
MOVD avail+32(FP), R5
BL vdso_zx_object_get_info(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_get_child(handle uint32, koid uint64, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_get_child(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD koid+8(FP), R1
MOVW rights+16(FP), R2
MOVD out+24(FP), R3
BL vdso_zx_object_get_child(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_object_set_profile(handle uint32, profile uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_object_set_profile(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW profile+4(FP), R1
MOVW options+8(FP), R2
BL vdso_zx_object_set_profile(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pager_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pager_create(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW options+0(FP), R0
MOVD out+8(FP), R1
BL vdso_zx_pager_create(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pager_create_vmo(pager uint32, options uint32, port uint32, key uint64, size uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pager_create_vmo(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW pager+0(FP), R0
MOVW options+4(FP), R1
MOVW port+8(FP), R2
MOVD key+16(FP), R3
MOVD size+24(FP), R4
MOVD out+32(FP), R5
BL vdso_zx_pager_create_vmo(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pager_detach_vmo(pager uint32, vmo uint32) int32
TEXT runtime·vdsoCall_zx_pager_detach_vmo(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW pager+0(FP), R0
MOVW vmo+4(FP), R1
BL vdso_zx_pager_detach_vmo(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pager_supply_pages(pager uint32, pager_vmo uint32, offset uint64, length uint64, aux_vmo uint32, aux_offset uint64) int32
TEXT runtime·vdsoCall_zx_pager_supply_pages(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW pager+0(FP), R0
MOVW pager_vmo+4(FP), R1
MOVD offset+8(FP), R2
MOVD length+16(FP), R3
MOVW aux_vmo+24(FP), R4
MOVD aux_offset+32(FP), R5
BL vdso_zx_pager_supply_pages(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pager_op_range(pager uint32, op uint32, pager_vmo uint32, offset uint64, length uint64, data uint64) int32
TEXT runtime·vdsoCall_zx_pager_op_range(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW pager+0(FP), R0
MOVW op+4(FP), R1
MOVW pager_vmo+8(FP), R2
MOVD offset+16(FP), R3
MOVD length+24(FP), R4
MOVD data+32(FP), R5
BL vdso_zx_pager_op_range(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pc_firmware_tables(handle uint32, acpi_rsdp unsafe.Pointer, smbios unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pc_firmware_tables(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD acpi_rsdp+8(FP), R1
MOVD smbios+16(FP), R2
BL vdso_zx_pc_firmware_tables(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_get_nth_device(handle uint32, index uint32, out_info unsafe.Pointer, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_get_nth_device(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW index+4(FP), R1
MOVD out_info+8(FP), R2
MOVD out_handle+16(FP), R3
BL vdso_zx_pci_get_nth_device(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_enable_bus_master(handle uint32, enable uint32) int32
TEXT runtime·vdsoCall_zx_pci_enable_bus_master(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW enable+4(FP), R1
BL vdso_zx_pci_enable_bus_master(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_reset_device(handle uint32) int32
TEXT runtime·vdsoCall_zx_pci_reset_device(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
BL vdso_zx_pci_reset_device(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_config_read(handle uint32, offset uint16, width uint, out_val unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_config_read(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD offset+4(FP), R1
MOVD width+8(FP), R2
MOVD out_val+16(FP), R3
BL vdso_zx_pci_config_read(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_config_write(handle uint32, offset uint16, width uint, val uint32) int32
TEXT runtime·vdsoCall_zx_pci_config_write(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD offset+4(FP), R1
MOVD width+8(FP), R2
MOVW val+16(FP), R3
BL vdso_zx_pci_config_write(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_cfg_pio_rw(handle uint32, bus uint8, dev uint8, funk uint8, offset uint8, val unsafe.Pointer, width uint, write uint32) int32
TEXT runtime·vdsoCall_zx_pci_cfg_pio_rw(SB),NOSPLIT,$0-68
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD bus+8(FP), R1
MOVD dev+16(FP), R2
MOVD funk+24(FP), R3
MOVD offset+32(FP), R4
MOVD val+40(FP), R5
MOVD width+48(FP), R6
MOVW write+56(FP), R7
BL vdso_zx_pci_cfg_pio_rw(SB)
MOVW R0, ret+64(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_get_bar(handle uint32, bar_num uint32, out_bar unsafe.Pointer, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_get_bar(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW bar_num+4(FP), R1
MOVD out_bar+8(FP), R2
MOVD out_handle+16(FP), R3
BL vdso_zx_pci_get_bar(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_map_interrupt(handle uint32, which_irq int32, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_map_interrupt(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW which_irq+4(FP), R1
MOVD out_handle+8(FP), R2
BL vdso_zx_pci_map_interrupt(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_query_irq_mode(handle uint32, mode uint32, out_max_irqs unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_query_irq_mode(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW mode+4(FP), R1
MOVD out_max_irqs+8(FP), R2
BL vdso_zx_pci_query_irq_mode(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_set_irq_mode(handle uint32, mode uint32, requested_irq_count uint32) int32
TEXT runtime·vdsoCall_zx_pci_set_irq_mode(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW mode+4(FP), R1
MOVW requested_irq_count+8(FP), R2
BL vdso_zx_pci_set_irq_mode(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_init(handle uint32, init_buf unsafe.Pointer, len uint32) int32
TEXT runtime·vdsoCall_zx_pci_init(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD init_buf+8(FP), R1
MOVW len+16(FP), R2
BL vdso_zx_pci_init(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pci_add_subtract_io_range(handle uint32, mmio uint32, base uint64, len uint64, add uint32) int32
TEXT runtime·vdsoCall_zx_pci_add_subtract_io_range(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW mmio+4(FP), R1
MOVD base+8(FP), R2
MOVD len+16(FP), R3
MOVW add+24(FP), R4
BL vdso_zx_pci_add_subtract_io_range(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_pmt_unpin(handle uint32) int32
TEXT runtime·vdsoCall_zx_pmt_unpin(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
BL vdso_zx_pmt_unpin(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_port_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_create(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW options+0(FP), R0
MOVD out+8(FP), R1
BL vdso_zx_port_create(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_port_queue(handle uint32, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_queue(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD packet+8(FP), R1
BL vdso_zx_port_queue(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_port_wait(handle uint32, deadline int64, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_wait(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVW handle+0(FP), R0
MOVD deadline+8(FP), R1
MOVD packet+16(FP), R2
BL vdso_zx_port_wait(SB)
MOVW R0, ret+24(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_port_cancel(handle uint32, source uint32, key uint64) int32
TEXT runtime·vdsoCall_zx_port_cancel(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW source+4(FP), R1
MOVD key+8(FP), R2
BL vdso_zx_port_cancel(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_process_exit(retcode int64)
TEXT runtime·vdsoCall_zx_process_exit(SB),NOSPLIT,$0-8
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD retcode+0(FP), R0
BL vdso_zx_process_exit(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_process_create(job uint32, name unsafe.Pointer, name_size uint, options uint32, proc_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_create(SB),NOSPLIT,$0-52
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW job+0(FP), R0
MOVD name+8(FP), R1
MOVD name_size+16(FP), R2
MOVW options+24(FP), R3
MOVD proc_handle+32(FP), R4
MOVD vmar_handle+40(FP), R5
BL vdso_zx_process_create(SB)
MOVW R0, ret+48(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_process_start(handle uint32, thread uint32, entry uintptr, stack uintptr, arg1 uint32, arg2 uintptr) int32
TEXT runtime·vdsoCall_zx_process_start(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW thread+4(FP), R1
MOVD entry+8(FP), R2
MOVD stack+16(FP), R3
MOVW arg1+24(FP), R4
MOVD arg2+32(FP), R5
BL vdso_zx_process_start(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_process_read_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_read_memory(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD vaddr+8(FP), R1
MOVD buffer+16(FP), R2
MOVD buffer_size+24(FP), R3
MOVD actual+32(FP), R4
BL vdso_zx_process_read_memory(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_process_write_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_write_memory(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD vaddr+8(FP), R1
MOVD buffer+16(FP), R2
MOVD buffer_size+24(FP), R3
MOVD actual+32(FP), R4
BL vdso_zx_process_write_memory(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_profile_create(root_job uint32, options uint32, profile unsafe.Pointer, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_profile_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW root_job+0(FP), R0
MOVW options+4(FP), R1
MOVD profile+8(FP), R2
MOVD out+16(FP), R3
BL vdso_zx_profile_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_resource_create(parent_rsrc uint32, options uint32, base uint64, size uint, name unsafe.Pointer, name_size uint, resource_out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_resource_create(SB),NOSPLIT,$0-52
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW parent_rsrc+0(FP), R0
MOVW options+4(FP), R1
MOVD base+8(FP), R2
MOVD size+16(FP), R3
MOVD name+24(FP), R4
MOVD name_size+32(FP), R5
MOVD resource_out+40(FP), R6
BL vdso_zx_resource_create(SB)
MOVW R0, ret+48(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_smc_call(handle uint32, parameters unsafe.Pointer, out_smc_result unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_smc_call(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD parameters+8(FP), R1
MOVD out_smc_result+16(FP), R2
BL vdso_zx_smc_call(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_socket_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW options+0(FP), R0
MOVD out0+8(FP), R1
MOVD out1+16(FP), R2
BL vdso_zx_socket_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_socket_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_write(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD buffer+8(FP), R2
MOVD buffer_size+16(FP), R3
MOVD actual+24(FP), R4
BL vdso_zx_socket_write(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_socket_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_read(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD buffer+8(FP), R2
MOVD buffer_size+16(FP), R3
MOVD actual+24(FP), R4
BL vdso_zx_socket_read(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_socket_shutdown(handle uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_socket_shutdown(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
BL vdso_zx_socket_shutdown(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_stream_create(options uint32, vmo uint32, seek uint64, out_stream unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW options+0(FP), R0
MOVW vmo+4(FP), R1
MOVD seek+8(FP), R2
MOVD out_stream+16(FP), R3
BL vdso_zx_stream_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_stream_writev(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_writev(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD vector+8(FP), R2
MOVD num_vector+16(FP), R3
MOVD actual+24(FP), R4
BL vdso_zx_stream_writev(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_stream_writev_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_writev_at(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD offset+8(FP), R2
MOVD vector+16(FP), R3
MOVD num_vector+24(FP), R4
MOVD actual+32(FP), R5
BL vdso_zx_stream_writev_at(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_stream_readv(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_readv(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD vector+8(FP), R2
MOVD num_vector+16(FP), R3
MOVD actual+24(FP), R4
BL vdso_zx_stream_readv(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_stream_readv_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_readv_at(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD offset+8(FP), R2
MOVD vector+16(FP), R3
MOVD num_vector+24(FP), R4
MOVD actual+32(FP), R5
BL vdso_zx_stream_readv_at(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_stream_seek(handle uint32, whence uint32, offset int64, out_seek unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_seek(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW whence+4(FP), R1
MOVD offset+8(FP), R2
MOVD out_seek+16(FP), R3
BL vdso_zx_stream_seek(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_0() int32
TEXT runtime·vdsoCall_zx_syscall_test_0(SB),NOSPLIT,$0-4
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_syscall_test_0(SB)
MOVW R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_1(a int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_1(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW a+0(FP), R0
BL vdso_zx_syscall_test_1(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_2(a int32, b int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_2(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW a+0(FP), R0
MOVW b+4(FP), R1
BL vdso_zx_syscall_test_2(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_3(a int32, b int32, c int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_3(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW a+0(FP), R0
MOVW b+4(FP), R1
MOVW c+8(FP), R2
BL vdso_zx_syscall_test_3(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_4(a int32, b int32, c int32, d int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_4(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW a+0(FP), R0
MOVW b+4(FP), R1
MOVW c+8(FP), R2
MOVW d+12(FP), R3
BL vdso_zx_syscall_test_4(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_5(a int32, b int32, c int32, d int32, e int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_5(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW a+0(FP), R0
MOVW b+4(FP), R1
MOVW c+8(FP), R2
MOVW d+12(FP), R3
MOVW e+16(FP), R4
BL vdso_zx_syscall_test_5(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_6(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW a+0(FP), R0
MOVW b+4(FP), R1
MOVW c+8(FP), R2
MOVW d+12(FP), R3
MOVW e+16(FP), R4
MOVW f+20(FP), R5
BL vdso_zx_syscall_test_6(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_7(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW a+0(FP), R0
MOVW b+4(FP), R1
MOVW c+8(FP), R2
MOVW d+12(FP), R3
MOVW e+16(FP), R4
MOVW f+20(FP), R5
MOVW g_+24(FP), R6
BL vdso_zx_syscall_test_7(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_8(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW a+0(FP), R0
MOVW b+4(FP), R1
MOVW c+8(FP), R2
MOVW d+12(FP), R3
MOVW e+16(FP), R4
MOVW f+20(FP), R5
MOVW g_+24(FP), R6
MOVW h+28(FP), R7
BL vdso_zx_syscall_test_8(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_wrapper(a int32, b int32, c int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_wrapper(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW a+0(FP), R0
MOVW b+4(FP), R1
MOVW c+8(FP), R2
BL vdso_zx_syscall_test_wrapper(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_syscall_test_handle_create(return_value int32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_syscall_test_handle_create(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW return_value+0(FP), R0
MOVD out+8(FP), R1
BL vdso_zx_syscall_test_handle_create(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_system_get_dcache_line_size() uint32
TEXT runtime·vdsoCall_zx_system_get_dcache_line_size(SB),NOSPLIT,$0-4
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_system_get_dcache_line_size(SB)
MOVW R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_system_get_num_cpus() uint32
TEXT runtime·vdsoCall_zx_system_get_num_cpus(SB),NOSPLIT,$0-4
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_system_get_num_cpus(SB)
MOVW R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_system_get_version_string() unsafe.Pointer
TEXT runtime·vdsoCall_zx_system_get_version_string(SB),NOSPLIT,$0-8
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_system_get_version_string(SB)
MOVD R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_system_get_physmem() uint64
TEXT runtime·vdsoCall_zx_system_get_physmem(SB),NOSPLIT,$0-8
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_system_get_physmem(SB)
MOVD R0, ret+0(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_system_get_features(kind uint32, features unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_get_features(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW kind+0(FP), R0
MOVD features+8(FP), R1
BL vdso_zx_system_get_features(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_system_get_event(root_job uint32, kind uint32, event unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_get_event(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW root_job+0(FP), R0
MOVW kind+4(FP), R1
MOVD event+8(FP), R2
BL vdso_zx_system_get_event(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_system_mexec(resource uint32, kernel_vmo uint32, bootimage_vmo uint32) int32
TEXT runtime·vdsoCall_zx_system_mexec(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVW kernel_vmo+4(FP), R1
MOVW bootimage_vmo+8(FP), R2
BL vdso_zx_system_mexec(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_system_mexec_payload_get(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_system_mexec_payload_get(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVD buffer+8(FP), R1
MOVD buffer_size+16(FP), R2
BL vdso_zx_system_mexec_payload_get(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_system_powerctl(resource uint32, cmd uint32, arg unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_powerctl(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVW cmd+4(FP), R1
MOVD arg+8(FP), R2
BL vdso_zx_system_powerctl(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_task_suspend(handle uint32, token unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_suspend(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD token+8(FP), R1
BL vdso_zx_task_suspend(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_task_suspend_token(handle uint32, token unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_suspend_token(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD token+8(FP), R1
BL vdso_zx_task_suspend_token(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_task_create_exception_channel(handle uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_create_exception_channel(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD out+8(FP), R2
BL vdso_zx_task_create_exception_channel(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_task_kill(handle uint32) int32
TEXT runtime·vdsoCall_zx_task_kill(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
BL vdso_zx_task_kill(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_thread_exit()
TEXT runtime·vdsoCall_zx_thread_exit(SB),NOSPLIT,$0-0
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
BL vdso_zx_thread_exit(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_thread_create(process uint32, name unsafe.Pointer, name_size uint, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_thread_create(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW process+0(FP), R0
MOVD name+8(FP), R1
MOVD name_size+16(FP), R2
MOVW options+24(FP), R3
MOVD out+32(FP), R4
BL vdso_zx_thread_create(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_thread_start(handle uint32, thread_entry uintptr, stack uintptr, arg1 uintptr, arg2 uintptr) int32
TEXT runtime·vdsoCall_zx_thread_start(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD thread_entry+8(FP), R1
MOVD stack+16(FP), R2
MOVD arg1+24(FP), R3
MOVD arg2+32(FP), R4
BL vdso_zx_thread_start(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_thread_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_thread_read_state(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW kind+4(FP), R1
MOVD buffer+8(FP), R2
MOVD buffer_size+16(FP), R3
BL vdso_zx_thread_read_state(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_thread_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_thread_write_state(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW kind+4(FP), R1
MOVD buffer+8(FP), R2
MOVD buffer_size+16(FP), R3
BL vdso_zx_thread_write_state(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_timer_create(options uint32, clock_id uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_timer_create(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW options+0(FP), R0
MOVW clock_id+4(FP), R1
MOVD out+8(FP), R2
BL vdso_zx_timer_create(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_timer_set(handle uint32, deadline int64, slack int64) int32
TEXT runtime·vdsoCall_zx_timer_set(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD deadline+8(FP), R1
MOVD slack+16(FP), R2
BL vdso_zx_timer_set(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_timer_cancel(handle uint32) int32
TEXT runtime·vdsoCall_zx_timer_cancel(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
BL vdso_zx_timer_cancel(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vcpu_create(guest uint32, options uint32, entry uintptr, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vcpu_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW guest+0(FP), R0
MOVW options+4(FP), R1
MOVD entry+8(FP), R2
MOVD out+16(FP), R3
BL vdso_zx_vcpu_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vcpu_resume(handle uint32, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vcpu_resume(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVW handle+0(FP), R0
MOVD packet+8(FP), R1
BL vdso_zx_vcpu_resume(SB)
MOVW R0, ret+16(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vcpu_interrupt(handle uint32, vector uint32) int32
TEXT runtime·vdsoCall_zx_vcpu_interrupt(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW vector+4(FP), R1
BL vdso_zx_vcpu_interrupt(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vcpu_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vcpu_read_state(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW kind+4(FP), R1
MOVD buffer+8(FP), R2
MOVD buffer_size+16(FP), R3
BL vdso_zx_vcpu_read_state(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vcpu_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vcpu_write_state(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW kind+4(FP), R1
MOVD buffer+8(FP), R2
MOVD buffer_size+16(FP), R3
BL vdso_zx_vcpu_write_state(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmar_allocate(parent_vmar uint32, options uint32, offset uint, size uint, child_vmar unsafe.Pointer, child_addr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmar_allocate(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW parent_vmar+0(FP), R0
MOVW options+4(FP), R1
MOVD offset+8(FP), R2
MOVD size+16(FP), R3
MOVD child_vmar+24(FP), R4
MOVD child_addr+32(FP), R5
BL vdso_zx_vmar_allocate(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmar_destroy(handle uint32) int32
TEXT runtime·vdsoCall_zx_vmar_destroy(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
BL vdso_zx_vmar_destroy(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmar_map(handle uint32, options uint32, vmar_offset uint, vmo uint32, vmo_offset uint64, len uint, mapped_addr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmar_map(SB),NOSPLIT,$0-52
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD vmar_offset+8(FP), R2
MOVW vmo+16(FP), R3
MOVD vmo_offset+24(FP), R4
MOVD len+32(FP), R5
MOVD mapped_addr+40(FP), R6
BL vdso_zx_vmar_map(SB)
MOVW R0, ret+48(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmar_unmap(handle uint32, addr uintptr, len uint) int32
TEXT runtime·vdsoCall_zx_vmar_unmap(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD addr+8(FP), R1
MOVD len+16(FP), R2
BL vdso_zx_vmar_unmap(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmar_protect(handle uint32, options uint32, addr uintptr, len uint) int32
TEXT runtime·vdsoCall_zx_vmar_protect(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD addr+8(FP), R2
MOVD len+16(FP), R3
BL vdso_zx_vmar_protect(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmar_op_range(handle uint32, op uint32, address uintptr, size uint, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmar_op_range(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW op+4(FP), R1
MOVD address+8(FP), R2
MOVD size+16(FP), R3
MOVD buffer+24(FP), R4
MOVD buffer_size+32(FP), R5
BL vdso_zx_vmar_op_range(SB)
MOVW R0, ret+40(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_create(size uint64, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create(SB),NOSPLIT,$0-28
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVD size+0(FP), R0
MOVW options+8(FP), R1
MOVD out+16(FP), R2
BL vdso_zx_vmo_create(SB)
MOVW R0, ret+24(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_read(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_read(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVW handle+0(FP), R0
MOVD buffer+8(FP), R1
MOVD offset+16(FP), R2
MOVD buffer_size+24(FP), R3
BL vdso_zx_vmo_read(SB)
MOVW R0, ret+32(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_write(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_write(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVW handle+0(FP), R0
MOVD buffer+8(FP), R1
MOVD offset+16(FP), R2
MOVD buffer_size+24(FP), R3
BL vdso_zx_vmo_write(SB)
MOVW R0, ret+32(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_get_size(handle uint32, size unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_get_size(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD size+8(FP), R1
BL vdso_zx_vmo_get_size(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_set_size(handle uint32, size uint64) int32
TEXT runtime·vdsoCall_zx_vmo_set_size(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVD size+8(FP), R1
BL vdso_zx_vmo_set_size(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_op_range(handle uint32, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_op_range(SB),NOSPLIT,$0-44
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
CALL runtime·entersyscall(SB)
MOVW handle+0(FP), R0
MOVW op+4(FP), R1
MOVD offset+8(FP), R2
MOVD size+16(FP), R3
MOVD buffer+24(FP), R4
MOVD buffer_size+32(FP), R5
BL vdso_zx_vmo_op_range(SB)
MOVW R0, ret+40(FP)
BL runtime·exitsyscall(SB)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_create_child(handle uint32, options uint32, offset uint64, size uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_child(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW options+4(FP), R1
MOVD offset+8(FP), R2
MOVD size+16(FP), R3
MOVD out+24(FP), R4
BL vdso_zx_vmo_create_child(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_set_cache_policy(handle uint32, cache_policy uint32) int32
TEXT runtime·vdsoCall_zx_vmo_set_cache_policy(SB),NOSPLIT,$0-12
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW cache_policy+4(FP), R1
BL vdso_zx_vmo_set_cache_policy(SB)
MOVW R0, ret+8(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_replace_as_executable(handle uint32, vmex uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_replace_as_executable(SB),NOSPLIT,$0-20
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW handle+0(FP), R0
MOVW vmex+4(FP), R1
MOVD out+8(FP), R2
BL vdso_zx_vmo_replace_as_executable(SB)
MOVW R0, ret+16(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_create_contiguous(bti uint32, size uint, alignment_log2 uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_contiguous(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW bti+0(FP), R0
MOVD size+8(FP), R1
MOVW alignment_log2+16(FP), R2
MOVD out+24(FP), R3
BL vdso_zx_vmo_create_contiguous(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
// func vdsoCall_zx_vmo_create_physical(resource uint32, paddr uintptr, size uint, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_physical(SB),NOSPLIT,$0-36
GO_ARGS
NO_LOCAL_POINTERS
MOVD g_m(g), R21
MOVD LR, m_vdsoPC(R21)
MOVD RSP, R20
MOVD R20, m_vdsoSP(R21)
MOVW resource+0(FP), R0
MOVD paddr+8(FP), R1
MOVD size+16(FP), R2
MOVD out+24(FP), R3
BL vdso_zx_vmo_create_physical(SB)
MOVW R0, ret+32(FP)
MOVD g_m(g), R21
MOVD $0, m_vdsoSP(R21)
RET
----- go-vdso-arm64-calls.s END -----
----- go-vdso-keys.go START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
package runtime
import "unsafe"
const (
// vdsoArrayMax is the byte-size of a maximally sized array on this architecture.
// See cmd/compile/internal/amd64/galign.go arch.MAXWIDTH initialization.
vdsoArrayMax = 1<<50 - 1
)
var vdsoSymbolKeys = []vdsoSymbolKey{
{"_zx_bti_create", 0x7833987, &vdso_zx_bti_create},
{"_zx_bti_pin", 0x2aa0e6da, &vdso_zx_bti_pin},
{"_zx_bti_release_quarantine", 0x441c1c6b, &vdso_zx_bti_release_quarantine},
{"_zx_cache_flush", 0x319eccca, &vdso_zx_cache_flush},
{"_zx_channel_create", 0xe5199281, &vdso_zx_channel_create},
{"_zx_channel_read", 0xe7169b09, &vdso_zx_channel_read},
{"_zx_channel_read_etc", 0x77c4cc84, &vdso_zx_channel_read_etc},
{"_zx_channel_write", 0xca4bbc18, &vdso_zx_channel_write},
{"_zx_channel_write_etc", 0x43b1dd13, &vdso_zx_channel_write_etc},
{"_zx_channel_call_noretry", 0xb5ad0b5b, &vdso_zx_channel_call_noretry},
{"_zx_channel_call_finish", 0x85ce3de9, &vdso_zx_channel_call_finish},
{"_zx_channel_call", 0xe70e51c9, &vdso_zx_channel_call},
{"_zx_channel_call_etc_noretry", 0xc3a3e7d6, &vdso_zx_channel_call_etc_noretry},
{"_zx_channel_call_etc_finish", 0xd3cdf704, &vdso_zx_channel_call_etc_finish},
{"_zx_channel_call_etc", 0x8639e344, &vdso_zx_channel_call_etc},
{"_zx_clock_get", 0x3fb5d7c0, &vdso_zx_clock_get},
{"_zx_clock_get_monotonic", 0xb00e6115, &vdso_zx_clock_get_monotonic},
{"_zx_clock_adjust", 0x87cf38ab, &vdso_zx_clock_adjust},
{"_zx_clock_get_monotonic_via_kernel", 0x3dc12b54, &vdso_zx_clock_get_monotonic_via_kernel},
{"_zx_clock_create", 0x8d73ce14, &vdso_zx_clock_create},
{"_zx_clock_read", 0x3676d5dc, &vdso_zx_clock_read},
{"_zx_clock_get_details", 0xb7227265, &vdso_zx_clock_get_details},
{"_zx_clock_update", 0xb74bec03, &vdso_zx_clock_update},
{"_zx_cprng_draw_once", 0x40248ce0, &vdso_zx_cprng_draw_once},
{"_zx_cprng_draw", 0x12929c5c, &vdso_zx_cprng_draw},
{"_zx_cprng_add_entropy", 0x1617dd47, &vdso_zx_cprng_add_entropy},
{"_zx_debug_read", 0x6c062397, &vdso_zx_debug_read},
{"_zx_debug_write", 0xed2c5666, &vdso_zx_debug_write},
{"_zx_debug_send_command", 0xac6e8203, &vdso_zx_debug_send_command},
{"_zx_debuglog_create", 0x2504f1, &vdso_zx_debuglog_create},
{"_zx_debuglog_write", 0x3f7aa088, &vdso_zx_debuglog_write},
{"_zx_debuglog_read", 0x66c2b179, &vdso_zx_debuglog_read},
{"_zx_event_create", 0x4c39490a, &vdso_zx_event_create},
{"_zx_eventpair_create", 0xe3fd9c16, &vdso_zx_eventpair_create},
{"_zx_exception_get_thread", 0xb1c70bba, &vdso_zx_exception_get_thread},
{"_zx_exception_get_process", 0xcddbd761, &vdso_zx_exception_get_process},
{"_zx_fifo_create", 0xf197cb2c, &vdso_zx_fifo_create},
{"_zx_fifo_read", 0x3ec8acf4, &vdso_zx_fifo_read},
{"_zx_fifo_write", 0x18400b63, &vdso_zx_fifo_write},
{"_zx_framebuffer_get_info", 0xe6c88924, &vdso_zx_framebuffer_get_info},
{"_zx_framebuffer_set_range", 0x364ad6b1, &vdso_zx_framebuffer_set_range},
{"_zx_futex_wait", 0xb089e255, &vdso_zx_futex_wait},
{"_zx_futex_wake", 0xb089e288, &vdso_zx_futex_wake},
{"_zx_futex_requeue", 0xd509be7c, &vdso_zx_futex_requeue},
{"_zx_futex_wake_single_owner", 0x63970173, &vdso_zx_futex_wake_single_owner},
{"_zx_futex_requeue_single_owner", 0x8f9a9e7, &vdso_zx_futex_requeue_single_owner},
{"_zx_futex_get_owner", 0xf16dec6a, &vdso_zx_futex_get_owner},
{"_zx_guest_create", 0x6f318390, &vdso_zx_guest_create},
{"_zx_guest_set_trap", 0xffe2547e, &vdso_zx_guest_set_trap},
{"_zx_handle_close", 0xe769f876, &vdso_zx_handle_close},
{"_zx_handle_close_many", 0x8a9a3aaa, &vdso_zx_handle_close_many},
{"_zx_handle_duplicate", 0x3f0a83b, &vdso_zx_handle_duplicate},
{"_zx_handle_replace", 0xdc2d9edc, &vdso_zx_handle_replace},
{"_zx_interrupt_create", 0xaa939795, &vdso_zx_interrupt_create},
{"_zx_interrupt_bind", 0xa25b97be, &vdso_zx_interrupt_bind},
{"_zx_interrupt_wait", 0xa266f916, &vdso_zx_interrupt_wait},
{"_zx_interrupt_destroy", 0x2cb5724b, &vdso_zx_interrupt_destroy},
{"_zx_interrupt_ack", 0x3b390f10, &vdso_zx_interrupt_ack},
{"_zx_interrupt_trigger", 0x19f00875, &vdso_zx_interrupt_trigger},
{"_zx_interrupt_bind_vcpu", 0x505f9f1b, &vdso_zx_interrupt_bind_vcpu},
{"_zx_iommu_create", 0x297b6af, &vdso_zx_iommu_create},
{"_zx_ioports_request", 0xb8f1c0ad, &vdso_zx_ioports_request},
{"_zx_ioports_release", 0xb88e6f05, &vdso_zx_ioports_release},
{"_zx_job_create", 0x6b9cbb63, &vdso_zx_job_create},
{"_zx_job_set_policy", 0xa45d60ea, &vdso_zx_job_set_policy},
{"_zx_job_set_critical", 0x129ab785, &vdso_zx_job_set_critical},
{"_zx_ktrace_read", 0x7a59dbca, &vdso_zx_ktrace_read},
{"_zx_ktrace_control", 0x15debecf, &vdso_zx_ktrace_control},
{"_zx_ktrace_write", 0xc5f714f9, &vdso_zx_ktrace_write},
{"_zx_nanosleep", 0xe9d6145a, &vdso_zx_nanosleep},
{"_zx_ticks_get", 0xaeb30a32, &vdso_zx_ticks_get},
{"_zx_ticks_per_second", 0x6ed47574, &vdso_zx_ticks_per_second},
{"_zx_deadline_after", 0x6253eb5c, &vdso_zx_deadline_after},
{"_zx_vmar_unmap_handle_close_thread_exit", 0x5a372afb, &vdso_zx_vmar_unmap_handle_close_thread_exit},
{"_zx_futex_wake_handle_close_thread_exit", 0x49731cb8, &vdso_zx_futex_wake_handle_close_thread_exit},
{"_zx_ticks_get_via_kernel", 0x821bc851, &vdso_zx_ticks_get_via_kernel},
{"_zx_msi_allocate", 0xf5370e42, &vdso_zx_msi_allocate},
{"_zx_msi_create", 0xbf7b04f1, &vdso_zx_msi_create},
{"_zx_mtrace_control", 0x8c5f3211, &vdso_zx_mtrace_control},
{"_zx_object_wait_one", 0xed850621, &vdso_zx_object_wait_one},
{"_zx_object_wait_many", 0x9e247bd4, &vdso_zx_object_wait_many},
{"_zx_object_wait_async", 0x61e4dcdd, &vdso_zx_object_wait_async},
{"_zx_object_signal", 0x460ab89, &vdso_zx_object_signal},
{"_zx_object_signal_peer", 0xe90c8694, &vdso_zx_object_signal_peer},
{"_zx_object_get_property", 0xd60c8aef, &vdso_zx_object_get_property},
{"_zx_object_set_property", 0x2174eb7b, &vdso_zx_object_set_property},
{"_zx_object_get_info", 0x7582ddf6, &vdso_zx_object_get_info},
{"_zx_object_get_child", 0x256ecc2e, &vdso_zx_object_get_child},
{"_zx_object_set_profile", 0x7d1d2727, &vdso_zx_object_set_profile},
{"_zx_pager_create", 0x8d44ed57, &vdso_zx_pager_create},
{"_zx_pager_create_vmo", 0x564fdd48, &vdso_zx_pager_create_vmo},
{"_zx_pager_detach_vmo", 0x2072c15d, &vdso_zx_pager_detach_vmo},
{"_zx_pager_supply_pages", 0x69d1fc7f, &vdso_zx_pager_supply_pages},
{"_zx_pager_op_range", 0x5e8195ae, &vdso_zx_pager_op_range},
{"_zx_pc_firmware_tables", 0x1a05d1fe, &vdso_zx_pc_firmware_tables},
{"_zx_pci_get_nth_device", 0x32106f08, &vdso_zx_pci_get_nth_device},
{"_zx_pci_enable_bus_master", 0x76091cab, &vdso_zx_pci_enable_bus_master},
{"_zx_pci_reset_device", 0xc6496142, &vdso_zx_pci_reset_device},
{"_zx_pci_config_read", 0xc765eb61, &vdso_zx_pci_config_read},
{"_zx_pci_config_write", 0xb4851770, &vdso_zx_pci_config_write},
{"_zx_pci_cfg_pio_rw", 0xda224f4f, &vdso_zx_pci_cfg_pio_rw},
{"_zx_pci_get_bar", 0x14ec9dc4, &vdso_zx_pci_get_bar},
{"_zx_pci_map_interrupt", 0x3c5aa3fa, &vdso_zx_pci_map_interrupt},
{"_zx_pci_query_irq_mode", 0xdf173875, &vdso_zx_pci_query_irq_mode},
{"_zx_pci_set_irq_mode", 0xedfcadcb, &vdso_zx_pci_set_irq_mode},
{"_zx_pci_init", 0x4db59c04, &vdso_zx_pci_init},
{"_zx_pci_add_subtract_io_range", 0x5fcd4b03, &vdso_zx_pci_add_subtract_io_range},
{"_zx_pmt_unpin", 0x8e954c6f, &vdso_zx_pmt_unpin},
{"_zx_port_create", 0x5294baed, &vdso_zx_port_create},
{"_zx_port_queue", 0x8f22883e, &vdso_zx_port_queue},
{"_zx_port_wait", 0xfc97666e, &vdso_zx_port_wait},
{"_zx_port_cancel", 0x5166105f, &vdso_zx_port_cancel},
{"_zx_process_exit", 0xc7f8a64d, &vdso_zx_process_exit},
{"_zx_process_create", 0xa3a21647, &vdso_zx_process_create},
{"_zx_process_start", 0xc80873a1, &vdso_zx_process_start},
{"_zx_process_read_memory", 0x883ab627, &vdso_zx_process_read_memory},
{"_zx_process_write_memory", 0x18162116, &vdso_zx_process_write_memory},
{"_zx_profile_create", 0x28e1bf39, &vdso_zx_profile_create},
{"_zx_resource_create", 0x22a0d150, &vdso_zx_resource_create},
{"_zx_smc_call", 0x63f0533, &vdso_zx_smc_call},
{"_zx_socket_create", 0xf536e851, &vdso_zx_socket_create},
{"_zx_socket_write", 0x5e2d97e8, &vdso_zx_socket_write},
{"_zx_socket_read", 0xb5443cd9, &vdso_zx_socket_read},
{"_zx_socket_shutdown", 0x78afef9, &vdso_zx_socket_shutdown},
{"_zx_stream_create", 0x5a685d14, &vdso_zx_stream_create},
{"_zx_stream_writev", 0x89120a21, &vdso_zx_stream_writev},
{"_zx_stream_writev_at", 0xcd618395, &vdso_zx_stream_writev_at},
{"_zx_stream_readv", 0xae7040d2, &vdso_zx_stream_readv},
{"_zx_stream_readv_at", 0x7bfd08a6, &vdso_zx_stream_readv_at},
{"_zx_stream_seek", 0xcefc31c8, &vdso_zx_stream_seek},
{"_zx_syscall_test_0", 0xb62fbcde, &vdso_zx_syscall_test_0},
{"_zx_syscall_test_1", 0xb62fbcdf, &vdso_zx_syscall_test_1},
{"_zx_syscall_test_2", 0xb62fbce0, &vdso_zx_syscall_test_2},
{"_zx_syscall_test_3", 0xb62fbce1, &vdso_zx_syscall_test_3},
{"_zx_syscall_test_4", 0xb62fbce2, &vdso_zx_syscall_test_4},
{"_zx_syscall_test_5", 0xb62fbce3, &vdso_zx_syscall_test_5},
{"_zx_syscall_test_6", 0xb62fbce4, &vdso_zx_syscall_test_6},
{"_zx_syscall_test_7", 0xb62fbce5, &vdso_zx_syscall_test_7},
{"_zx_syscall_test_8", 0xb62fbce6, &vdso_zx_syscall_test_8},
{"_zx_syscall_test_wrapper", 0x4d7af9cf, &vdso_zx_syscall_test_wrapper},
{"_zx_syscall_test_handle_create", 0xb996e56d, &vdso_zx_syscall_test_handle_create},
{"_zx_system_get_dcache_line_size", 0x2d6d6511, &vdso_zx_system_get_dcache_line_size},
{"_zx_system_get_num_cpus", 0x8e92a0c2, &vdso_zx_system_get_num_cpus},
{"_zx_system_get_version_string", 0xf2daeaf4, &vdso_zx_system_get_version_string},
{"_zx_system_get_physmem", 0x5a0e027b, &vdso_zx_system_get_physmem},
{"_zx_system_get_features", 0x42682df7, &vdso_zx_system_get_features},
{"_zx_system_get_event", 0x7a0b68da, &vdso_zx_system_get_event},
{"_zx_system_mexec", 0xd142362b, &vdso_zx_system_mexec},
{"_zx_system_mexec_payload_get", 0x34bd22b3, &vdso_zx_system_mexec_payload_get},
{"_zx_system_powerctl", 0x43f6ae09, &vdso_zx_system_powerctl},
{"_zx_task_suspend", 0xe13ad509, &vdso_zx_task_suspend},
{"_zx_task_suspend_token", 0x341e98a9, &vdso_zx_task_suspend_token},
{"_zx_task_create_exception_channel", 0x5318f181, &vdso_zx_task_create_exception_channel},
{"_zx_task_kill", 0x1ae4e313, &vdso_zx_task_kill},
{"_zx_thread_exit", 0xed44fe6, &vdso_zx_thread_exit},
{"_zx_thread_create", 0x100e8a20, &vdso_zx_thread_create},
{"_zx_thread_start", 0xea59505a, &vdso_zx_thread_start},
{"_zx_thread_read_state", 0x82fd0a88, &vdso_zx_thread_read_state},
{"_zx_thread_write_state", 0xb9265eb7, &vdso_zx_thread_write_state},
{"_zx_timer_create", 0x943773a9, &vdso_zx_timer_create},
{"_zx_timer_set", 0xa2689081, &vdso_zx_timer_set},
{"_zx_timer_cancel", 0x9308c91b, &vdso_zx_timer_cancel},
{"_zx_vcpu_create", 0x458b1fc6, &vdso_zx_vcpu_create},
{"_zx_vcpu_resume", 0x67a54423, &vdso_zx_vcpu_resume},
{"_zx_vcpu_interrupt", 0x4ddc6df, &vdso_zx_vcpu_interrupt},
{"_zx_vcpu_read_state", 0xaa78032e, &vdso_zx_vcpu_read_state},
{"_zx_vcpu_write_state", 0xd0006c1d, &vdso_zx_vcpu_write_state},
{"_zx_vmar_allocate", 0x4cac85ef, &vdso_zx_vmar_allocate},
{"_zx_vmar_destroy", 0xc2294134, &vdso_zx_vmar_destroy},
{"_zx_vmar_map", 0xc7b00448, &vdso_zx_vmar_map},
{"_zx_vmar_unmap", 0x745a1b6b, &vdso_zx_vmar_unmap},
{"_zx_vmar_protect", 0x7bee8f8b, &vdso_zx_vmar_protect},
{"_zx_vmar_op_range", 0x4e117375, &vdso_zx_vmar_op_range},
{"_zx_vmo_create", 0xb27a765a, &vdso_zx_vmo_create},
{"_zx_vmo_read", 0xe70ab4a2, &vdso_zx_vmo_read},
{"_zx_vmo_write", 0xc8c308d1, &vdso_zx_vmo_write},
{"_zx_vmo_get_size", 0x261c77c0, &vdso_zx_vmo_get_size},
{"_zx_vmo_set_size", 0x3932724c, &vdso_zx_vmo_set_size},
{"_zx_vmo_op_range", 0xa73d6b71, &vdso_zx_vmo_op_range},
{"_zx_vmo_create_child", 0x72c8b3dd, &vdso_zx_vmo_create_child},
{"_zx_vmo_set_cache_policy", 0xe509bad4, &vdso_zx_vmo_set_cache_policy},
{"_zx_vmo_replace_as_executable", 0xbd38e576, &vdso_zx_vmo_replace_as_executable},
{"_zx_vmo_create_contiguous", 0x466a8289, &vdso_zx_vmo_create_contiguous},
{"_zx_vmo_create_physical", 0x659677b6, &vdso_zx_vmo_create_physical},
}
//go:cgo_import_dynamic vdso_zx_bti_create zx_bti_create
//go:cgo_import_dynamic vdso_zx_bti_pin zx_bti_pin
//go:cgo_import_dynamic vdso_zx_bti_release_quarantine zx_bti_release_quarantine
//go:cgo_import_dynamic vdso_zx_cache_flush zx_cache_flush
//go:cgo_import_dynamic vdso_zx_channel_create zx_channel_create
//go:cgo_import_dynamic vdso_zx_channel_read zx_channel_read
//go:cgo_import_dynamic vdso_zx_channel_read_etc zx_channel_read_etc
//go:cgo_import_dynamic vdso_zx_channel_write zx_channel_write
//go:cgo_import_dynamic vdso_zx_channel_write_etc zx_channel_write_etc
//go:cgo_import_dynamic vdso_zx_channel_call_noretry zx_channel_call_noretry
//go:cgo_import_dynamic vdso_zx_channel_call_finish zx_channel_call_finish
//go:cgo_import_dynamic vdso_zx_channel_call zx_channel_call
//go:cgo_import_dynamic vdso_zx_channel_call_etc_noretry zx_channel_call_etc_noretry
//go:cgo_import_dynamic vdso_zx_channel_call_etc_finish zx_channel_call_etc_finish
//go:cgo_import_dynamic vdso_zx_channel_call_etc zx_channel_call_etc
//go:cgo_import_dynamic vdso_zx_clock_get zx_clock_get
//go:cgo_import_dynamic vdso_zx_clock_get_monotonic zx_clock_get_monotonic
//go:cgo_import_dynamic vdso_zx_clock_adjust zx_clock_adjust
//go:cgo_import_dynamic vdso_zx_clock_get_monotonic_via_kernel zx_clock_get_monotonic_via_kernel
//go:cgo_import_dynamic vdso_zx_clock_create zx_clock_create
//go:cgo_import_dynamic vdso_zx_clock_read zx_clock_read
//go:cgo_import_dynamic vdso_zx_clock_get_details zx_clock_get_details
//go:cgo_import_dynamic vdso_zx_clock_update zx_clock_update
//go:cgo_import_dynamic vdso_zx_cprng_draw_once zx_cprng_draw_once
//go:cgo_import_dynamic vdso_zx_cprng_draw zx_cprng_draw
//go:cgo_import_dynamic vdso_zx_cprng_add_entropy zx_cprng_add_entropy
//go:cgo_import_dynamic vdso_zx_debug_read zx_debug_read
//go:cgo_import_dynamic vdso_zx_debug_write zx_debug_write
//go:cgo_import_dynamic vdso_zx_debug_send_command zx_debug_send_command
//go:cgo_import_dynamic vdso_zx_debuglog_create zx_debuglog_create
//go:cgo_import_dynamic vdso_zx_debuglog_write zx_debuglog_write
//go:cgo_import_dynamic vdso_zx_debuglog_read zx_debuglog_read
//go:cgo_import_dynamic vdso_zx_event_create zx_event_create
//go:cgo_import_dynamic vdso_zx_eventpair_create zx_eventpair_create
//go:cgo_import_dynamic vdso_zx_exception_get_thread zx_exception_get_thread
//go:cgo_import_dynamic vdso_zx_exception_get_process zx_exception_get_process
//go:cgo_import_dynamic vdso_zx_fifo_create zx_fifo_create
//go:cgo_import_dynamic vdso_zx_fifo_read zx_fifo_read
//go:cgo_import_dynamic vdso_zx_fifo_write zx_fifo_write
//go:cgo_import_dynamic vdso_zx_framebuffer_get_info zx_framebuffer_get_info
//go:cgo_import_dynamic vdso_zx_framebuffer_set_range zx_framebuffer_set_range
//go:cgo_import_dynamic vdso_zx_futex_wait zx_futex_wait
//go:cgo_import_dynamic vdso_zx_futex_wake zx_futex_wake
//go:cgo_import_dynamic vdso_zx_futex_requeue zx_futex_requeue
//go:cgo_import_dynamic vdso_zx_futex_wake_single_owner zx_futex_wake_single_owner
//go:cgo_import_dynamic vdso_zx_futex_requeue_single_owner zx_futex_requeue_single_owner
//go:cgo_import_dynamic vdso_zx_futex_get_owner zx_futex_get_owner
//go:cgo_import_dynamic vdso_zx_guest_create zx_guest_create
//go:cgo_import_dynamic vdso_zx_guest_set_trap zx_guest_set_trap
//go:cgo_import_dynamic vdso_zx_handle_close zx_handle_close
//go:cgo_import_dynamic vdso_zx_handle_close_many zx_handle_close_many
//go:cgo_import_dynamic vdso_zx_handle_duplicate zx_handle_duplicate
//go:cgo_import_dynamic vdso_zx_handle_replace zx_handle_replace
//go:cgo_import_dynamic vdso_zx_interrupt_create zx_interrupt_create
//go:cgo_import_dynamic vdso_zx_interrupt_bind zx_interrupt_bind
//go:cgo_import_dynamic vdso_zx_interrupt_wait zx_interrupt_wait
//go:cgo_import_dynamic vdso_zx_interrupt_destroy zx_interrupt_destroy
//go:cgo_import_dynamic vdso_zx_interrupt_ack zx_interrupt_ack
//go:cgo_import_dynamic vdso_zx_interrupt_trigger zx_interrupt_trigger
//go:cgo_import_dynamic vdso_zx_interrupt_bind_vcpu zx_interrupt_bind_vcpu
//go:cgo_import_dynamic vdso_zx_iommu_create zx_iommu_create
//go:cgo_import_dynamic vdso_zx_ioports_request zx_ioports_request
//go:cgo_import_dynamic vdso_zx_ioports_release zx_ioports_release
//go:cgo_import_dynamic vdso_zx_job_create zx_job_create
//go:cgo_import_dynamic vdso_zx_job_set_policy zx_job_set_policy
//go:cgo_import_dynamic vdso_zx_job_set_critical zx_job_set_critical
//go:cgo_import_dynamic vdso_zx_ktrace_read zx_ktrace_read
//go:cgo_import_dynamic vdso_zx_ktrace_control zx_ktrace_control
//go:cgo_import_dynamic vdso_zx_ktrace_write zx_ktrace_write
//go:cgo_import_dynamic vdso_zx_nanosleep zx_nanosleep
//go:cgo_import_dynamic vdso_zx_ticks_get zx_ticks_get
//go:cgo_import_dynamic vdso_zx_ticks_per_second zx_ticks_per_second
//go:cgo_import_dynamic vdso_zx_deadline_after zx_deadline_after
//go:cgo_import_dynamic vdso_zx_vmar_unmap_handle_close_thread_exit zx_vmar_unmap_handle_close_thread_exit
//go:cgo_import_dynamic vdso_zx_futex_wake_handle_close_thread_exit zx_futex_wake_handle_close_thread_exit
//go:cgo_import_dynamic vdso_zx_ticks_get_via_kernel zx_ticks_get_via_kernel
//go:cgo_import_dynamic vdso_zx_msi_allocate zx_msi_allocate
//go:cgo_import_dynamic vdso_zx_msi_create zx_msi_create
//go:cgo_import_dynamic vdso_zx_mtrace_control zx_mtrace_control
//go:cgo_import_dynamic vdso_zx_object_wait_one zx_object_wait_one
//go:cgo_import_dynamic vdso_zx_object_wait_many zx_object_wait_many
//go:cgo_import_dynamic vdso_zx_object_wait_async zx_object_wait_async
//go:cgo_import_dynamic vdso_zx_object_signal zx_object_signal
//go:cgo_import_dynamic vdso_zx_object_signal_peer zx_object_signal_peer
//go:cgo_import_dynamic vdso_zx_object_get_property zx_object_get_property
//go:cgo_import_dynamic vdso_zx_object_set_property zx_object_set_property
//go:cgo_import_dynamic vdso_zx_object_get_info zx_object_get_info
//go:cgo_import_dynamic vdso_zx_object_get_child zx_object_get_child
//go:cgo_import_dynamic vdso_zx_object_set_profile zx_object_set_profile
//go:cgo_import_dynamic vdso_zx_pager_create zx_pager_create
//go:cgo_import_dynamic vdso_zx_pager_create_vmo zx_pager_create_vmo
//go:cgo_import_dynamic vdso_zx_pager_detach_vmo zx_pager_detach_vmo
//go:cgo_import_dynamic vdso_zx_pager_supply_pages zx_pager_supply_pages
//go:cgo_import_dynamic vdso_zx_pager_op_range zx_pager_op_range
//go:cgo_import_dynamic vdso_zx_pc_firmware_tables zx_pc_firmware_tables
//go:cgo_import_dynamic vdso_zx_pci_get_nth_device zx_pci_get_nth_device
//go:cgo_import_dynamic vdso_zx_pci_enable_bus_master zx_pci_enable_bus_master
//go:cgo_import_dynamic vdso_zx_pci_reset_device zx_pci_reset_device
//go:cgo_import_dynamic vdso_zx_pci_config_read zx_pci_config_read
//go:cgo_import_dynamic vdso_zx_pci_config_write zx_pci_config_write
//go:cgo_import_dynamic vdso_zx_pci_cfg_pio_rw zx_pci_cfg_pio_rw
//go:cgo_import_dynamic vdso_zx_pci_get_bar zx_pci_get_bar
//go:cgo_import_dynamic vdso_zx_pci_map_interrupt zx_pci_map_interrupt
//go:cgo_import_dynamic vdso_zx_pci_query_irq_mode zx_pci_query_irq_mode
//go:cgo_import_dynamic vdso_zx_pci_set_irq_mode zx_pci_set_irq_mode
//go:cgo_import_dynamic vdso_zx_pci_init zx_pci_init
//go:cgo_import_dynamic vdso_zx_pci_add_subtract_io_range zx_pci_add_subtract_io_range
//go:cgo_import_dynamic vdso_zx_pmt_unpin zx_pmt_unpin
//go:cgo_import_dynamic vdso_zx_port_create zx_port_create
//go:cgo_import_dynamic vdso_zx_port_queue zx_port_queue
//go:cgo_import_dynamic vdso_zx_port_wait zx_port_wait
//go:cgo_import_dynamic vdso_zx_port_cancel zx_port_cancel
//go:cgo_import_dynamic vdso_zx_process_exit zx_process_exit
//go:cgo_import_dynamic vdso_zx_process_create zx_process_create
//go:cgo_import_dynamic vdso_zx_process_start zx_process_start
//go:cgo_import_dynamic vdso_zx_process_read_memory zx_process_read_memory
//go:cgo_import_dynamic vdso_zx_process_write_memory zx_process_write_memory
//go:cgo_import_dynamic vdso_zx_profile_create zx_profile_create
//go:cgo_import_dynamic vdso_zx_resource_create zx_resource_create
//go:cgo_import_dynamic vdso_zx_smc_call zx_smc_call
//go:cgo_import_dynamic vdso_zx_socket_create zx_socket_create
//go:cgo_import_dynamic vdso_zx_socket_write zx_socket_write
//go:cgo_import_dynamic vdso_zx_socket_read zx_socket_read
//go:cgo_import_dynamic vdso_zx_socket_shutdown zx_socket_shutdown
//go:cgo_import_dynamic vdso_zx_stream_create zx_stream_create
//go:cgo_import_dynamic vdso_zx_stream_writev zx_stream_writev
//go:cgo_import_dynamic vdso_zx_stream_writev_at zx_stream_writev_at
//go:cgo_import_dynamic vdso_zx_stream_readv zx_stream_readv
//go:cgo_import_dynamic vdso_zx_stream_readv_at zx_stream_readv_at
//go:cgo_import_dynamic vdso_zx_stream_seek zx_stream_seek
//go:cgo_import_dynamic vdso_zx_syscall_test_0 zx_syscall_test_0
//go:cgo_import_dynamic vdso_zx_syscall_test_1 zx_syscall_test_1
//go:cgo_import_dynamic vdso_zx_syscall_test_2 zx_syscall_test_2
//go:cgo_import_dynamic vdso_zx_syscall_test_3 zx_syscall_test_3
//go:cgo_import_dynamic vdso_zx_syscall_test_4 zx_syscall_test_4
//go:cgo_import_dynamic vdso_zx_syscall_test_5 zx_syscall_test_5
//go:cgo_import_dynamic vdso_zx_syscall_test_6 zx_syscall_test_6
//go:cgo_import_dynamic vdso_zx_syscall_test_7 zx_syscall_test_7
//go:cgo_import_dynamic vdso_zx_syscall_test_8 zx_syscall_test_8
//go:cgo_import_dynamic vdso_zx_syscall_test_wrapper zx_syscall_test_wrapper
//go:cgo_import_dynamic vdso_zx_syscall_test_handle_create zx_syscall_test_handle_create
//go:cgo_import_dynamic vdso_zx_system_get_dcache_line_size zx_system_get_dcache_line_size
//go:cgo_import_dynamic vdso_zx_system_get_num_cpus zx_system_get_num_cpus
//go:cgo_import_dynamic vdso_zx_system_get_version_string zx_system_get_version_string
//go:cgo_import_dynamic vdso_zx_system_get_physmem zx_system_get_physmem
//go:cgo_import_dynamic vdso_zx_system_get_features zx_system_get_features
//go:cgo_import_dynamic vdso_zx_system_get_event zx_system_get_event
//go:cgo_import_dynamic vdso_zx_system_mexec zx_system_mexec
//go:cgo_import_dynamic vdso_zx_system_mexec_payload_get zx_system_mexec_payload_get
//go:cgo_import_dynamic vdso_zx_system_powerctl zx_system_powerctl
//go:cgo_import_dynamic vdso_zx_task_suspend zx_task_suspend
//go:cgo_import_dynamic vdso_zx_task_suspend_token zx_task_suspend_token
//go:cgo_import_dynamic vdso_zx_task_create_exception_channel zx_task_create_exception_channel
//go:cgo_import_dynamic vdso_zx_task_kill zx_task_kill
//go:cgo_import_dynamic vdso_zx_thread_exit zx_thread_exit
//go:cgo_import_dynamic vdso_zx_thread_create zx_thread_create
//go:cgo_import_dynamic vdso_zx_thread_start zx_thread_start
//go:cgo_import_dynamic vdso_zx_thread_read_state zx_thread_read_state
//go:cgo_import_dynamic vdso_zx_thread_write_state zx_thread_write_state
//go:cgo_import_dynamic vdso_zx_timer_create zx_timer_create
//go:cgo_import_dynamic vdso_zx_timer_set zx_timer_set
//go:cgo_import_dynamic vdso_zx_timer_cancel zx_timer_cancel
//go:cgo_import_dynamic vdso_zx_vcpu_create zx_vcpu_create
//go:cgo_import_dynamic vdso_zx_vcpu_resume zx_vcpu_resume
//go:cgo_import_dynamic vdso_zx_vcpu_interrupt zx_vcpu_interrupt
//go:cgo_import_dynamic vdso_zx_vcpu_read_state zx_vcpu_read_state
//go:cgo_import_dynamic vdso_zx_vcpu_write_state zx_vcpu_write_state
//go:cgo_import_dynamic vdso_zx_vmar_allocate zx_vmar_allocate
//go:cgo_import_dynamic vdso_zx_vmar_destroy zx_vmar_destroy
//go:cgo_import_dynamic vdso_zx_vmar_map zx_vmar_map
//go:cgo_import_dynamic vdso_zx_vmar_unmap zx_vmar_unmap
//go:cgo_import_dynamic vdso_zx_vmar_protect zx_vmar_protect
//go:cgo_import_dynamic vdso_zx_vmar_op_range zx_vmar_op_range
//go:cgo_import_dynamic vdso_zx_vmo_create zx_vmo_create
//go:cgo_import_dynamic vdso_zx_vmo_read zx_vmo_read
//go:cgo_import_dynamic vdso_zx_vmo_write zx_vmo_write
//go:cgo_import_dynamic vdso_zx_vmo_get_size zx_vmo_get_size
//go:cgo_import_dynamic vdso_zx_vmo_set_size zx_vmo_set_size
//go:cgo_import_dynamic vdso_zx_vmo_op_range zx_vmo_op_range
//go:cgo_import_dynamic vdso_zx_vmo_create_child zx_vmo_create_child
//go:cgo_import_dynamic vdso_zx_vmo_set_cache_policy zx_vmo_set_cache_policy
//go:cgo_import_dynamic vdso_zx_vmo_replace_as_executable zx_vmo_replace_as_executable
//go:cgo_import_dynamic vdso_zx_vmo_create_contiguous zx_vmo_create_contiguous
//go:cgo_import_dynamic vdso_zx_vmo_create_physical zx_vmo_create_physical
//go:linkname vdso_zx_bti_create vdso_zx_bti_create
//go:linkname vdso_zx_bti_pin vdso_zx_bti_pin
//go:linkname vdso_zx_bti_release_quarantine vdso_zx_bti_release_quarantine
//go:linkname vdso_zx_cache_flush vdso_zx_cache_flush
//go:linkname vdso_zx_channel_create vdso_zx_channel_create
//go:linkname vdso_zx_channel_read vdso_zx_channel_read
//go:linkname vdso_zx_channel_read_etc vdso_zx_channel_read_etc
//go:linkname vdso_zx_channel_write vdso_zx_channel_write
//go:linkname vdso_zx_channel_write_etc vdso_zx_channel_write_etc
//go:linkname vdso_zx_channel_call_noretry vdso_zx_channel_call_noretry
//go:linkname vdso_zx_channel_call_finish vdso_zx_channel_call_finish
//go:linkname vdso_zx_channel_call vdso_zx_channel_call
//go:linkname vdso_zx_channel_call_etc_noretry vdso_zx_channel_call_etc_noretry
//go:linkname vdso_zx_channel_call_etc_finish vdso_zx_channel_call_etc_finish
//go:linkname vdso_zx_channel_call_etc vdso_zx_channel_call_etc
//go:linkname vdso_zx_clock_get vdso_zx_clock_get
//go:linkname vdso_zx_clock_get_monotonic vdso_zx_clock_get_monotonic
//go:linkname vdso_zx_clock_adjust vdso_zx_clock_adjust
//go:linkname vdso_zx_clock_get_monotonic_via_kernel vdso_zx_clock_get_monotonic_via_kernel
//go:linkname vdso_zx_clock_create vdso_zx_clock_create
//go:linkname vdso_zx_clock_read vdso_zx_clock_read
//go:linkname vdso_zx_clock_get_details vdso_zx_clock_get_details
//go:linkname vdso_zx_clock_update vdso_zx_clock_update
//go:linkname vdso_zx_cprng_draw_once vdso_zx_cprng_draw_once
//go:linkname vdso_zx_cprng_draw vdso_zx_cprng_draw
//go:linkname vdso_zx_cprng_add_entropy vdso_zx_cprng_add_entropy
//go:linkname vdso_zx_debug_read vdso_zx_debug_read
//go:linkname vdso_zx_debug_write vdso_zx_debug_write
//go:linkname vdso_zx_debug_send_command vdso_zx_debug_send_command
//go:linkname vdso_zx_debuglog_create vdso_zx_debuglog_create
//go:linkname vdso_zx_debuglog_write vdso_zx_debuglog_write
//go:linkname vdso_zx_debuglog_read vdso_zx_debuglog_read
//go:linkname vdso_zx_event_create vdso_zx_event_create
//go:linkname vdso_zx_eventpair_create vdso_zx_eventpair_create
//go:linkname vdso_zx_exception_get_thread vdso_zx_exception_get_thread
//go:linkname vdso_zx_exception_get_process vdso_zx_exception_get_process
//go:linkname vdso_zx_fifo_create vdso_zx_fifo_create
//go:linkname vdso_zx_fifo_read vdso_zx_fifo_read
//go:linkname vdso_zx_fifo_write vdso_zx_fifo_write
//go:linkname vdso_zx_framebuffer_get_info vdso_zx_framebuffer_get_info
//go:linkname vdso_zx_framebuffer_set_range vdso_zx_framebuffer_set_range
//go:linkname vdso_zx_futex_wait vdso_zx_futex_wait
//go:linkname vdso_zx_futex_wake vdso_zx_futex_wake
//go:linkname vdso_zx_futex_requeue vdso_zx_futex_requeue
//go:linkname vdso_zx_futex_wake_single_owner vdso_zx_futex_wake_single_owner
//go:linkname vdso_zx_futex_requeue_single_owner vdso_zx_futex_requeue_single_owner
//go:linkname vdso_zx_futex_get_owner vdso_zx_futex_get_owner
//go:linkname vdso_zx_guest_create vdso_zx_guest_create
//go:linkname vdso_zx_guest_set_trap vdso_zx_guest_set_trap
//go:linkname vdso_zx_handle_close vdso_zx_handle_close
//go:linkname vdso_zx_handle_close_many vdso_zx_handle_close_many
//go:linkname vdso_zx_handle_duplicate vdso_zx_handle_duplicate
//go:linkname vdso_zx_handle_replace vdso_zx_handle_replace
//go:linkname vdso_zx_interrupt_create vdso_zx_interrupt_create
//go:linkname vdso_zx_interrupt_bind vdso_zx_interrupt_bind
//go:linkname vdso_zx_interrupt_wait vdso_zx_interrupt_wait
//go:linkname vdso_zx_interrupt_destroy vdso_zx_interrupt_destroy
//go:linkname vdso_zx_interrupt_ack vdso_zx_interrupt_ack
//go:linkname vdso_zx_interrupt_trigger vdso_zx_interrupt_trigger
//go:linkname vdso_zx_interrupt_bind_vcpu vdso_zx_interrupt_bind_vcpu
//go:linkname vdso_zx_iommu_create vdso_zx_iommu_create
//go:linkname vdso_zx_ioports_request vdso_zx_ioports_request
//go:linkname vdso_zx_ioports_release vdso_zx_ioports_release
//go:linkname vdso_zx_job_create vdso_zx_job_create
//go:linkname vdso_zx_job_set_policy vdso_zx_job_set_policy
//go:linkname vdso_zx_job_set_critical vdso_zx_job_set_critical
//go:linkname vdso_zx_ktrace_read vdso_zx_ktrace_read
//go:linkname vdso_zx_ktrace_control vdso_zx_ktrace_control
//go:linkname vdso_zx_ktrace_write vdso_zx_ktrace_write
//go:linkname vdso_zx_nanosleep vdso_zx_nanosleep
//go:linkname vdso_zx_ticks_get vdso_zx_ticks_get
//go:linkname vdso_zx_ticks_per_second vdso_zx_ticks_per_second
//go:linkname vdso_zx_deadline_after vdso_zx_deadline_after
//go:linkname vdso_zx_vmar_unmap_handle_close_thread_exit vdso_zx_vmar_unmap_handle_close_thread_exit
//go:linkname vdso_zx_futex_wake_handle_close_thread_exit vdso_zx_futex_wake_handle_close_thread_exit
//go:linkname vdso_zx_ticks_get_via_kernel vdso_zx_ticks_get_via_kernel
//go:linkname vdso_zx_msi_allocate vdso_zx_msi_allocate
//go:linkname vdso_zx_msi_create vdso_zx_msi_create
//go:linkname vdso_zx_mtrace_control vdso_zx_mtrace_control
//go:linkname vdso_zx_object_wait_one vdso_zx_object_wait_one
//go:linkname vdso_zx_object_wait_many vdso_zx_object_wait_many
//go:linkname vdso_zx_object_wait_async vdso_zx_object_wait_async
//go:linkname vdso_zx_object_signal vdso_zx_object_signal
//go:linkname vdso_zx_object_signal_peer vdso_zx_object_signal_peer
//go:linkname vdso_zx_object_get_property vdso_zx_object_get_property
//go:linkname vdso_zx_object_set_property vdso_zx_object_set_property
//go:linkname vdso_zx_object_get_info vdso_zx_object_get_info
//go:linkname vdso_zx_object_get_child vdso_zx_object_get_child
//go:linkname vdso_zx_object_set_profile vdso_zx_object_set_profile
//go:linkname vdso_zx_pager_create vdso_zx_pager_create
//go:linkname vdso_zx_pager_create_vmo vdso_zx_pager_create_vmo
//go:linkname vdso_zx_pager_detach_vmo vdso_zx_pager_detach_vmo
//go:linkname vdso_zx_pager_supply_pages vdso_zx_pager_supply_pages
//go:linkname vdso_zx_pager_op_range vdso_zx_pager_op_range
//go:linkname vdso_zx_pc_firmware_tables vdso_zx_pc_firmware_tables
//go:linkname vdso_zx_pci_get_nth_device vdso_zx_pci_get_nth_device
//go:linkname vdso_zx_pci_enable_bus_master vdso_zx_pci_enable_bus_master
//go:linkname vdso_zx_pci_reset_device vdso_zx_pci_reset_device
//go:linkname vdso_zx_pci_config_read vdso_zx_pci_config_read
//go:linkname vdso_zx_pci_config_write vdso_zx_pci_config_write
//go:linkname vdso_zx_pci_cfg_pio_rw vdso_zx_pci_cfg_pio_rw
//go:linkname vdso_zx_pci_get_bar vdso_zx_pci_get_bar
//go:linkname vdso_zx_pci_map_interrupt vdso_zx_pci_map_interrupt
//go:linkname vdso_zx_pci_query_irq_mode vdso_zx_pci_query_irq_mode
//go:linkname vdso_zx_pci_set_irq_mode vdso_zx_pci_set_irq_mode
//go:linkname vdso_zx_pci_init vdso_zx_pci_init
//go:linkname vdso_zx_pci_add_subtract_io_range vdso_zx_pci_add_subtract_io_range
//go:linkname vdso_zx_pmt_unpin vdso_zx_pmt_unpin
//go:linkname vdso_zx_port_create vdso_zx_port_create
//go:linkname vdso_zx_port_queue vdso_zx_port_queue
//go:linkname vdso_zx_port_wait vdso_zx_port_wait
//go:linkname vdso_zx_port_cancel vdso_zx_port_cancel
//go:linkname vdso_zx_process_exit vdso_zx_process_exit
//go:linkname vdso_zx_process_create vdso_zx_process_create
//go:linkname vdso_zx_process_start vdso_zx_process_start
//go:linkname vdso_zx_process_read_memory vdso_zx_process_read_memory
//go:linkname vdso_zx_process_write_memory vdso_zx_process_write_memory
//go:linkname vdso_zx_profile_create vdso_zx_profile_create
//go:linkname vdso_zx_resource_create vdso_zx_resource_create
//go:linkname vdso_zx_smc_call vdso_zx_smc_call
//go:linkname vdso_zx_socket_create vdso_zx_socket_create
//go:linkname vdso_zx_socket_write vdso_zx_socket_write
//go:linkname vdso_zx_socket_read vdso_zx_socket_read
//go:linkname vdso_zx_socket_shutdown vdso_zx_socket_shutdown
//go:linkname vdso_zx_stream_create vdso_zx_stream_create
//go:linkname vdso_zx_stream_writev vdso_zx_stream_writev
//go:linkname vdso_zx_stream_writev_at vdso_zx_stream_writev_at
//go:linkname vdso_zx_stream_readv vdso_zx_stream_readv
//go:linkname vdso_zx_stream_readv_at vdso_zx_stream_readv_at
//go:linkname vdso_zx_stream_seek vdso_zx_stream_seek
//go:linkname vdso_zx_syscall_test_0 vdso_zx_syscall_test_0
//go:linkname vdso_zx_syscall_test_1 vdso_zx_syscall_test_1
//go:linkname vdso_zx_syscall_test_2 vdso_zx_syscall_test_2
//go:linkname vdso_zx_syscall_test_3 vdso_zx_syscall_test_3
//go:linkname vdso_zx_syscall_test_4 vdso_zx_syscall_test_4
//go:linkname vdso_zx_syscall_test_5 vdso_zx_syscall_test_5
//go:linkname vdso_zx_syscall_test_6 vdso_zx_syscall_test_6
//go:linkname vdso_zx_syscall_test_7 vdso_zx_syscall_test_7
//go:linkname vdso_zx_syscall_test_8 vdso_zx_syscall_test_8
//go:linkname vdso_zx_syscall_test_wrapper vdso_zx_syscall_test_wrapper
//go:linkname vdso_zx_syscall_test_handle_create vdso_zx_syscall_test_handle_create
//go:linkname vdso_zx_system_get_dcache_line_size vdso_zx_system_get_dcache_line_size
//go:linkname vdso_zx_system_get_num_cpus vdso_zx_system_get_num_cpus
//go:linkname vdso_zx_system_get_version_string vdso_zx_system_get_version_string
//go:linkname vdso_zx_system_get_physmem vdso_zx_system_get_physmem
//go:linkname vdso_zx_system_get_features vdso_zx_system_get_features
//go:linkname vdso_zx_system_get_event vdso_zx_system_get_event
//go:linkname vdso_zx_system_mexec vdso_zx_system_mexec
//go:linkname vdso_zx_system_mexec_payload_get vdso_zx_system_mexec_payload_get
//go:linkname vdso_zx_system_powerctl vdso_zx_system_powerctl
//go:linkname vdso_zx_task_suspend vdso_zx_task_suspend
//go:linkname vdso_zx_task_suspend_token vdso_zx_task_suspend_token
//go:linkname vdso_zx_task_create_exception_channel vdso_zx_task_create_exception_channel
//go:linkname vdso_zx_task_kill vdso_zx_task_kill
//go:linkname vdso_zx_thread_exit vdso_zx_thread_exit
//go:linkname vdso_zx_thread_create vdso_zx_thread_create
//go:linkname vdso_zx_thread_start vdso_zx_thread_start
//go:linkname vdso_zx_thread_read_state vdso_zx_thread_read_state
//go:linkname vdso_zx_thread_write_state vdso_zx_thread_write_state
//go:linkname vdso_zx_timer_create vdso_zx_timer_create
//go:linkname vdso_zx_timer_set vdso_zx_timer_set
//go:linkname vdso_zx_timer_cancel vdso_zx_timer_cancel
//go:linkname vdso_zx_vcpu_create vdso_zx_vcpu_create
//go:linkname vdso_zx_vcpu_resume vdso_zx_vcpu_resume
//go:linkname vdso_zx_vcpu_interrupt vdso_zx_vcpu_interrupt
//go:linkname vdso_zx_vcpu_read_state vdso_zx_vcpu_read_state
//go:linkname vdso_zx_vcpu_write_state vdso_zx_vcpu_write_state
//go:linkname vdso_zx_vmar_allocate vdso_zx_vmar_allocate
//go:linkname vdso_zx_vmar_destroy vdso_zx_vmar_destroy
//go:linkname vdso_zx_vmar_map vdso_zx_vmar_map
//go:linkname vdso_zx_vmar_unmap vdso_zx_vmar_unmap
//go:linkname vdso_zx_vmar_protect vdso_zx_vmar_protect
//go:linkname vdso_zx_vmar_op_range vdso_zx_vmar_op_range
//go:linkname vdso_zx_vmo_create vdso_zx_vmo_create
//go:linkname vdso_zx_vmo_read vdso_zx_vmo_read
//go:linkname vdso_zx_vmo_write vdso_zx_vmo_write
//go:linkname vdso_zx_vmo_get_size vdso_zx_vmo_get_size
//go:linkname vdso_zx_vmo_set_size vdso_zx_vmo_set_size
//go:linkname vdso_zx_vmo_op_range vdso_zx_vmo_op_range
//go:linkname vdso_zx_vmo_create_child vdso_zx_vmo_create_child
//go:linkname vdso_zx_vmo_set_cache_policy vdso_zx_vmo_set_cache_policy
//go:linkname vdso_zx_vmo_replace_as_executable vdso_zx_vmo_replace_as_executable
//go:linkname vdso_zx_vmo_create_contiguous vdso_zx_vmo_create_contiguous
//go:linkname vdso_zx_vmo_create_physical vdso_zx_vmo_create_physical
//go:noescape
//go:nosplit
func vdsoCall_zx_bti_create(iommu uint32, options uint32, bti_id uint64, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_bti_pin(handle uint32, options uint32, vmo uint32, offset uint64, size uint64, addrs unsafe.Pointer, num_addrs uint, pmt unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_bti_release_quarantine(handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_cache_flush(addr unsafe.Pointer, size uint, options uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_read(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_read_etc(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_write(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_write_etc(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_etc_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_etc_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_etc(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_clock_get(clock_id uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_clock_get_monotonic() int64
//go:noescape
//go:nosplit
func vdsoCall_zx_clock_adjust(handle uint32, clock_id uint32, offset int64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_clock_get_monotonic_via_kernel() int64
//go:noescape
//go:nosplit
func vdsoCall_zx_clock_create(options uint64, args unsafe.Pointer, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_clock_read(handle uint32, now unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_clock_get_details(handle uint32, options uint64, details unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_clock_update(handle uint32, options uint64, args unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
//go:noescape
//go:nosplit
func vdsoCall_zx_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_debug_read(handle uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_debug_write(buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_debug_send_command(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_debuglog_create(resource uint32, options uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_debuglog_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_debuglog_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_event_create(options uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_eventpair_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_exception_get_thread(handle uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_exception_get_process(handle uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_fifo_create(elem_count uint, elem_size uint, options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_fifo_read(handle uint32, elem_size uint, data unsafe.Pointer, data_size uint, actual_count unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_fifo_write(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_framebuffer_get_info(resource uint32, format unsafe.Pointer, width unsafe.Pointer, height unsafe.Pointer, stride unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_framebuffer_set_range(resource uint32, vmo uint32, len uint32, format uint32, width uint32, height uint32, stride uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_futex_wait(value_ptr unsafe.Pointer, current_value int32, new_futex_owner uint32, deadline int64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_futex_wake(value_ptr unsafe.Pointer, wake_count uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_futex_requeue(value_ptr unsafe.Pointer, wake_count uint32, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_futex_wake_single_owner(value_ptr unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_futex_requeue_single_owner(value_ptr unsafe.Pointer, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_futex_get_owner(value_ptr unsafe.Pointer, koid unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_guest_create(resource uint32, options uint32, guest_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_guest_set_trap(handle uint32, kind uint32, addr uintptr, size uint, port_handle uint32, key uint64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_handle_close(handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_handle_close_many(handles unsafe.Pointer, num_handles uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_handle_duplicate(handle uint32, rights uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_handle_replace(handle uint32, rights uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_create(src_obj uint32, src_num uint32, options uint32, out_handle unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_bind(handle uint32, port_handle uint32, key uint64, options uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_wait(handle uint32, out_timestamp unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_destroy(handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_ack(handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_trigger(handle uint32, options uint32, timestamp int64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_bind_vcpu(handle uint32, vcpu uint32, options uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_iommu_create(resource uint32, typ uint32, desc unsafe.Pointer, desc_size uint, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_ioports_request(resource uint32, io_addr uint16, len uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_ioports_release(resource uint32, io_addr uint16, len uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_job_create(parent_job uint32, options uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_job_set_policy(handle uint32, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_job_set_critical(job uint32, options uint32, process uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_ktrace_read(handle uint32, data unsafe.Pointer, offset uint32, data_size uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_ktrace_control(handle uint32, action uint32, options uint32, ptr unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_ktrace_write(handle uint32, id uint32, arg0 uint32, arg1 uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_nanosleep(deadline int64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_ticks_get() int64
//go:noescape
//go:nosplit
func vdsoCall_zx_ticks_per_second() int64
//go:noescape
//go:nosplit
func vdsoCall_zx_deadline_after(nanoseconds int64) int64
//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_unmap_handle_close_thread_exit(vmar_handle uint32, addr uintptr, size uint, close_handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_futex_wake_handle_close_thread_exit(value_ptr unsafe.Pointer, wake_count uint32, new_value int32, close_handle uint32)
//go:noescape
//go:nosplit
func vdsoCall_zx_ticks_get_via_kernel() int64
//go:noescape
//go:nosplit
func vdsoCall_zx_msi_allocate(handle uint32, count uint32, out_allocation unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_msi_create(handle uint32, options uint32, msi_id uint32, vmo uint32, vmo_offset uint, out_interrupt unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_mtrace_control(handle uint32, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_wait_one(handle uint32, signals uint32, deadline int64, observed unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_wait_many(items unsafe.Pointer, num_items uint, deadline int64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_wait_async(handle uint32, port uint32, key uint64, signals uint32, options uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_signal(handle uint32, clear_mask uint32, set_mask uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_signal_peer(handle uint32, clear_mask uint32, set_mask uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_get_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_set_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_get_info(handle uint32, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_get_child(handle uint32, koid uint64, rights uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_object_set_profile(handle uint32, profile uint32, options uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pager_create(options uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pager_create_vmo(pager uint32, options uint32, port uint32, key uint64, size uint64, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pager_detach_vmo(pager uint32, vmo uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pager_supply_pages(pager uint32, pager_vmo uint32, offset uint64, length uint64, aux_vmo uint32, aux_offset uint64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pager_op_range(pager uint32, op uint32, pager_vmo uint32, offset uint64, length uint64, data uint64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pc_firmware_tables(handle uint32, acpi_rsdp unsafe.Pointer, smbios unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_get_nth_device(handle uint32, index uint32, out_info unsafe.Pointer, out_handle unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_enable_bus_master(handle uint32, enable uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_reset_device(handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_config_read(handle uint32, offset uint16, width uint, out_val unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_config_write(handle uint32, offset uint16, width uint, val uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_cfg_pio_rw(handle uint32, bus uint8, dev uint8, funk uint8, offset uint8, val unsafe.Pointer, width uint, write uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_get_bar(handle uint32, bar_num uint32, out_bar unsafe.Pointer, out_handle unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_map_interrupt(handle uint32, which_irq int32, out_handle unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_query_irq_mode(handle uint32, mode uint32, out_max_irqs unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_set_irq_mode(handle uint32, mode uint32, requested_irq_count uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_init(handle uint32, init_buf unsafe.Pointer, len uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pci_add_subtract_io_range(handle uint32, mmio uint32, base uint64, len uint64, add uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_pmt_unpin(handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_port_create(options uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_port_queue(handle uint32, packet unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_port_wait(handle uint32, deadline int64, packet unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_port_cancel(handle uint32, source uint32, key uint64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_process_exit(retcode int64)
//go:noescape
//go:nosplit
func vdsoCall_zx_process_create(job uint32, name unsafe.Pointer, name_size uint, options uint32, proc_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_process_start(handle uint32, thread uint32, entry uintptr, stack uintptr, arg1 uint32, arg2 uintptr) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_process_read_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_process_write_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_profile_create(root_job uint32, options uint32, profile unsafe.Pointer, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_resource_create(parent_rsrc uint32, options uint32, base uint64, size uint, name unsafe.Pointer, name_size uint, resource_out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_smc_call(handle uint32, parameters unsafe.Pointer, out_smc_result unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_socket_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_socket_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_socket_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_socket_shutdown(handle uint32, options uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_stream_create(options uint32, vmo uint32, seek uint64, out_stream unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_stream_writev(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_stream_writev_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_stream_readv(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_stream_readv_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_stream_seek(handle uint32, whence uint32, offset int64, out_seek unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_0() int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_1(a int32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_2(a int32, b int32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_3(a int32, b int32, c int32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_4(a int32, b int32, c int32, d int32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_5(a int32, b int32, c int32, d int32, e int32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_wrapper(a int32, b int32, c int32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_handle_create(return_value int32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_dcache_line_size() uint32
//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_num_cpus() uint32
//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_version_string() unsafe.Pointer
//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_physmem() uint64
//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_features(kind uint32, features unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_event(root_job uint32, kind uint32, event unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_system_mexec(resource uint32, kernel_vmo uint32, bootimage_vmo uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_system_mexec_payload_get(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_system_powerctl(resource uint32, cmd uint32, arg unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_task_suspend(handle uint32, token unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_task_suspend_token(handle uint32, token unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_task_create_exception_channel(handle uint32, options uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_task_kill(handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_thread_exit()
//go:noescape
//go:nosplit
func vdsoCall_zx_thread_create(process uint32, name unsafe.Pointer, name_size uint, options uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_thread_start(handle uint32, thread_entry uintptr, stack uintptr, arg1 uintptr, arg2 uintptr) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_thread_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_thread_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_timer_create(options uint32, clock_id uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_timer_set(handle uint32, deadline int64, slack int64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_timer_cancel(handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_create(guest uint32, options uint32, entry uintptr, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_resume(handle uint32, packet unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_interrupt(handle uint32, vector uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_allocate(parent_vmar uint32, options uint32, offset uint, size uint, child_vmar unsafe.Pointer, child_addr unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_destroy(handle uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_map(handle uint32, options uint32, vmar_offset uint, vmo uint32, vmo_offset uint64, len uint, mapped_addr unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_unmap(handle uint32, addr uintptr, len uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_protect(handle uint32, options uint32, addr uintptr, len uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_op_range(handle uint32, op uint32, address uintptr, size uint, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_create(size uint64, options uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_read(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_write(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_get_size(handle uint32, size unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_set_size(handle uint32, size uint64) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_op_range(handle uint32, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_create_child(handle uint32, options uint32, offset uint64, size uint64, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_set_cache_policy(handle uint32, cache_policy uint32) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_replace_as_executable(handle uint32, vmex uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_create_contiguous(bti uint32, size uint, alignment_log2 uint32, out unsafe.Pointer) int32
//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_create_physical(resource uint32, paddr uintptr, size uint, out unsafe.Pointer) int32
var (
vdso_zx_bti_create uintptr
vdso_zx_bti_pin uintptr
vdso_zx_bti_release_quarantine uintptr
vdso_zx_cache_flush uintptr
vdso_zx_channel_create uintptr
vdso_zx_channel_read uintptr
vdso_zx_channel_read_etc uintptr
vdso_zx_channel_write uintptr
vdso_zx_channel_write_etc uintptr
vdso_zx_channel_call_noretry uintptr
vdso_zx_channel_call_finish uintptr
vdso_zx_channel_call uintptr
vdso_zx_channel_call_etc_noretry uintptr
vdso_zx_channel_call_etc_finish uintptr
vdso_zx_channel_call_etc uintptr
vdso_zx_clock_get uintptr
vdso_zx_clock_get_monotonic uintptr
vdso_zx_clock_adjust uintptr
vdso_zx_clock_get_monotonic_via_kernel uintptr
vdso_zx_clock_create uintptr
vdso_zx_clock_read uintptr
vdso_zx_clock_get_details uintptr
vdso_zx_clock_update uintptr
vdso_zx_cprng_draw_once uintptr
vdso_zx_cprng_draw uintptr
vdso_zx_cprng_add_entropy uintptr
vdso_zx_debug_read uintptr
vdso_zx_debug_write uintptr
vdso_zx_debug_send_command uintptr
vdso_zx_debuglog_create uintptr
vdso_zx_debuglog_write uintptr
vdso_zx_debuglog_read uintptr
vdso_zx_event_create uintptr
vdso_zx_eventpair_create uintptr
vdso_zx_exception_get_thread uintptr
vdso_zx_exception_get_process uintptr
vdso_zx_fifo_create uintptr
vdso_zx_fifo_read uintptr
vdso_zx_fifo_write uintptr
vdso_zx_framebuffer_get_info uintptr
vdso_zx_framebuffer_set_range uintptr
vdso_zx_futex_wait uintptr
vdso_zx_futex_wake uintptr
vdso_zx_futex_requeue uintptr
vdso_zx_futex_wake_single_owner uintptr
vdso_zx_futex_requeue_single_owner uintptr
vdso_zx_futex_get_owner uintptr
vdso_zx_guest_create uintptr
vdso_zx_guest_set_trap uintptr
vdso_zx_handle_close uintptr
vdso_zx_handle_close_many uintptr
vdso_zx_handle_duplicate uintptr
vdso_zx_handle_replace uintptr
vdso_zx_interrupt_create uintptr
vdso_zx_interrupt_bind uintptr
vdso_zx_interrupt_wait uintptr
vdso_zx_interrupt_destroy uintptr
vdso_zx_interrupt_ack uintptr
vdso_zx_interrupt_trigger uintptr
vdso_zx_interrupt_bind_vcpu uintptr
vdso_zx_iommu_create uintptr
vdso_zx_ioports_request uintptr
vdso_zx_ioports_release uintptr
vdso_zx_job_create uintptr
vdso_zx_job_set_policy uintptr
vdso_zx_job_set_critical uintptr
vdso_zx_ktrace_read uintptr
vdso_zx_ktrace_control uintptr
vdso_zx_ktrace_write uintptr
vdso_zx_nanosleep uintptr
vdso_zx_ticks_get uintptr
vdso_zx_ticks_per_second uintptr
vdso_zx_deadline_after uintptr
vdso_zx_vmar_unmap_handle_close_thread_exit uintptr
vdso_zx_futex_wake_handle_close_thread_exit uintptr
vdso_zx_ticks_get_via_kernel uintptr
vdso_zx_msi_allocate uintptr
vdso_zx_msi_create uintptr
vdso_zx_mtrace_control uintptr
vdso_zx_object_wait_one uintptr
vdso_zx_object_wait_many uintptr
vdso_zx_object_wait_async uintptr
vdso_zx_object_signal uintptr
vdso_zx_object_signal_peer uintptr
vdso_zx_object_get_property uintptr
vdso_zx_object_set_property uintptr
vdso_zx_object_get_info uintptr
vdso_zx_object_get_child uintptr
vdso_zx_object_set_profile uintptr
vdso_zx_pager_create uintptr
vdso_zx_pager_create_vmo uintptr
vdso_zx_pager_detach_vmo uintptr
vdso_zx_pager_supply_pages uintptr
vdso_zx_pager_op_range uintptr
vdso_zx_pc_firmware_tables uintptr
vdso_zx_pci_get_nth_device uintptr
vdso_zx_pci_enable_bus_master uintptr
vdso_zx_pci_reset_device uintptr
vdso_zx_pci_config_read uintptr
vdso_zx_pci_config_write uintptr
vdso_zx_pci_cfg_pio_rw uintptr
vdso_zx_pci_get_bar uintptr
vdso_zx_pci_map_interrupt uintptr
vdso_zx_pci_query_irq_mode uintptr
vdso_zx_pci_set_irq_mode uintptr
vdso_zx_pci_init uintptr
vdso_zx_pci_add_subtract_io_range uintptr
vdso_zx_pmt_unpin uintptr
vdso_zx_port_create uintptr
vdso_zx_port_queue uintptr
vdso_zx_port_wait uintptr
vdso_zx_port_cancel uintptr
vdso_zx_process_exit uintptr
vdso_zx_process_create uintptr
vdso_zx_process_start uintptr
vdso_zx_process_read_memory uintptr
vdso_zx_process_write_memory uintptr
vdso_zx_profile_create uintptr
vdso_zx_resource_create uintptr
vdso_zx_smc_call uintptr
vdso_zx_socket_create uintptr
vdso_zx_socket_write uintptr
vdso_zx_socket_read uintptr
vdso_zx_socket_shutdown uintptr
vdso_zx_stream_create uintptr
vdso_zx_stream_writev uintptr
vdso_zx_stream_writev_at uintptr
vdso_zx_stream_readv uintptr
vdso_zx_stream_readv_at uintptr
vdso_zx_stream_seek uintptr
vdso_zx_syscall_test_0 uintptr
vdso_zx_syscall_test_1 uintptr
vdso_zx_syscall_test_2 uintptr
vdso_zx_syscall_test_3 uintptr
vdso_zx_syscall_test_4 uintptr
vdso_zx_syscall_test_5 uintptr
vdso_zx_syscall_test_6 uintptr
vdso_zx_syscall_test_7 uintptr
vdso_zx_syscall_test_8 uintptr
vdso_zx_syscall_test_wrapper uintptr
vdso_zx_syscall_test_handle_create uintptr
vdso_zx_system_get_dcache_line_size uintptr
vdso_zx_system_get_num_cpus uintptr
vdso_zx_system_get_version_string uintptr
vdso_zx_system_get_physmem uintptr
vdso_zx_system_get_features uintptr
vdso_zx_system_get_event uintptr
vdso_zx_system_mexec uintptr
vdso_zx_system_mexec_payload_get uintptr
vdso_zx_system_powerctl uintptr
vdso_zx_task_suspend uintptr
vdso_zx_task_suspend_token uintptr
vdso_zx_task_create_exception_channel uintptr
vdso_zx_task_kill uintptr
vdso_zx_thread_exit uintptr
vdso_zx_thread_create uintptr
vdso_zx_thread_start uintptr
vdso_zx_thread_read_state uintptr
vdso_zx_thread_write_state uintptr
vdso_zx_timer_create uintptr
vdso_zx_timer_set uintptr
vdso_zx_timer_cancel uintptr
vdso_zx_vcpu_create uintptr
vdso_zx_vcpu_resume uintptr
vdso_zx_vcpu_interrupt uintptr
vdso_zx_vcpu_read_state uintptr
vdso_zx_vcpu_write_state uintptr
vdso_zx_vmar_allocate uintptr
vdso_zx_vmar_destroy uintptr
vdso_zx_vmar_map uintptr
vdso_zx_vmar_unmap uintptr
vdso_zx_vmar_protect uintptr
vdso_zx_vmar_op_range uintptr
vdso_zx_vmo_create uintptr
vdso_zx_vmo_read uintptr
vdso_zx_vmo_write uintptr
vdso_zx_vmo_get_size uintptr
vdso_zx_vmo_set_size uintptr
vdso_zx_vmo_op_range uintptr
vdso_zx_vmo_create_child uintptr
vdso_zx_vmo_set_cache_policy uintptr
vdso_zx_vmo_replace_as_executable uintptr
vdso_zx_vmo_create_contiguous uintptr
vdso_zx_vmo_create_physical uintptr
)
----- go-vdso-keys.go END -----
----- go-vdso-x86-calls.s START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
#include "go_asm.h"
#include "go_tls.h"
#include "textflag.h"
#include "funcdata.h"
// func vdsoCall_zx_bti_create(iommu uint32, options uint32, bti_id uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_bti_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL iommu+0(FP), DI
MOVL options+4(FP), SI
MOVQ bti_id+8(FP), DX
MOVQ out+16(FP), CX
MOVQ vdso_zx_bti_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_bti_pin(handle uint32, options uint32, vmo uint32, offset uint64, size uint64, addrs unsafe.Pointer, num_addrs uint, pmt unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_bti_pin(SB),NOSPLIT,$40-60
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 56(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 56(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVL vmo+8(FP), DX
MOVQ offset+16(FP), CX
MOVQ size+24(FP), R8
MOVQ addrs+32(FP), R9
MOVQ num_addrs+40(FP), R12
MOVQ pmt+48(FP), R13
MOVQ SP, BP // BP is preserved across vsdo call by the x86-64 ABI
ANDQ $~15, SP // stack alignment for x86-64 ABI
PUSHQ R13
PUSHQ R12
MOVQ vdso_zx_bti_pin(SB), AX
CALL AX
POPQ R12
POPQ R13
MOVQ BP, SP
MOVL AX, ret+56(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_bti_release_quarantine(handle uint32) int32
TEXT runtime·vdsoCall_zx_bti_release_quarantine(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vdso_zx_bti_release_quarantine(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_cache_flush(addr unsafe.Pointer, size uint, options uint32) int32
TEXT runtime·vdsoCall_zx_cache_flush(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ addr+0(FP), DI
MOVQ size+8(FP), SI
MOVL options+16(FP), DX
MOVQ vdso_zx_cache_flush(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL options+0(FP), DI
MOVQ out0+8(FP), SI
MOVQ out1+16(FP), DX
MOVQ vdso_zx_channel_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_read(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_read(SB),NOSPLIT,$40-52
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 56(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 56(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ bytes+8(FP), DX
MOVQ handles+16(FP), CX
MOVL num_bytes+24(FP), R8
MOVL num_handles+28(FP), R9
MOVQ actual_bytes+32(FP), R12
MOVQ actual_handles+40(FP), R13
MOVQ SP, BP // BP is preserved across vsdo call by the x86-64 ABI
ANDQ $~15, SP // stack alignment for x86-64 ABI
PUSHQ R13
PUSHQ R12
MOVQ vdso_zx_channel_read(SB), AX
CALL AX
POPQ R12
POPQ R13
MOVQ BP, SP
MOVL AX, ret+48(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_read_etc(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_read_etc(SB),NOSPLIT,$40-52
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 56(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 56(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ bytes+8(FP), DX
MOVQ handles+16(FP), CX
MOVL num_bytes+24(FP), R8
MOVL num_handles+28(FP), R9
MOVQ actual_bytes+32(FP), R12
MOVQ actual_handles+40(FP), R13
MOVQ SP, BP // BP is preserved across vsdo call by the x86-64 ABI
ANDQ $~15, SP // stack alignment for x86-64 ABI
PUSHQ R13
PUSHQ R12
MOVQ vdso_zx_channel_read_etc(SB), AX
CALL AX
POPQ R12
POPQ R13
MOVQ BP, SP
MOVL AX, ret+48(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_write(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
TEXT runtime·vdsoCall_zx_channel_write(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ bytes+8(FP), DX
MOVL num_bytes+16(FP), CX
MOVQ handles+24(FP), R8
MOVL num_handles+32(FP), R9
MOVQ vdso_zx_channel_write(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_write_etc(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
TEXT runtime·vdsoCall_zx_channel_write_etc(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ bytes+8(FP), DX
MOVL num_bytes+16(FP), CX
MOVQ handles+24(FP), R8
MOVL num_handles+32(FP), R9
MOVQ vdso_zx_channel_write_etc(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_call_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_noretry(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ deadline+8(FP), DX
MOVQ args+16(FP), CX
MOVQ actual_bytes+24(FP), R8
MOVQ actual_handles+32(FP), R9
MOVQ vdso_zx_channel_call_noretry(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_call_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_finish(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ deadline+0(FP), DI
MOVQ args+8(FP), SI
MOVQ actual_bytes+16(FP), DX
MOVQ actual_handles+24(FP), CX
MOVQ vdso_zx_channel_call_finish(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_call(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ deadline+8(FP), DX
MOVQ args+16(FP), CX
MOVQ actual_bytes+24(FP), R8
MOVQ actual_handles+32(FP), R9
MOVQ vdso_zx_channel_call(SB), AX
CALL AX
MOVL AX, ret+40(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_call_etc_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc_noretry(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ deadline+8(FP), DX
MOVQ args+16(FP), CX
MOVQ actual_bytes+24(FP), R8
MOVQ actual_handles+32(FP), R9
MOVQ vdso_zx_channel_call_etc_noretry(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_call_etc_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc_finish(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ deadline+0(FP), DI
MOVQ args+8(FP), SI
MOVQ actual_bytes+16(FP), DX
MOVQ actual_handles+24(FP), CX
MOVQ vdso_zx_channel_call_etc_finish(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_channel_call_etc(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ deadline+8(FP), DX
MOVQ args+16(FP), CX
MOVQ actual_bytes+24(FP), R8
MOVQ actual_handles+32(FP), R9
MOVQ vdso_zx_channel_call_etc(SB), AX
CALL AX
MOVL AX, ret+40(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_clock_get(clock_id uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_get(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL clock_id+0(FP), DI
MOVQ out+8(FP), SI
MOVQ vdso_zx_clock_get(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_clock_get_monotonic() int64
TEXT runtime·vdsoCall_zx_clock_get_monotonic(SB),NOSPLIT,$8-8
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_clock_get_monotonic(SB), AX
CALL AX
MOVQ AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_clock_adjust(handle uint32, clock_id uint32, offset int64) int32
TEXT runtime·vdsoCall_zx_clock_adjust(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL clock_id+4(FP), SI
MOVQ offset+8(FP), DX
MOVQ vdso_zx_clock_adjust(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_clock_get_monotonic_via_kernel() int64
TEXT runtime·vdsoCall_zx_clock_get_monotonic_via_kernel(SB),NOSPLIT,$8-8
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_clock_get_monotonic_via_kernel(SB), AX
CALL AX
MOVQ AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_clock_create(options uint64, args unsafe.Pointer, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ options+0(FP), DI
MOVQ args+8(FP), SI
MOVQ out+16(FP), DX
MOVQ vdso_zx_clock_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_clock_read(handle uint32, now unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_read(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ now+8(FP), SI
MOVQ vdso_zx_clock_read(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_clock_get_details(handle uint32, options uint64, details unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_get_details(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ options+8(FP), SI
MOVQ details+16(FP), DX
MOVQ vdso_zx_clock_get_details(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_clock_update(handle uint32, options uint64, args unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_update(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ options+8(FP), SI
MOVQ args+16(FP), DX
MOVQ vdso_zx_clock_update(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_cprng_draw_once(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ buffer+0(FP), DI
MOVQ buffer_size+8(FP), SI
MOVQ vdso_zx_cprng_draw_once(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
TEXT runtime·vdsoCall_zx_cprng_draw(SB),NOSPLIT,$8-16
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ buffer+0(FP), DI
MOVQ buffer_size+8(FP), SI
MOVQ vdso_zx_cprng_draw(SB), AX
CALL AX
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_cprng_add_entropy(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ buffer+0(FP), DI
MOVQ buffer_size+8(FP), SI
MOVQ vdso_zx_cprng_add_entropy(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_debug_read(handle uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_debug_read(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ buffer+8(FP), SI
MOVQ buffer_size+16(FP), DX
MOVQ actual+24(FP), CX
MOVQ vdso_zx_debug_read(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_debug_write(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debug_write(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ buffer+0(FP), DI
MOVQ buffer_size+8(FP), SI
MOVQ vdso_zx_debug_write(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_debug_send_command(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debug_send_command(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVQ buffer+8(FP), SI
MOVQ buffer_size+16(FP), DX
MOVQ vdso_zx_debug_send_command(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_debuglog_create(resource uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_debuglog_create(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVL options+4(FP), SI
MOVQ out+8(FP), DX
MOVQ vdso_zx_debuglog_create(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_debuglog_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debuglog_write(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ buffer+8(FP), DX
MOVQ buffer_size+16(FP), CX
MOVQ vdso_zx_debuglog_write(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_debuglog_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debuglog_read(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ buffer+8(FP), DX
MOVQ buffer_size+16(FP), CX
MOVQ vdso_zx_debuglog_read(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_event_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_event_create(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL options+0(FP), DI
MOVQ out+8(FP), SI
MOVQ vdso_zx_event_create(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_eventpair_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_eventpair_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL options+0(FP), DI
MOVQ out0+8(FP), SI
MOVQ out1+16(FP), DX
MOVQ vdso_zx_eventpair_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_exception_get_thread(handle uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_exception_get_thread(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ out+8(FP), SI
MOVQ vdso_zx_exception_get_thread(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_exception_get_process(handle uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_exception_get_process(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ out+8(FP), SI
MOVQ vdso_zx_exception_get_process(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_fifo_create(elem_count uint, elem_size uint, options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_create(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ elem_count+0(FP), DI
MOVQ elem_size+8(FP), SI
MOVL options+16(FP), DX
MOVQ out0+24(FP), CX
MOVQ out1+32(FP), R8
MOVQ vdso_zx_fifo_create(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_fifo_read(handle uint32, elem_size uint, data unsafe.Pointer, data_size uint, actual_count unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_read(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ elem_size+8(FP), SI
MOVQ data+16(FP), DX
MOVQ data_size+24(FP), CX
MOVQ actual_count+32(FP), R8
MOVQ vdso_zx_fifo_read(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_fifo_write(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_write(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ elem_size+8(FP), SI
MOVQ data+16(FP), DX
MOVQ count+24(FP), CX
MOVQ actual_count+32(FP), R8
MOVQ vdso_zx_fifo_write(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_framebuffer_get_info(resource uint32, format unsafe.Pointer, width unsafe.Pointer, height unsafe.Pointer, stride unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_framebuffer_get_info(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVQ format+8(FP), SI
MOVQ width+16(FP), DX
MOVQ height+24(FP), CX
MOVQ stride+32(FP), R8
MOVQ vdso_zx_framebuffer_get_info(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_framebuffer_set_range(resource uint32, vmo uint32, len uint32, format uint32, width uint32, height uint32, stride uint32) int32
TEXT runtime·vdsoCall_zx_framebuffer_set_range(SB),NOSPLIT,$32-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 48(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 48(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVL vmo+4(FP), SI
MOVL len+8(FP), DX
MOVL format+12(FP), CX
MOVL width+16(FP), R8
MOVL height+20(FP), R9
MOVL stride+24(FP), R12
MOVQ SP, BP // BP is preserved across vsdo call by the x86-64 ABI
ANDQ $~15, SP // stack alignment for x86-64 ABI
PUSHQ R12
MOVQ vdso_zx_framebuffer_set_range(SB), AX
CALL AX
POPQ R12
MOVQ BP, SP
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_futex_wait(value_ptr unsafe.Pointer, current_value int32, new_futex_owner uint32, deadline int64) int32
TEXT runtime·vdsoCall_zx_futex_wait(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ value_ptr+0(FP), DI
MOVL current_value+8(FP), SI
MOVL new_futex_owner+12(FP), DX
MOVQ deadline+16(FP), CX
MOVQ vdso_zx_futex_wait(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_futex_wake(value_ptr unsafe.Pointer, wake_count uint32) int32
TEXT runtime·vdsoCall_zx_futex_wake(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ value_ptr+0(FP), DI
MOVL wake_count+8(FP), SI
MOVQ vdso_zx_futex_wake(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_futex_requeue(value_ptr unsafe.Pointer, wake_count uint32, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
TEXT runtime·vdsoCall_zx_futex_requeue(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ value_ptr+0(FP), DI
MOVL wake_count+8(FP), SI
MOVL current_value+12(FP), DX
MOVQ requeue_ptr+16(FP), CX
MOVL requeue_count+24(FP), R8
MOVL new_requeue_owner+28(FP), R9
MOVQ vdso_zx_futex_requeue(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_futex_wake_single_owner(value_ptr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_futex_wake_single_owner(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ value_ptr+0(FP), DI
MOVQ vdso_zx_futex_wake_single_owner(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_futex_requeue_single_owner(value_ptr unsafe.Pointer, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
TEXT runtime·vdsoCall_zx_futex_requeue_single_owner(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ value_ptr+0(FP), DI
MOVL current_value+8(FP), SI
MOVQ requeue_ptr+16(FP), DX
MOVL requeue_count+24(FP), CX
MOVL new_requeue_owner+28(FP), R8
MOVQ vdso_zx_futex_requeue_single_owner(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_futex_get_owner(value_ptr unsafe.Pointer, koid unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_futex_get_owner(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ value_ptr+0(FP), DI
MOVQ koid+8(FP), SI
MOVQ vdso_zx_futex_get_owner(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_guest_create(resource uint32, options uint32, guest_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_guest_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVL options+4(FP), SI
MOVQ guest_handle+8(FP), DX
MOVQ vmar_handle+16(FP), CX
MOVQ vdso_zx_guest_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_guest_set_trap(handle uint32, kind uint32, addr uintptr, size uint, port_handle uint32, key uint64) int32
TEXT runtime·vdsoCall_zx_guest_set_trap(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL kind+4(FP), SI
MOVQ addr+8(FP), DX
MOVQ size+16(FP), CX
MOVL port_handle+24(FP), R8
MOVQ key+32(FP), R9
MOVQ vdso_zx_guest_set_trap(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_handle_close(handle uint32) int32
TEXT runtime·vdsoCall_zx_handle_close(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vdso_zx_handle_close(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_handle_close_many(handles unsafe.Pointer, num_handles uint) int32
TEXT runtime·vdsoCall_zx_handle_close_many(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ handles+0(FP), DI
MOVQ num_handles+8(FP), SI
MOVQ vdso_zx_handle_close_many(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_handle_duplicate(handle uint32, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_handle_duplicate(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL rights+4(FP), SI
MOVQ out+8(FP), DX
MOVQ vdso_zx_handle_duplicate(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_handle_replace(handle uint32, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_handle_replace(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL rights+4(FP), SI
MOVQ out+8(FP), DX
MOVQ vdso_zx_handle_replace(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_interrupt_create(src_obj uint32, src_num uint32, options uint32, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_interrupt_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL src_obj+0(FP), DI
MOVL src_num+4(FP), SI
MOVL options+8(FP), DX
MOVQ out_handle+16(FP), CX
MOVQ vdso_zx_interrupt_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_interrupt_bind(handle uint32, port_handle uint32, key uint64, options uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_bind(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL port_handle+4(FP), SI
MOVQ key+8(FP), DX
MOVL options+16(FP), CX
MOVQ vdso_zx_interrupt_bind(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_interrupt_wait(handle uint32, out_timestamp unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_interrupt_wait(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVL handle+0(FP), DI
MOVQ out_timestamp+8(FP), SI
MOVQ vdso_zx_interrupt_wait(SB), AX
CALL AX
MOVL AX, ret+16(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_interrupt_destroy(handle uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_destroy(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vdso_zx_interrupt_destroy(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_interrupt_ack(handle uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_ack(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vdso_zx_interrupt_ack(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_interrupt_trigger(handle uint32, options uint32, timestamp int64) int32
TEXT runtime·vdsoCall_zx_interrupt_trigger(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ timestamp+8(FP), DX
MOVQ vdso_zx_interrupt_trigger(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_interrupt_bind_vcpu(handle uint32, vcpu uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_bind_vcpu(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL vcpu+4(FP), SI
MOVL options+8(FP), DX
MOVQ vdso_zx_interrupt_bind_vcpu(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_iommu_create(resource uint32, typ uint32, desc unsafe.Pointer, desc_size uint, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_iommu_create(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVL typ+4(FP), SI
MOVQ desc+8(FP), DX
MOVQ desc_size+16(FP), CX
MOVQ out+24(FP), R8
MOVQ vdso_zx_iommu_create(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_ioports_request(resource uint32, io_addr uint16, len uint32) int32
TEXT runtime·vdsoCall_zx_ioports_request(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVQ io_addr+4(FP), SI
MOVL len+8(FP), DX
MOVQ vdso_zx_ioports_request(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_ioports_release(resource uint32, io_addr uint16, len uint32) int32
TEXT runtime·vdsoCall_zx_ioports_release(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVQ io_addr+4(FP), SI
MOVL len+8(FP), DX
MOVQ vdso_zx_ioports_release(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_job_create(parent_job uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_job_create(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL parent_job+0(FP), DI
MOVL options+4(FP), SI
MOVQ out+8(FP), DX
MOVQ vdso_zx_job_create(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_job_set_policy(handle uint32, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) int32
TEXT runtime·vdsoCall_zx_job_set_policy(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVL topic+8(FP), DX
MOVQ policy+16(FP), CX
MOVL policy_size+24(FP), R8
MOVQ vdso_zx_job_set_policy(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_job_set_critical(job uint32, options uint32, process uint32) int32
TEXT runtime·vdsoCall_zx_job_set_critical(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL job+0(FP), DI
MOVL options+4(FP), SI
MOVL process+8(FP), DX
MOVQ vdso_zx_job_set_critical(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_ktrace_read(handle uint32, data unsafe.Pointer, offset uint32, data_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_ktrace_read(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ data+8(FP), SI
MOVL offset+16(FP), DX
MOVQ data_size+24(FP), CX
MOVQ actual+32(FP), R8
MOVQ vdso_zx_ktrace_read(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_ktrace_control(handle uint32, action uint32, options uint32, ptr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_ktrace_control(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL action+4(FP), SI
MOVL options+8(FP), DX
MOVQ ptr+16(FP), CX
MOVQ vdso_zx_ktrace_control(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_ktrace_write(handle uint32, id uint32, arg0 uint32, arg1 uint32) int32
TEXT runtime·vdsoCall_zx_ktrace_write(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL id+4(FP), SI
MOVL arg0+8(FP), DX
MOVL arg1+12(FP), CX
MOVQ vdso_zx_ktrace_write(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_nanosleep(deadline int64) int32
TEXT runtime·vdsoCall_zx_nanosleep(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ deadline+0(FP), DI
MOVQ vdso_zx_nanosleep(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_ticks_get() int64
TEXT runtime·vdsoCall_zx_ticks_get(SB),NOSPLIT,$8-8
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_ticks_get(SB), AX
CALL AX
MOVQ AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_ticks_per_second() int64
TEXT runtime·vdsoCall_zx_ticks_per_second(SB),NOSPLIT,$8-8
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_ticks_per_second(SB), AX
CALL AX
MOVQ AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_deadline_after(nanoseconds int64) int64
TEXT runtime·vdsoCall_zx_deadline_after(SB),NOSPLIT,$8-16
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ nanoseconds+0(FP), DI
MOVQ vdso_zx_deadline_after(SB), AX
CALL AX
MOVQ AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmar_unmap_handle_close_thread_exit(vmar_handle uint32, addr uintptr, size uint, close_handle uint32) int32
TEXT runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL vmar_handle+0(FP), DI
MOVQ addr+8(FP), SI
MOVQ size+16(FP), DX
MOVL close_handle+24(FP), CX
MOVQ vdso_zx_vmar_unmap_handle_close_thread_exit(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_futex_wake_handle_close_thread_exit(value_ptr unsafe.Pointer, wake_count uint32, new_value int32, close_handle uint32)
TEXT runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$8-24
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ value_ptr+0(FP), DI
MOVL wake_count+8(FP), SI
MOVL new_value+12(FP), DX
MOVL close_handle+16(FP), CX
MOVQ vdso_zx_futex_wake_handle_close_thread_exit(SB), AX
CALL AX
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_ticks_get_via_kernel() int64
TEXT runtime·vdsoCall_zx_ticks_get_via_kernel(SB),NOSPLIT,$8-8
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_ticks_get_via_kernel(SB), AX
CALL AX
MOVQ AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_msi_allocate(handle uint32, count uint32, out_allocation unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_msi_allocate(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL count+4(FP), SI
MOVQ out_allocation+8(FP), DX
MOVQ vdso_zx_msi_allocate(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_msi_create(handle uint32, options uint32, msi_id uint32, vmo uint32, vmo_offset uint, out_interrupt unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_msi_create(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVL msi_id+8(FP), DX
MOVL vmo+12(FP), CX
MOVQ vmo_offset+16(FP), R8
MOVQ out_interrupt+24(FP), R9
MOVQ vdso_zx_msi_create(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_mtrace_control(handle uint32, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) int32
TEXT runtime·vdsoCall_zx_mtrace_control(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL kind+4(FP), SI
MOVL action+8(FP), DX
MOVL options+12(FP), CX
MOVQ ptr+16(FP), R8
MOVQ ptr_size+24(FP), R9
MOVQ vdso_zx_mtrace_control(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_wait_one(handle uint32, signals uint32, deadline int64, observed unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_wait_one(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVL handle+0(FP), DI
MOVL signals+4(FP), SI
MOVQ deadline+8(FP), DX
MOVQ observed+16(FP), CX
MOVQ vdso_zx_object_wait_one(SB), AX
CALL AX
MOVL AX, ret+24(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_wait_many(items unsafe.Pointer, num_items uint, deadline int64) int32
TEXT runtime·vdsoCall_zx_object_wait_many(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVQ items+0(FP), DI
MOVQ num_items+8(FP), SI
MOVQ deadline+16(FP), DX
MOVQ vdso_zx_object_wait_many(SB), AX
CALL AX
MOVL AX, ret+24(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_wait_async(handle uint32, port uint32, key uint64, signals uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_object_wait_async(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL port+4(FP), SI
MOVQ key+8(FP), DX
MOVL signals+16(FP), CX
MOVL options+20(FP), R8
MOVQ vdso_zx_object_wait_async(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_signal(handle uint32, clear_mask uint32, set_mask uint32) int32
TEXT runtime·vdsoCall_zx_object_signal(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL clear_mask+4(FP), SI
MOVL set_mask+8(FP), DX
MOVQ vdso_zx_object_signal(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_signal_peer(handle uint32, clear_mask uint32, set_mask uint32) int32
TEXT runtime·vdsoCall_zx_object_signal_peer(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL clear_mask+4(FP), SI
MOVL set_mask+8(FP), DX
MOVQ vdso_zx_object_signal_peer(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_get_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
TEXT runtime·vdsoCall_zx_object_get_property(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL property+4(FP), SI
MOVQ value+8(FP), DX
MOVQ value_size+16(FP), CX
MOVQ vdso_zx_object_get_property(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_set_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
TEXT runtime·vdsoCall_zx_object_set_property(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL property+4(FP), SI
MOVQ value+8(FP), DX
MOVQ value_size+16(FP), CX
MOVQ vdso_zx_object_set_property(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_get_info(handle uint32, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_get_info(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL topic+4(FP), SI
MOVQ buffer+8(FP), DX
MOVQ buffer_size+16(FP), CX
MOVQ actual+24(FP), R8
MOVQ avail+32(FP), R9
MOVQ vdso_zx_object_get_info(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_get_child(handle uint32, koid uint64, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_get_child(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ koid+8(FP), SI
MOVL rights+16(FP), DX
MOVQ out+24(FP), CX
MOVQ vdso_zx_object_get_child(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_object_set_profile(handle uint32, profile uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_object_set_profile(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL profile+4(FP), SI
MOVL options+8(FP), DX
MOVQ vdso_zx_object_set_profile(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pager_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pager_create(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL options+0(FP), DI
MOVQ out+8(FP), SI
MOVQ vdso_zx_pager_create(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pager_create_vmo(pager uint32, options uint32, port uint32, key uint64, size uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pager_create_vmo(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL pager+0(FP), DI
MOVL options+4(FP), SI
MOVL port+8(FP), DX
MOVQ key+16(FP), CX
MOVQ size+24(FP), R8
MOVQ out+32(FP), R9
MOVQ vdso_zx_pager_create_vmo(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pager_detach_vmo(pager uint32, vmo uint32) int32
TEXT runtime·vdsoCall_zx_pager_detach_vmo(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL pager+0(FP), DI
MOVL vmo+4(FP), SI
MOVQ vdso_zx_pager_detach_vmo(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pager_supply_pages(pager uint32, pager_vmo uint32, offset uint64, length uint64, aux_vmo uint32, aux_offset uint64) int32
TEXT runtime·vdsoCall_zx_pager_supply_pages(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL pager+0(FP), DI
MOVL pager_vmo+4(FP), SI
MOVQ offset+8(FP), DX
MOVQ length+16(FP), CX
MOVL aux_vmo+24(FP), R8
MOVQ aux_offset+32(FP), R9
MOVQ vdso_zx_pager_supply_pages(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pager_op_range(pager uint32, op uint32, pager_vmo uint32, offset uint64, length uint64, data uint64) int32
TEXT runtime·vdsoCall_zx_pager_op_range(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL pager+0(FP), DI
MOVL op+4(FP), SI
MOVL pager_vmo+8(FP), DX
MOVQ offset+16(FP), CX
MOVQ length+24(FP), R8
MOVQ data+32(FP), R9
MOVQ vdso_zx_pager_op_range(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pc_firmware_tables(handle uint32, acpi_rsdp unsafe.Pointer, smbios unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pc_firmware_tables(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ acpi_rsdp+8(FP), SI
MOVQ smbios+16(FP), DX
MOVQ vdso_zx_pc_firmware_tables(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_get_nth_device(handle uint32, index uint32, out_info unsafe.Pointer, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_get_nth_device(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL index+4(FP), SI
MOVQ out_info+8(FP), DX
MOVQ out_handle+16(FP), CX
MOVQ vdso_zx_pci_get_nth_device(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_enable_bus_master(handle uint32, enable uint32) int32
TEXT runtime·vdsoCall_zx_pci_enable_bus_master(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL enable+4(FP), SI
MOVQ vdso_zx_pci_enable_bus_master(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_reset_device(handle uint32) int32
TEXT runtime·vdsoCall_zx_pci_reset_device(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vdso_zx_pci_reset_device(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_config_read(handle uint32, offset uint16, width uint, out_val unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_config_read(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ offset+4(FP), SI
MOVQ width+8(FP), DX
MOVQ out_val+16(FP), CX
MOVQ vdso_zx_pci_config_read(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_config_write(handle uint32, offset uint16, width uint, val uint32) int32
TEXT runtime·vdsoCall_zx_pci_config_write(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ offset+4(FP), SI
MOVQ width+8(FP), DX
MOVL val+16(FP), CX
MOVQ vdso_zx_pci_config_write(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_cfg_pio_rw(handle uint32, bus uint8, dev uint8, funk uint8, offset uint8, val unsafe.Pointer, width uint, write uint32) int32
TEXT runtime·vdsoCall_zx_pci_cfg_pio_rw(SB),NOSPLIT,$40-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 56(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 56(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ bus+4(FP), SI
MOVQ dev+5(FP), DX
MOVQ funk+6(FP), CX
MOVQ offset+7(FP), R8
MOVQ val+8(FP), R9
MOVQ width+16(FP), R12
MOVL write+24(FP), R13
MOVQ SP, BP // BP is preserved across vsdo call by the x86-64 ABI
ANDQ $~15, SP // stack alignment for x86-64 ABI
PUSHQ R13
PUSHQ R12
MOVQ vdso_zx_pci_cfg_pio_rw(SB), AX
CALL AX
POPQ R12
POPQ R13
MOVQ BP, SP
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_get_bar(handle uint32, bar_num uint32, out_bar unsafe.Pointer, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_get_bar(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL bar_num+4(FP), SI
MOVQ out_bar+8(FP), DX
MOVQ out_handle+16(FP), CX
MOVQ vdso_zx_pci_get_bar(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_map_interrupt(handle uint32, which_irq int32, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_map_interrupt(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL which_irq+4(FP), SI
MOVQ out_handle+8(FP), DX
MOVQ vdso_zx_pci_map_interrupt(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_query_irq_mode(handle uint32, mode uint32, out_max_irqs unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_query_irq_mode(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL mode+4(FP), SI
MOVQ out_max_irqs+8(FP), DX
MOVQ vdso_zx_pci_query_irq_mode(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_set_irq_mode(handle uint32, mode uint32, requested_irq_count uint32) int32
TEXT runtime·vdsoCall_zx_pci_set_irq_mode(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL mode+4(FP), SI
MOVL requested_irq_count+8(FP), DX
MOVQ vdso_zx_pci_set_irq_mode(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_init(handle uint32, init_buf unsafe.Pointer, len uint32) int32
TEXT runtime·vdsoCall_zx_pci_init(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ init_buf+8(FP), SI
MOVL len+16(FP), DX
MOVQ vdso_zx_pci_init(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pci_add_subtract_io_range(handle uint32, mmio uint32, base uint64, len uint64, add uint32) int32
TEXT runtime·vdsoCall_zx_pci_add_subtract_io_range(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL mmio+4(FP), SI
MOVQ base+8(FP), DX
MOVQ len+16(FP), CX
MOVL add+24(FP), R8
MOVQ vdso_zx_pci_add_subtract_io_range(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_pmt_unpin(handle uint32) int32
TEXT runtime·vdsoCall_zx_pmt_unpin(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vdso_zx_pmt_unpin(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_port_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_create(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL options+0(FP), DI
MOVQ out+8(FP), SI
MOVQ vdso_zx_port_create(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_port_queue(handle uint32, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_queue(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ packet+8(FP), SI
MOVQ vdso_zx_port_queue(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_port_wait(handle uint32, deadline int64, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_wait(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVL handle+0(FP), DI
MOVQ deadline+8(FP), SI
MOVQ packet+16(FP), DX
MOVQ vdso_zx_port_wait(SB), AX
CALL AX
MOVL AX, ret+24(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_port_cancel(handle uint32, source uint32, key uint64) int32
TEXT runtime·vdsoCall_zx_port_cancel(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL source+4(FP), SI
MOVQ key+8(FP), DX
MOVQ vdso_zx_port_cancel(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_process_exit(retcode int64)
TEXT runtime·vdsoCall_zx_process_exit(SB),NOSPLIT,$8-8
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ retcode+0(FP), DI
MOVQ vdso_zx_process_exit(SB), AX
CALL AX
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_process_create(job uint32, name unsafe.Pointer, name_size uint, options uint32, proc_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_create(SB),NOSPLIT,$8-52
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL job+0(FP), DI
MOVQ name+8(FP), SI
MOVQ name_size+16(FP), DX
MOVL options+24(FP), CX
MOVQ proc_handle+32(FP), R8
MOVQ vmar_handle+40(FP), R9
MOVQ vdso_zx_process_create(SB), AX
CALL AX
MOVL AX, ret+48(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_process_start(handle uint32, thread uint32, entry uintptr, stack uintptr, arg1 uint32, arg2 uintptr) int32
TEXT runtime·vdsoCall_zx_process_start(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL thread+4(FP), SI
MOVQ entry+8(FP), DX
MOVQ stack+16(FP), CX
MOVL arg1+24(FP), R8
MOVQ arg2+32(FP), R9
MOVQ vdso_zx_process_start(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_process_read_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_read_memory(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vaddr+8(FP), SI
MOVQ buffer+16(FP), DX
MOVQ buffer_size+24(FP), CX
MOVQ actual+32(FP), R8
MOVQ vdso_zx_process_read_memory(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_process_write_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_write_memory(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vaddr+8(FP), SI
MOVQ buffer+16(FP), DX
MOVQ buffer_size+24(FP), CX
MOVQ actual+32(FP), R8
MOVQ vdso_zx_process_write_memory(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_profile_create(root_job uint32, options uint32, profile unsafe.Pointer, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_profile_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL root_job+0(FP), DI
MOVL options+4(FP), SI
MOVQ profile+8(FP), DX
MOVQ out+16(FP), CX
MOVQ vdso_zx_profile_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_resource_create(parent_rsrc uint32, options uint32, base uint64, size uint, name unsafe.Pointer, name_size uint, resource_out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_resource_create(SB),NOSPLIT,$32-52
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 48(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 48(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL parent_rsrc+0(FP), DI
MOVL options+4(FP), SI
MOVQ base+8(FP), DX
MOVQ size+16(FP), CX
MOVQ name+24(FP), R8
MOVQ name_size+32(FP), R9
MOVQ resource_out+40(FP), R12
MOVQ SP, BP // BP is preserved across vsdo call by the x86-64 ABI
ANDQ $~15, SP // stack alignment for x86-64 ABI
PUSHQ R12
MOVQ vdso_zx_resource_create(SB), AX
CALL AX
POPQ R12
MOVQ BP, SP
MOVL AX, ret+48(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_smc_call(handle uint32, parameters unsafe.Pointer, out_smc_result unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_smc_call(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ parameters+8(FP), SI
MOVQ out_smc_result+16(FP), DX
MOVQ vdso_zx_smc_call(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_socket_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL options+0(FP), DI
MOVQ out0+8(FP), SI
MOVQ out1+16(FP), DX
MOVQ vdso_zx_socket_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_socket_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_write(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ buffer+8(FP), DX
MOVQ buffer_size+16(FP), CX
MOVQ actual+24(FP), R8
MOVQ vdso_zx_socket_write(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_socket_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_read(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ buffer+8(FP), DX
MOVQ buffer_size+16(FP), CX
MOVQ actual+24(FP), R8
MOVQ vdso_zx_socket_read(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_socket_shutdown(handle uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_socket_shutdown(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ vdso_zx_socket_shutdown(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_stream_create(options uint32, vmo uint32, seek uint64, out_stream unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL options+0(FP), DI
MOVL vmo+4(FP), SI
MOVQ seek+8(FP), DX
MOVQ out_stream+16(FP), CX
MOVQ vdso_zx_stream_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_stream_writev(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_writev(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ vector+8(FP), DX
MOVQ num_vector+16(FP), CX
MOVQ actual+24(FP), R8
MOVQ vdso_zx_stream_writev(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_stream_writev_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_writev_at(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ offset+8(FP), DX
MOVQ vector+16(FP), CX
MOVQ num_vector+24(FP), R8
MOVQ actual+32(FP), R9
MOVQ vdso_zx_stream_writev_at(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_stream_readv(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_readv(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ vector+8(FP), DX
MOVQ num_vector+16(FP), CX
MOVQ actual+24(FP), R8
MOVQ vdso_zx_stream_readv(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_stream_readv_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_readv_at(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ offset+8(FP), DX
MOVQ vector+16(FP), CX
MOVQ num_vector+24(FP), R8
MOVQ actual+32(FP), R9
MOVQ vdso_zx_stream_readv_at(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_stream_seek(handle uint32, whence uint32, offset int64, out_seek unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_seek(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL whence+4(FP), SI
MOVQ offset+8(FP), DX
MOVQ out_seek+16(FP), CX
MOVQ vdso_zx_stream_seek(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_0() int32
TEXT runtime·vdsoCall_zx_syscall_test_0(SB),NOSPLIT,$8-4
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_syscall_test_0(SB), AX
CALL AX
MOVL AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_1(a int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_1(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL a+0(FP), DI
MOVQ vdso_zx_syscall_test_1(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_2(a int32, b int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_2(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL a+0(FP), DI
MOVL b+4(FP), SI
MOVQ vdso_zx_syscall_test_2(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_3(a int32, b int32, c int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_3(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL a+0(FP), DI
MOVL b+4(FP), SI
MOVL c+8(FP), DX
MOVQ vdso_zx_syscall_test_3(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_4(a int32, b int32, c int32, d int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_4(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL a+0(FP), DI
MOVL b+4(FP), SI
MOVL c+8(FP), DX
MOVL d+12(FP), CX
MOVQ vdso_zx_syscall_test_4(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_5(a int32, b int32, c int32, d int32, e int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_5(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL a+0(FP), DI
MOVL b+4(FP), SI
MOVL c+8(FP), DX
MOVL d+12(FP), CX
MOVL e+16(FP), R8
MOVQ vdso_zx_syscall_test_5(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_6(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL a+0(FP), DI
MOVL b+4(FP), SI
MOVL c+8(FP), DX
MOVL d+12(FP), CX
MOVL e+16(FP), R8
MOVL f+20(FP), R9
MOVQ vdso_zx_syscall_test_6(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_7(SB),NOSPLIT,$32-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 48(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 48(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL a+0(FP), DI
MOVL b+4(FP), SI
MOVL c+8(FP), DX
MOVL d+12(FP), CX
MOVL e+16(FP), R8
MOVL f+20(FP), R9
MOVL g_+24(FP), R12
MOVQ SP, BP // BP is preserved across vsdo call by the x86-64 ABI
ANDQ $~15, SP // stack alignment for x86-64 ABI
PUSHQ R12
MOVQ vdso_zx_syscall_test_7(SB), AX
CALL AX
POPQ R12
MOVQ BP, SP
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_8(SB),NOSPLIT,$40-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 56(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 56(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL a+0(FP), DI
MOVL b+4(FP), SI
MOVL c+8(FP), DX
MOVL d+12(FP), CX
MOVL e+16(FP), R8
MOVL f+20(FP), R9
MOVL g_+24(FP), R12
MOVL h+28(FP), R13
MOVQ SP, BP // BP is preserved across vsdo call by the x86-64 ABI
ANDQ $~15, SP // stack alignment for x86-64 ABI
PUSHQ R13
PUSHQ R12
MOVQ vdso_zx_syscall_test_8(SB), AX
CALL AX
POPQ R12
POPQ R13
MOVQ BP, SP
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_wrapper(a int32, b int32, c int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_wrapper(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL a+0(FP), DI
MOVL b+4(FP), SI
MOVL c+8(FP), DX
MOVQ vdso_zx_syscall_test_wrapper(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_syscall_test_handle_create(return_value int32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_syscall_test_handle_create(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL return_value+0(FP), DI
MOVQ out+8(FP), SI
MOVQ vdso_zx_syscall_test_handle_create(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_system_get_dcache_line_size() uint32
TEXT runtime·vdsoCall_zx_system_get_dcache_line_size(SB),NOSPLIT,$8-4
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_system_get_dcache_line_size(SB), AX
CALL AX
MOVL AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_system_get_num_cpus() uint32
TEXT runtime·vdsoCall_zx_system_get_num_cpus(SB),NOSPLIT,$8-4
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_system_get_num_cpus(SB), AX
CALL AX
MOVL AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_system_get_version_string() unsafe.Pointer
TEXT runtime·vdsoCall_zx_system_get_version_string(SB),NOSPLIT,$8-8
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_system_get_version_string(SB), AX
CALL AX
MOVQ AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_system_get_physmem() uint64
TEXT runtime·vdsoCall_zx_system_get_physmem(SB),NOSPLIT,$8-8
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_system_get_physmem(SB), AX
CALL AX
MOVQ AX, ret+0(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_system_get_features(kind uint32, features unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_get_features(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL kind+0(FP), DI
MOVQ features+8(FP), SI
MOVQ vdso_zx_system_get_features(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_system_get_event(root_job uint32, kind uint32, event unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_get_event(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL root_job+0(FP), DI
MOVL kind+4(FP), SI
MOVQ event+8(FP), DX
MOVQ vdso_zx_system_get_event(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_system_mexec(resource uint32, kernel_vmo uint32, bootimage_vmo uint32) int32
TEXT runtime·vdsoCall_zx_system_mexec(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVL kernel_vmo+4(FP), SI
MOVL bootimage_vmo+8(FP), DX
MOVQ vdso_zx_system_mexec(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_system_mexec_payload_get(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_system_mexec_payload_get(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVQ buffer+8(FP), SI
MOVQ buffer_size+16(FP), DX
MOVQ vdso_zx_system_mexec_payload_get(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_system_powerctl(resource uint32, cmd uint32, arg unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_powerctl(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVL cmd+4(FP), SI
MOVQ arg+8(FP), DX
MOVQ vdso_zx_system_powerctl(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_task_suspend(handle uint32, token unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_suspend(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ token+8(FP), SI
MOVQ vdso_zx_task_suspend(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_task_suspend_token(handle uint32, token unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_suspend_token(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ token+8(FP), SI
MOVQ vdso_zx_task_suspend_token(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_task_create_exception_channel(handle uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_create_exception_channel(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ out+8(FP), DX
MOVQ vdso_zx_task_create_exception_channel(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_task_kill(handle uint32) int32
TEXT runtime·vdsoCall_zx_task_kill(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vdso_zx_task_kill(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_thread_exit()
TEXT runtime·vdsoCall_zx_thread_exit(SB),NOSPLIT,$8-0
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ vdso_zx_thread_exit(SB), AX
CALL AX
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_thread_create(process uint32, name unsafe.Pointer, name_size uint, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_thread_create(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL process+0(FP), DI
MOVQ name+8(FP), SI
MOVQ name_size+16(FP), DX
MOVL options+24(FP), CX
MOVQ out+32(FP), R8
MOVQ vdso_zx_thread_create(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_thread_start(handle uint32, thread_entry uintptr, stack uintptr, arg1 uintptr, arg2 uintptr) int32
TEXT runtime·vdsoCall_zx_thread_start(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ thread_entry+8(FP), SI
MOVQ stack+16(FP), DX
MOVQ arg1+24(FP), CX
MOVQ arg2+32(FP), R8
MOVQ vdso_zx_thread_start(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_thread_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_thread_read_state(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL kind+4(FP), SI
MOVQ buffer+8(FP), DX
MOVQ buffer_size+16(FP), CX
MOVQ vdso_zx_thread_read_state(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_thread_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_thread_write_state(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL kind+4(FP), SI
MOVQ buffer+8(FP), DX
MOVQ buffer_size+16(FP), CX
MOVQ vdso_zx_thread_write_state(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_timer_create(options uint32, clock_id uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_timer_create(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL options+0(FP), DI
MOVL clock_id+4(FP), SI
MOVQ out+8(FP), DX
MOVQ vdso_zx_timer_create(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_timer_set(handle uint32, deadline int64, slack int64) int32
TEXT runtime·vdsoCall_zx_timer_set(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ deadline+8(FP), SI
MOVQ slack+16(FP), DX
MOVQ vdso_zx_timer_set(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_timer_cancel(handle uint32) int32
TEXT runtime·vdsoCall_zx_timer_cancel(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vdso_zx_timer_cancel(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vcpu_create(guest uint32, options uint32, entry uintptr, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vcpu_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL guest+0(FP), DI
MOVL options+4(FP), SI
MOVQ entry+8(FP), DX
MOVQ out+16(FP), CX
MOVQ vdso_zx_vcpu_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vcpu_resume(handle uint32, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vcpu_resume(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVL handle+0(FP), DI
MOVQ packet+8(FP), SI
MOVQ vdso_zx_vcpu_resume(SB), AX
CALL AX
MOVL AX, ret+16(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vcpu_interrupt(handle uint32, vector uint32) int32
TEXT runtime·vdsoCall_zx_vcpu_interrupt(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL vector+4(FP), SI
MOVQ vdso_zx_vcpu_interrupt(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vcpu_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vcpu_read_state(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL kind+4(FP), SI
MOVQ buffer+8(FP), DX
MOVQ buffer_size+16(FP), CX
MOVQ vdso_zx_vcpu_read_state(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vcpu_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vcpu_write_state(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL kind+4(FP), SI
MOVQ buffer+8(FP), DX
MOVQ buffer_size+16(FP), CX
MOVQ vdso_zx_vcpu_write_state(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmar_allocate(parent_vmar uint32, options uint32, offset uint, size uint, child_vmar unsafe.Pointer, child_addr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmar_allocate(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL parent_vmar+0(FP), DI
MOVL options+4(FP), SI
MOVQ offset+8(FP), DX
MOVQ size+16(FP), CX
MOVQ child_vmar+24(FP), R8
MOVQ child_addr+32(FP), R9
MOVQ vdso_zx_vmar_allocate(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmar_destroy(handle uint32) int32
TEXT runtime·vdsoCall_zx_vmar_destroy(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ vdso_zx_vmar_destroy(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmar_map(handle uint32, options uint32, vmar_offset uint, vmo uint32, vmo_offset uint64, len uint, mapped_addr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmar_map(SB),NOSPLIT,$32-52
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 48(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 48(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ vmar_offset+8(FP), DX
MOVL vmo+16(FP), CX
MOVQ vmo_offset+24(FP), R8
MOVQ len+32(FP), R9
MOVQ mapped_addr+40(FP), R12
MOVQ SP, BP // BP is preserved across vsdo call by the x86-64 ABI
ANDQ $~15, SP // stack alignment for x86-64 ABI
PUSHQ R12
MOVQ vdso_zx_vmar_map(SB), AX
CALL AX
POPQ R12
MOVQ BP, SP
MOVL AX, ret+48(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmar_unmap(handle uint32, addr uintptr, len uint) int32
TEXT runtime·vdsoCall_zx_vmar_unmap(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ addr+8(FP), SI
MOVQ len+16(FP), DX
MOVQ vdso_zx_vmar_unmap(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmar_protect(handle uint32, options uint32, addr uintptr, len uint) int32
TEXT runtime·vdsoCall_zx_vmar_protect(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ addr+8(FP), DX
MOVQ len+16(FP), CX
MOVQ vdso_zx_vmar_protect(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmar_op_range(handle uint32, op uint32, address uintptr, size uint, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmar_op_range(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL op+4(FP), SI
MOVQ address+8(FP), DX
MOVQ size+16(FP), CX
MOVQ buffer+24(FP), R8
MOVQ buffer_size+32(FP), R9
MOVQ vdso_zx_vmar_op_range(SB), AX
CALL AX
MOVL AX, ret+40(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_create(size uint64, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create(SB),NOSPLIT,$8-28
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVQ size+0(FP), DI
MOVL options+8(FP), SI
MOVQ out+16(FP), DX
MOVQ vdso_zx_vmo_create(SB), AX
CALL AX
MOVL AX, ret+24(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_read(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_read(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVL handle+0(FP), DI
MOVQ buffer+8(FP), SI
MOVQ offset+16(FP), DX
MOVQ buffer_size+24(FP), CX
MOVQ vdso_zx_vmo_read(SB), AX
CALL AX
MOVL AX, ret+32(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_write(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_write(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVL handle+0(FP), DI
MOVQ buffer+8(FP), SI
MOVQ offset+16(FP), DX
MOVQ buffer_size+24(FP), CX
MOVQ vdso_zx_vmo_write(SB), AX
CALL AX
MOVL AX, ret+32(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_get_size(handle uint32, size unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_get_size(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ size+8(FP), SI
MOVQ vdso_zx_vmo_get_size(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_set_size(handle uint32, size uint64) int32
TEXT runtime·vdsoCall_zx_vmo_set_size(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVQ size+8(FP), SI
MOVQ vdso_zx_vmo_set_size(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_op_range(handle uint32, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_op_range(SB),NOSPLIT,$8-44
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
CALL runtime·entersyscall(SB)
MOVL handle+0(FP), DI
MOVL op+4(FP), SI
MOVQ offset+8(FP), DX
MOVQ size+16(FP), CX
MOVQ buffer+24(FP), R8
MOVQ buffer_size+32(FP), R9
MOVQ vdso_zx_vmo_op_range(SB), AX
CALL AX
MOVL AX, ret+40(FP)
CALL runtime·exitsyscall(SB)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_create_child(handle uint32, options uint32, offset uint64, size uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_child(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL options+4(FP), SI
MOVQ offset+8(FP), DX
MOVQ size+16(FP), CX
MOVQ out+24(FP), R8
MOVQ vdso_zx_vmo_create_child(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_set_cache_policy(handle uint32, cache_policy uint32) int32
TEXT runtime·vdsoCall_zx_vmo_set_cache_policy(SB),NOSPLIT,$8-12
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL cache_policy+4(FP), SI
MOVQ vdso_zx_vmo_set_cache_policy(SB), AX
CALL AX
MOVL AX, ret+8(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_replace_as_executable(handle uint32, vmex uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_replace_as_executable(SB),NOSPLIT,$8-20
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL handle+0(FP), DI
MOVL vmex+4(FP), SI
MOVQ out+8(FP), DX
MOVQ vdso_zx_vmo_replace_as_executable(SB), AX
CALL AX
MOVL AX, ret+16(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_create_contiguous(bti uint32, size uint, alignment_log2 uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_contiguous(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL bti+0(FP), DI
MOVQ size+8(FP), SI
MOVL alignment_log2+16(FP), DX
MOVQ out+24(FP), CX
MOVQ vdso_zx_vmo_create_contiguous(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
// func vdsoCall_zx_vmo_create_physical(resource uint32, paddr uintptr, size uint, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_physical(SB),NOSPLIT,$8-36
GO_ARGS
NO_LOCAL_POINTERS
get_tls(CX)
MOVQ g(CX), AX
MOVQ g_m(AX), R14
PUSHQ R14
MOVQ 24(SP), DX
MOVQ DX, m_vdsoPC(R14)
LEAQ 24(SP), DX
MOVQ DX, m_vdsoSP(R14)
MOVL resource+0(FP), DI
MOVQ paddr+8(FP), SI
MOVQ size+16(FP), DX
MOVQ out+24(FP), CX
MOVQ vdso_zx_vmo_create_physical(SB), AX
CALL AX
MOVL AX, ret+32(FP)
POPQ R14
MOVQ $0, m_vdsoSP(R14)
RET
----- go-vdso-x86-calls.s END -----
----- json.json START -----
{
"syscalls": [
{
"name": "bti_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "new", "bus", "transaction", "initiator", "."
],
"requirements": [
"iommu", "must", "be", "of", "type", "ZX_OBJ_TYPE_IOMMU", "and", "have", "ZX_RIGHT_NONE", "."
],
"arguments": [
{
"name": "iommu",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "bti_id",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "bti_pin",
"attributes": [
"*"
],
"top_description": [
"Pin", "pages", "and", "grant", "devices", "access", "to", "them", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_BTI", "and", "have", "ZX_RIGHT_MAP", ".",
"vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_MAP", ".",
"If", "options", "&", "ZX_BTI_PERM_READ", ",", "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", ".",
"If", "options", "&", "ZX_BTI_PERM_WRITE", ",", "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", ".",
"If", "options", "&", "ZX_BTI_PERM_EXECUTE", ",", "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "addrs",
"type": "zx_paddr_t",
"is_array": true,
"attributes": [
]
},
{
"name": "num_addrs",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "pmt",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "bti_release_quarantine",
"attributes": [
"*"
],
"top_description": [
"Releases", "all", "quarantined", "PMTs", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_BTI", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "cache_flush",
"attributes": [
"*",
"vdsocall"
],
"top_description": [
"Flush", "CPU", "data", "and", "/", "or", "instruction", "caches", "."
],
"requirements": [
],
"arguments": [
{
"name": "addr",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "channel", "."
],
"requirements": [
],
"arguments": [
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out0",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
},
{
"name": "out1",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_read",
"attributes": [
"*",
"handle_unchecked"
],
"top_description": [
"Read", "a", "message", "from", "a", "channel", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "bytes",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "handles",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
},
{
"name": "num_bytes",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "num_handles",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual_bytes",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_handles",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_read_etc",
"attributes": [
"*"
],
"top_description": [
"Read", "a", "message", "from", "a", "channel", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "bytes",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "handles",
"type": "zx_handle_info_t",
"is_array": true,
"attributes": [
]
},
{
"name": "num_bytes",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "num_handles",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual_bytes",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_handles",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_write",
"attributes": [
"*"
],
"top_description": [
"Write", "a", "message", "to", "a", "channel", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_WRITE", ".",
"Every", "entry", "of", "handles", "must", "have", "ZX_RIGHT_TRANSFER", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "bytes",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "num_bytes",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "handles",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "num_handles",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_write_etc",
"attributes": [
"*"
],
"top_description": [
"Write", "a", "message", "to", "a", "channel", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_WRITE", ".",
"Every", "entry", "of", "handles", "must", "have", "ZX_RIGHT_TRANSFER", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "bytes",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "num_bytes",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "handles",
"type": "zx_handle_disposition_t",
"is_array": true,
"attributes": [
]
},
{
"name": "num_handles",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_call_noretry",
"attributes": [
"*",
"internal"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", ".",
"All", "wr_handles", "of", "args", "must", "have", "ZX_RIGHT_TRANSFER", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
},
{
"name": "args",
"type": "zx_channel_call_args_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "actual_bytes",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_handles",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_call_finish",
"attributes": [
"*",
"internal"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
},
{
"name": "args",
"type": "zx_channel_call_args_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "actual_bytes",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_handles",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_call",
"attributes": [
"*",
"blocking",
"vdsocall"
],
"top_description": [
"Send", "a", "message", "to", "a", "channel", "and", "await", "a", "reply", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", ".",
"All", "wr_handles", "of", "args", "must", "have", "ZX_RIGHT_TRANSFER", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
},
{
"name": "args",
"type": "zx_channel_call_args_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "actual_bytes",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_handles",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_call_etc_noretry",
"attributes": [
"*",
"internal"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", ".",
"All", "wr_handles", "of", "args", "must", "have", "ZX_RIGHT_TRANSFER", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
},
{
"name": "args",
"type": "zx_channel_call_etc_args_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_bytes",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_handles",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_call_etc_finish",
"attributes": [
"*",
"internal"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
},
{
"name": "args",
"type": "zx_channel_call_etc_args_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_bytes",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_handles",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "channel_call_etc",
"attributes": [
"*",
"blocking",
"vdsocall"
],
"top_description": [
"Send", "a", "message", "to", "a", "channel", "and", "await", "a", "reply", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", ".",
"All", "wr_handles", "of", "args", "must", "have", "ZX_RIGHT_TRANSFER", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
},
{
"name": "args",
"type": "zx_channel_call_etc_args_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_bytes",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "actual_handles",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "clock_get",
"attributes": [
"*"
],
"top_description": [
"Acquire", "the", "current", "time", "."
],
"requirements": [
],
"arguments": [
{
"name": "clock_id",
"type": "zx_clock_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_time_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "clock_get_monotonic",
"attributes": [
"*",
"vdsocall"
],
"top_description": [
"Acquire", "the", "current", "monotonic", "time", "."
],
"requirements": [
],
"arguments": [
],
"return_type": "zx_time_t"
},
{
"name": "clock_adjust",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "clock_id",
"type": "zx_clock_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "int64_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "clock_get_monotonic_via_kernel",
"attributes": [
"*",
"internal"
],
"top_description": [
],
"requirements": [
],
"arguments": [
],
"return_type": "zx_time_t"
},
{
"name": "clock_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "new", "clock", "object", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "options",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "args",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "clock_read",
"attributes": [
"*"
],
"top_description": [
"Perform", "a", "basic", "read", "of", "the", "clock", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CLOCK", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "now",
"type": "zx_time_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "clock_get_details",
"attributes": [
"*"
],
"top_description": [
"Fetch", "all", "of", "the", "low", "level", "details", "of", "the", "clock", "'", "s", "current", "status", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CLOCK", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "details",
"type": "any",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "clock_update",
"attributes": [
"*"
],
"top_description": [
"Make", "adjustments", "to", "a", "clock", "object", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CLOCK", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "args",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
}
],
"return_type": "zx_status_t"
},
{
"name": "cprng_draw_once",
"attributes": [
"*",
"internal"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "cprng_draw",
"attributes": [
"*",
"vdsocall"
],
"top_description": [
"Draw", "from", "the", "kernel", "'", "s", "CPRNG", "."
],
"requirements": [
],
"arguments": [
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "void"
},
{
"name": "cprng_add_entropy",
"attributes": [
"*"
],
"top_description": [
"Add", "entropy", "to", "the", "kernel", "CPRNG", "."
],
"requirements": [
],
"arguments": [
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "debug_read",
"attributes": [
"*"
],
"top_description": [
"Read", "a", "message", "from", "the", "debug", "serial", "port", "."
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "char",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "debug_write",
"attributes": [
"*"
],
"top_description": [
"Write", "a", "message", "to", "the", "debug", "serial", "port", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "buffer",
"type": "char",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "debug_send_command",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "char",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "debuglog_create",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "debuglog_write",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_LOG", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "debuglog_read",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_LOG", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "event_create",
"attributes": [
"*"
],
"top_description": [
"Create", "an", "event", "."
],
"requirements": [
],
"arguments": [
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "eventpair_create",
"attributes": [
"*"
],
"top_description": [
"Create", "an", "event", "pair", "."
],
"requirements": [
],
"arguments": [
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out0",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
},
{
"name": "out1",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "exception_get_thread",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "handle", "for", "the", "exception", "'", "s", "thread", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_EXCEPTION", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "exception_get_process",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "handle", "for", "the", "exception", "'", "s", "process", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_EXCEPTION", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "fifo_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "fifo", "."
],
"requirements": [
],
"arguments": [
{
"name": "elem_count",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "elem_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out0",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
},
{
"name": "out1",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "fifo_read",
"attributes": [
"*"
],
"top_description": [
"Read", "data", "from", "a", "fifo", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_FIFO", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "elem_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "data",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "data_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual_count",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "fifo_write",
"attributes": [
"*"
],
"top_description": [
"Write", "data", "to", "a", "fifo", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_FIFO", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "elem_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "data",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "count",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual_count",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "framebuffer_get_info",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "format",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "width",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "height",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "stride",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "framebuffer_set_range",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "len",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "format",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "width",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "height",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "stride",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "futex_wait",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Wait", "on", "a", "futex", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "value_ptr",
"type": "zx_futex_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "current_value",
"type": "zx_futex_t",
"is_array": false,
"attributes": [
]
},
{
"name": "new_futex_owner",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "futex_wake",
"attributes": [
"*"
],
"top_description": [
"Wake", "some", "number", "of", "threads", "waiting", "on", "a", "futex", ",", "and", "set", "the", "ownership", "of", "the", "futex", "to", "nothing", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "value_ptr",
"type": "zx_futex_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "wake_count",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "futex_requeue",
"attributes": [
"*"
],
"top_description": [
"Wake", "some", "number", "of", "threads", "waiting", "on", "a", "futex", ",", "and", "move", "more", "waiters", "to", "another", "wait", "queue", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "value_ptr",
"type": "zx_futex_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "wake_count",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "current_value",
"type": "zx_futex_t",
"is_array": false,
"attributes": [
]
},
{
"name": "requeue_ptr",
"type": "zx_futex_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "requeue_count",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "new_requeue_owner",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "futex_wake_single_owner",
"attributes": [
"*"
],
"top_description": [
"Wake", "one", "thread", "waiting", "on", "a", "futex", ",", "and", "set", "the", "ownership", "of", "the", "futex", "to", "that", "thread", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "value_ptr",
"type": "zx_futex_t",
"is_array": true,
"attributes": [
"IN"
]
}
],
"return_type": "zx_status_t"
},
{
"name": "futex_requeue_single_owner",
"attributes": [
"*"
],
"top_description": [
"Wake", "one", "thread", "waiting", "on", "a", "futex", ",", "and", "requeue", "more", "waiters", "to", "another", "futex", "wait", "queue", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "value_ptr",
"type": "zx_futex_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "current_value",
"type": "zx_futex_t",
"is_array": false,
"attributes": [
]
},
{
"name": "requeue_ptr",
"type": "zx_futex_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "requeue_count",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "new_requeue_owner",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "futex_get_owner",
"attributes": [
"*"
],
"top_description": [
"Fetch", "the", "koid", "current", "owner", "of", "a", "futex", ",", "if", "any", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "value_ptr",
"type": "zx_futex_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "koid",
"type": "zx_koid_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "guest_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "guest", "."
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_HYPERVISOR", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "guest_handle",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
},
{
"name": "vmar_handle",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "guest_set_trap",
"attributes": [
"*"
],
"top_description": [
"Sets", "a", "trap", "within", "a", "guest", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_GUEST", "and", "have", "ZX_RIGHT_WRITE", ".",
"port_handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "kind",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "addr",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "port_handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "key",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "handle_close",
"attributes": [
"*"
],
"top_description": [
"Close", "a", "handle", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "handle_close_many",
"attributes": [
"*"
],
"top_description": [
"Close", "a", "number", "of", "handles", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "handles",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "num_handles",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "handle_duplicate",
"attributes": [
"*"
],
"top_description": [
"Duplicate", "a", "handle", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_DUPLICATE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "rights",
"type": "zx_rights_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "handle_replace",
"attributes": [
"*"
],
"top_description": [
"Replace", "a", "handle", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "rights",
"type": "zx_rights_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "interrupt_create",
"attributes": [
"*"
],
"top_description": [
"Create", "an", "interrupt", "object", "."
],
"requirements": [
"src_obj", "must", "have", "resource", "kind", "ZX_RSRC_KIND_IRQ", "."
],
"arguments": [
{
"name": "src_obj",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "src_num",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_handle",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "interrupt_bind",
"attributes": [
"*"
],
"top_description": [
"Bind", "an", "interrupt", "object", "to", "a", "port", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_READ", ".",
"port_handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "port_handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "key",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "interrupt_wait",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Wait", "for", "an", "interrupt", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_WAIT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_timestamp",
"type": "zx_time_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "interrupt_destroy",
"attributes": [
"*"
],
"top_description": [
"Destroys", "an", "interrupt", "object", "."
],
"requirements": [
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "interrupt_ack",
"attributes": [
"*"
],
"top_description": [
"Acknowledge", "an", "interrupt", "and", "re", "-", "arm", "it", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "interrupt_trigger",
"attributes": [
"*"
],
"top_description": [
"Triggers", "a", "virtual", "interrupt", "object", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_SIGNAL", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "timestamp",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "interrupt_bind_vcpu",
"attributes": [
"*"
],
"top_description": [
"Bind", "an", "interrupt", "object", "to", "a", "VCPU", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_READ", ".",
"vcpu", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vcpu",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "iommu_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "new", "IOMMU", "object", "in", "the", "kernel", "."
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "type",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "desc",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "desc_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "ioports_request",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_IOPORT", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "io_addr",
"type": "uint16_t",
"is_array": false,
"attributes": [
]
},
{
"name": "len",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "ioports_release",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_IOPORT", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "io_addr",
"type": "uint16_t",
"is_array": false,
"attributes": [
]
},
{
"name": "len",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "job_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "new", "job", "."
],
"requirements": [
"parent_job", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_MANAGE_JOB", "."
],
"arguments": [
{
"name": "parent_job",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "job_set_policy",
"attributes": [
"*"
],
"top_description": [
"Set", "job", "security", "and", "resource", "policies", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_SET_POLICY", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "topic",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "policy",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "policy_size",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "job_set_critical",
"attributes": [
"*"
],
"top_description": [
"Set", "a", "process", "as", "critical", "to", "a", "job", "."
],
"requirements": [
"job", "must", "have", "ZX_RIGHT_DESTROY", ".",
"process", "must", "have", "ZX_RIGHT_WAIT", "."
],
"arguments": [
{
"name": "job",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "process",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "ktrace_read",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "data",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "offset",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "data_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "ktrace_control",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "action",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "ptr",
"type": "any",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "ktrace_write",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "id",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "arg0",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "arg1",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "nanosleep",
"attributes": [
"*",
"blocking"
],
"top_description": [
"High", "resolution", "sleep", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "ticks_get",
"attributes": [
"*",
"vdsocall"
],
"top_description": [
"Read", "the", "number", "of", "high", "-", "precision", "timer", "ticks", "since", "boot", "."
],
"requirements": [
],
"arguments": [
],
"return_type": "zx_ticks_t"
},
{
"name": "ticks_per_second",
"attributes": [
"*",
"const",
"vdsocall"
],
"top_description": [
"Read", "the", "number", "of", "high", "-", "precision", "timer", "ticks", "in", "a", "second", "."
],
"requirements": [
],
"arguments": [
],
"return_type": "zx_ticks_t"
},
{
"name": "deadline_after",
"attributes": [
"*",
"vdsocall"
],
"top_description": [
"Convert", "a", "time", "relative", "to", "now", "to", "an", "absolute", "deadline", "."
],
"requirements": [
],
"arguments": [
{
"name": "nanoseconds",
"type": "zx_duration_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_time_t"
},
{
"name": "vmar_unmap_handle_close_thread_exit",
"attributes": [
"*",
"vdsocall"
],
"top_description": [
"Unmap", "memory", ",", "close", "handle", ",", "exit", "."
],
"requirements": [
],
"arguments": [
{
"name": "vmar_handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "addr",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "close_handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "futex_wake_handle_close_thread_exit",
"attributes": [
"*",
"noreturn",
"vdsocall"
],
"top_description": [
"Write", "to", "futex", ",", "wake", "futex", ",", "close", "handle", ",", "exit", "."
],
"requirements": [
],
"arguments": [
{
"name": "value_ptr",
"type": "zx_futex_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "wake_count",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "new_value",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "close_handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "void"
},
{
"name": "ticks_get_via_kernel",
"attributes": [
"*",
"internal"
],
"top_description": [
],
"requirements": [
],
"arguments": [
],
"return_type": "zx_ticks_t"
},
{
"name": "msi_allocate",
"attributes": [
"*"
],
"top_description": [
"Allocate", "Message", "-", "Signaled", "Interrupts", "(", "MSIs", ")", "."
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "count",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_allocation",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "msi_create",
"attributes": [
"*"
],
"top_description": [
"Create", "an", "Interrupt", "object", "from", "a", "Messaged", "-", "Signaled", "Interrupt", "(", "MSI", ")", "allocation", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_MSI", ".",
"vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", ".",
"vmo", "must", "have", "ZX_RIGHT_MAP", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "msi_id",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmo_offset",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_interrupt",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "mtrace_control",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "kind",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "action",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "ptr",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "ptr_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_wait_one",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Wait", "for", "signals", "on", "an", "object", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_WAIT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "signals",
"type": "zx_signals_t",
"is_array": false,
"attributes": [
]
},
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
},
{
"name": "observed",
"type": "zx_signals_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_wait_many",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Wait", "for", "signals", "on", "multiple", "objects", "."
],
"requirements": [
"Every", "entry", "of", "items", "must", "have", "a", "handle", "field", "with", "ZX_RIGHT_WAIT", "."
],
"arguments": [
{
"name": "items",
"type": "zx_wait_item_t",
"is_array": true,
"attributes": [
]
},
{
"name": "num_items",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_wait_async",
"attributes": [
"*"
],
"top_description": [
"Subscribe", "for", "signals", "on", "an", "object", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_WAIT", ".",
"port", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "port",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "key",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "signals",
"type": "zx_signals_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_signal",
"attributes": [
"*"
],
"top_description": [
"Signal", "an", "object", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_SIGNAL", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "clear_mask",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "set_mask",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_signal_peer",
"attributes": [
"*"
],
"top_description": [
"Signal", "an", "object", "'", "s", "peer", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_SIGNAL_PEER", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "clear_mask",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "set_mask",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_get_property",
"attributes": [
"*"
],
"top_description": [
"Ask", "for", "various", "properties", "of", "various", "kernel", "objects", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_GET_PROPERTY", ".",
"If", "property", "is", "ZX_PROP_PROCESS_DEBUG_ADDR", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
"If", "property", "is", "ZX_PROP_PROCESS_BREAK_ON_LOAD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
"If", "property", "is", "ZX_PROP_PROCESS_VDSO_BASE_ADDRESS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
"If", "property", "is", "ZX_PROP_SOCKET_RX_THRESHOLD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", ".",
"If", "property", "is", "ZX_PROP_SOCKET_TX_THRESHOLD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "property",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "value",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "value_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_set_property",
"attributes": [
"*"
],
"top_description": [
"Set", "various", "properties", "of", "various", "kernel", "objects", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_SET_PROPERTY", ".",
"If", "property", "is", "ZX_PROP_PROCESS_DEBUG_ADDR", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
"If", "property", "is", "ZX_PROP_PROCESS_BREAK_ON_LOAD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
"If", "property", "is", "ZX_PROP_SOCKET_RX_THRESHOLD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", ".",
"If", "property", "is", "ZX_PROP_SOCKET_TX_THRESHOLD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", ".",
"If", "property", "is", "ZX_PROP_JOB_KILL_ON_OOM", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "property",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "value",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "value_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_get_info",
"attributes": [
"*"
],
"top_description": [
"Query", "information", "about", "an", "object", "."
],
"requirements": [
"If", "topic", "is", "ZX_INFO_PROCESS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_JOB", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_PROCESS_THREADS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_ENUMERATE", ".",
"If", "topic", "is", "ZX_INFO_JOB_CHILDREN", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_ENUMERATE", ".",
"If", "topic", "is", "ZX_INFO_JOB_PROCESSES", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_ENUMERATE", ".",
"If", "topic", "is", "ZX_INFO_THREAD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_THREAD_EXCEPTION_REPORT", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_THREAD_STATS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_TASK_STATS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_PROCESS_MAPS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_PROCESS_VMOS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_VMO", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", ".",
"If", "topic", "is", "ZX_INFO_VMAR", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_CPU_STATS", ",", "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", ".",
"If", "topic", "is", "ZX_INFO_KMEM_STATS", ",", "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", ".",
"If", "topic", "is", "ZX_INFO_RESOURCE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_RESOURCE", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_HANDLE_COUNT", ",", "handle", "must", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_BTI", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_BTI", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_PROCESS_HANDLE_STATS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_SOCKET", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_MSI", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_MSI", "and", "have", "ZX_RIGHT_INSPECT", ".",
"If", "topic", "is", "ZX_INFO_TASK_RUNTIME", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", ",", "ZX_OBJ_TYPE_PROCESS", ",", "or", "ZX_OBJ_TYPE_JOB", ",", "and", "have", "ZX_RIGHT_INSPECT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "topic",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
},
{
"name": "avail",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_get_child",
"attributes": [
"*"
],
"top_description": [
"Given", "a", "kernel", "object", "with", "children", "objects", ",", "obtain", "a", "handle", "to", "the", "child", "specified", "by", "the", "provided", "kernel", "object", "id", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_ENUMERATE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "koid",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "rights",
"type": "zx_rights_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "object_set_profile",
"attributes": [
"*"
],
"top_description": [
"Apply", "a", "scheduling", "profile", "to", "a", "thread", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_MANAGE_THREAD", ".",
"profile", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROFILE", "and", "have", "ZX_RIGHT_APPLY_PROFILE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "profile",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pager_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "new", "pager", "object", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pager_create_vmo",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "pager", "owned", "vmo", "."
],
"requirements": [
"pager", "must", "be", "of", "type", "ZX_OBJ_TYPE_PAGER", ".",
"port", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "pager",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "port",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "key",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pager_detach_vmo",
"attributes": [
"*"
],
"top_description": [
"Detaches", "a", "vmo", "from", "a", "pager", "."
],
"requirements": [
"pager", "must", "be", "of", "type", "ZX_OBJ_TYPE_PAGER", ".",
"vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "."
],
"arguments": [
{
"name": "pager",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pager_supply_pages",
"attributes": [
"*"
],
"top_description": [
"Supply", "pages", "into", "a", "pager", "owned", "vmo", "."
],
"requirements": [
"pager", "must", "be", "of", "type", "ZX_OBJ_TYPE_PAGER", ".",
"pager_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", ".",
"aux_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "pager",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "pager_vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "length",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "aux_vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "aux_offset",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pager_op_range",
"attributes": [
"*"
],
"top_description": [
"Perform", "an", "operation", "on", "a", "range", "of", "a", "pager", "owned", "vmo", "."
],
"requirements": [
"pager", "must", "be", "of", "type", "ZX_OBJ_TYPE_PAGER", ".",
"pager_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "."
],
"arguments": [
{
"name": "pager",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "op",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "pager_vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "length",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "data",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pc_firmware_tables",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "acpi_rsdp",
"type": "zx_paddr_t",
"is_array": true,
"attributes": [
]
},
{
"name": "smbios",
"type": "zx_paddr_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_get_nth_device",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "index",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_info",
"type": "zx_pcie_device_info_t",
"is_array": true,
"attributes": [
]
},
{
"name": "out_handle",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_enable_bus_master",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "enable",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_reset_device",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_config_read",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "uint16_t",
"is_array": false,
"attributes": [
]
},
{
"name": "width",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_val",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_config_write",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "uint16_t",
"is_array": false,
"attributes": [
]
},
{
"name": "width",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "val",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_cfg_pio_rw",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "bus",
"type": "uint8_t",
"is_array": false,
"attributes": [
]
},
{
"name": "dev",
"type": "uint8_t",
"is_array": false,
"attributes": [
]
},
{
"name": "func",
"type": "uint8_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "uint8_t",
"is_array": false,
"attributes": [
]
},
{
"name": "val",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
},
{
"name": "width",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "write",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_get_bar",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "bar_num",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_bar",
"type": "zx_pci_bar_t",
"is_array": true,
"attributes": [
]
},
{
"name": "out_handle",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_map_interrupt",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "which_irq",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_handle",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_query_irq_mode",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "mode",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_max_irqs",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_set_irq_mode",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "mode",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "requested_irq_count",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_init",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "init_buf",
"type": "zx_pci_init_arg_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "len",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pci_add_subtract_io_range",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "mmio",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "base",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "len",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "add",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "pmt_unpin",
"attributes": [
"*"
],
"top_description": [
"Unpin", "pages", "and", "revoke", "device", "access", "to", "them", "."
],
"requirements": [
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "port_create",
"attributes": [
"*"
],
"top_description": [
"Create", "an", "IO", "port", "."
],
"requirements": [
],
"arguments": [
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "port_queue",
"attributes": [
"*"
],
"top_description": [
"Queue", "a", "packet", "to", "a", "port", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "packet",
"type": "zx_port_packet_t",
"is_array": true,
"attributes": [
"IN"
]
}
],
"return_type": "zx_status_t"
},
{
"name": "port_wait",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Wait", "for", "a", "packet", "arrival", "in", "a", "port", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
},
{
"name": "packet",
"type": "zx_port_packet_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "port_cancel",
"attributes": [
"*"
],
"top_description": [
"Cancels", "async", "port", "notifications", "on", "an", "object", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "source",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "key",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "process_exit",
"attributes": [
"*",
"noreturn"
],
"top_description": [
"Exits", "the", "currently", "running", "process", "."
],
"requirements": [
],
"arguments": [
{
"name": "retcode",
"type": "int64_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "void"
},
{
"name": "process_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "new", "process", "."
],
"requirements": [
"job", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_MANAGE_PROCESS", "."
],
"arguments": [
{
"name": "job",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "name",
"type": "char",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "name_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "proc_handle",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
},
{
"name": "vmar_handle",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "process_start",
"attributes": [
"*"
],
"top_description": [
"Start", "execution", "on", "a", "process", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_WRITE", ".",
"thread", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_WRITE", ".",
"arg1", "must", "have", "ZX_RIGHT_TRANSFER", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "thread",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "entry",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "stack",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "arg1",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "arg2",
"type": "uintptr_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "process_read_memory",
"attributes": [
"*"
],
"top_description": [
"Read", "from", "the", "given", "process", "'", "s", "address", "space", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vaddr",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "process_write_memory",
"attributes": [
"*"
],
"top_description": [
"Write", "into", "the", "given", "process", "'", "s", "address", "space", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vaddr",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "profile_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "scheduler", "profile", "."
],
"requirements": [
"root_job", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_MANAGE_PROCESS", "."
],
"arguments": [
{
"name": "root_job",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "profile",
"type": "zx_profile_info_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "resource_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "resource", "object", "."
],
"requirements": [
"parent_rsrc", "must", "be", "of", "type", "ZX_OBJ_TYPE_RESOURCE", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "parent_rsrc",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "base",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "name",
"type": "char",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "name_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "resource_out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "smc_call",
"attributes": [
"*"
],
"top_description": [
"Make", "Secure", "Monitor", "Call", "(", "SMC", ")", "from", "user", "space", "."
],
"requirements": [
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "parameters",
"type": "zx_smc_parameters_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "out_smc_result",
"type": "zx_smc_result_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "socket_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "socket", "."
],
"requirements": [
],
"arguments": [
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out0",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
},
{
"name": "out1",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "socket_write",
"attributes": [
"*"
],
"top_description": [
"Write", "data", "to", "a", "socket", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "socket_read",
"attributes": [
"*"
],
"top_description": [
"Read", "data", "from", "a", "socket", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "socket_shutdown",
"attributes": [
"*"
],
"top_description": [
"Prevent", "reading", "or", "writing", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "stream_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "stream", "from", "a", "VMO", "."
],
"requirements": [
],
"arguments": [
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "seek",
"type": "zx_off_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_stream",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "stream_writev",
"attributes": [
"*"
],
"top_description": [
"Write", "data", "to", "a", "stream", "at", "the", "current", "seek", "offset", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vector",
"type": "zx_iovec_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "num_vector",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "stream_writev_at",
"attributes": [
"*"
],
"top_description": [
"Write", "data", "to", "a", "stream", "at", "the", "given", "offset", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "zx_off_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vector",
"type": "zx_iovec_t",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "num_vector",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "stream_readv",
"attributes": [
"*"
],
"top_description": [
"Read", "data", "from", "a", "stream", "at", "the", "current", "seek", "offset", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vector",
"type": "zx_iovec_t",
"is_array": true,
"attributes": [
]
},
{
"name": "num_vector",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "stream_readv_at",
"attributes": [
"*"
],
"top_description": [
"Read", "data", "from", "a", "stream", "at", "the", "given", "offset", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "zx_off_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vector",
"type": "zx_iovec_t",
"is_array": true,
"attributes": [
]
},
{
"name": "num_vector",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "actual",
"type": "size_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "stream_seek",
"attributes": [
"*"
],
"top_description": [
"Modify", "the", "seek", "offset", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_READ", "or", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "whence",
"type": "zx_stream_seek_origin_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "int64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out_seek",
"type": "zx_off_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_0",
"attributes": [
"*",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_1",
"attributes": [
"*",
"test_category1",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "a",
"type": "int32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_2",
"attributes": [
"*",
"test_category1",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "a",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "b",
"type": "int32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_3",
"attributes": [
"*",
"test_category2",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "a",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "b",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "c",
"type": "int32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_4",
"attributes": [
"*",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "a",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "b",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "c",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "d",
"type": "int32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_5",
"attributes": [
"*",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "a",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "b",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "c",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "d",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "e",
"type": "int32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_6",
"attributes": [
"*",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "a",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "b",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "c",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "d",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "e",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "f",
"type": "int32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_7",
"attributes": [
"*",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "a",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "b",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "c",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "d",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "e",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "f",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "g",
"type": "int32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_8",
"attributes": [
"*",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "a",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "b",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "c",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "d",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "e",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "f",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "g",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "h",
"type": "int32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_wrapper",
"attributes": [
"*",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "a",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "b",
"type": "int32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "c",
"type": "int32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "syscall_test_handle_create",
"attributes": [
"*",
"testonly"
],
"top_description": [
],
"requirements": [
],
"arguments": [
{
"name": "return_value",
"type": "zx_status_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "system_get_dcache_line_size",
"attributes": [
"*",
"const",
"vdsocall"
],
"top_description": [
],
"requirements": [
],
"arguments": [
],
"return_type": "uint32_t"
},
{
"name": "system_get_num_cpus",
"attributes": [
"*",
"const",
"vdsocall"
],
"top_description": [
"Get", "number", "of", "logical", "processors", "on", "the", "system", "."
],
"requirements": [
],
"arguments": [
],
"return_type": "uint32_t"
},
{
"name": "system_get_version_string",
"attributes": [
"*",
"const",
"vdsocall"
],
"top_description": [
"Get", "version", "string", "for", "system", "."
],
"requirements": [
],
"arguments": [
],
"return_type": "zx_string_view_t"
},
{
"name": "system_get_physmem",
"attributes": [
"*",
"vdsocall"
],
"top_description": [
"Get", "amount", "of", "physical", "memory", "on", "the", "system", "."
],
"requirements": [
],
"arguments": [
],
"return_type": "uint64_t"
},
{
"name": "system_get_features",
"attributes": [
"*",
"vdsocall"
],
"top_description": [
"Get", "supported", "hardware", "capabilities", "."
],
"requirements": [
],
"arguments": [
{
"name": "kind",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "features",
"type": "uint32_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "system_get_event",
"attributes": [
"*"
],
"top_description": [
"Retrieve", "a", "handle", "to", "a", "system", "event", "."
],
"requirements": [
"None", "."
],
"arguments": [
{
"name": "root_job",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "kind",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "event",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "system_mexec",
"attributes": [
"*"
],
"top_description": [
"Soft", "reboot", "the", "system", "with", "a", "new", "kernel", "and", "bootimage", "."
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", ".",
"kernel_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", ".",
"bootimage_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "kernel_vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "bootimage_vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "system_mexec_payload_get",
"attributes": [
"*"
],
"top_description": [
"Return", "a", "ZBI", "containing", "ZBI", "entries", "necessary", "to", "boot", "this", "system", "."
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "system_powerctl",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "cmd",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "arg",
"type": "zx_system_powerctl_arg_t",
"is_array": true,
"attributes": [
"IN"
]
}
],
"return_type": "zx_status_t"
},
{
"name": "task_suspend",
"attributes": [
"*"
],
"top_description": [
"Suspend", "the", "given", "task", ".", "Currently", "only", "thread", "or", "process", "handles", "may", "be", "suspended", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "or", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "token",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "task_suspend_token",
"attributes": [
"*"
],
"top_description": [
"Suspend", "the", "given", "task", ".", "Currently", "only", "thread", "or", "process", "handles", "may", "be", "suspended", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "or", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "token",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "task_create_exception_channel",
"attributes": [
"*"
],
"top_description": [
"Create", "an", "exception", "channel", "for", "a", "given", "job", ",", "process", ",", "or", "thread", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_INSPECT", "and", "have", "ZX_RIGHT_DUPLICATE", "and", "have", "ZX_RIGHT_TRANSFER", "and", "have", "ZX_RIGHT_MANAGE_THREAD", ".",
"If", "handle", "is", "of", "type", "ZX_OBJ_TYPE_JOB", "or", "ZX_OBJ_TYPE_PROCESS", ",", "it", "must", "have", "ZX_RIGHT_ENUMERATE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "task_kill",
"attributes": [
"*"
],
"top_description": [
"Kill", "the", "provided", "task", "(", "job", ",", "process", ",", "or", "thread", ")", "."
],
"requirements": [
"handle", "must", "have", "ZX_RIGHT_DESTROY", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "thread_exit",
"attributes": [
"*",
"noreturn"
],
"top_description": [
"Terminate", "the", "current", "running", "thread", "."
],
"requirements": [
],
"arguments": [
],
"return_type": "void"
},
{
"name": "thread_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "thread", "."
],
"requirements": [
"process", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_MANAGE_THREAD", "."
],
"arguments": [
{
"name": "process",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "name",
"type": "char",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "name_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "thread_start",
"attributes": [
"*"
],
"top_description": [
"Start", "execution", "on", "a", "thread", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_MANAGE_THREAD", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "thread_entry",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "stack",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "arg1",
"type": "uintptr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "arg2",
"type": "uintptr_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "thread_read_state",
"attributes": [
"*"
],
"top_description": [
"Read", "one", "aspect", "of", "thread", "state", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "kind",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "thread_write_state",
"attributes": [
"*"
],
"top_description": [
"Write", "one", "aspect", "of", "thread", "state", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "kind",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "timer_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "timer", "."
],
"requirements": [
],
"arguments": [
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "clock_id",
"type": "zx_clock_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "timer_set",
"attributes": [
"*"
],
"top_description": [
"Start", "a", "timer", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_TIMER", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "deadline",
"type": "zx_time_t",
"is_array": false,
"attributes": [
]
},
{
"name": "slack",
"type": "zx_duration_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "timer_cancel",
"attributes": [
"*"
],
"top_description": [
"Cancel", "a", "timer", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_TIMER", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vcpu_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "VCPU", "."
],
"requirements": [
"guest", "must", "be", "of", "type", "ZX_OBJ_TYPE_GUEST", "and", "have", "ZX_RIGHT_MANAGE_PROCESS", "."
],
"arguments": [
{
"name": "guest",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "entry",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vcpu_resume",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Resume", "execution", "of", "a", "VCPU", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_EXECUTE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "packet",
"type": "zx_port_packet_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vcpu_interrupt",
"attributes": [
"*"
],
"top_description": [
"Raise", "an", "interrupt", "on", "a", "VCPU", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_SIGNAL", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vector",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vcpu_read_state",
"attributes": [
"*"
],
"top_description": [
"Read", "the", "state", "of", "a", "VCPU", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "kind",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vcpu_write_state",
"attributes": [
"*"
],
"top_description": [
"Write", "the", "state", "of", "a", "VCPU", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "kind",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmar_allocate",
"attributes": [
"*"
],
"top_description": [
"Allocate", "a", "new", "subregion", "."
],
"requirements": [
"If", "options", "&", "ZX_VM_CAN_MAP_READ", ",", "parent_vmar", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_READ", ".",
"If", "options", "&", "ZX_VM_CAN_MAP_WRITE", ",", "parent_vmar", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_WRITE", ".",
"If", "options", "&", "ZX_VM_CAN_MAP_EXECUTE", ",", "parent_vmar", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_EXECUTE", "."
],
"arguments": [
{
"name": "parent_vmar",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "zx_vm_option_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "child_vmar",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
},
{
"name": "child_addr",
"type": "zx_vaddr_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmar_destroy",
"attributes": [
"*"
],
"top_description": [
"Destroy", "a", "virtual", "memory", "address", "region", "."
],
"requirements": [
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmar_map",
"attributes": [
"*"
],
"top_description": [
"Add", "a", "memory", "mapping", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", ".",
"vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "zx_vm_option_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmar_offset",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmo",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmo_offset",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "len",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "mapped_addr",
"type": "zx_vaddr_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmar_unmap",
"attributes": [
"*"
],
"top_description": [
"Unmap", "virtual", "memory", "pages", "."
],
"requirements": [
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "addr",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "len",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmar_protect",
"attributes": [
"*"
],
"top_description": [
"Set", "protection", "of", "virtual", "memory", "pages", "."
],
"requirements": [
"If", "options", "&", "ZX_VM_PERM_READ", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_READ", ".",
"If", "options", "&", "ZX_VM_PERM_WRITE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_WRITE", ".",
"If", "options", "&", "ZX_VM_PERM_EXECUTE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_EXECUTE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "zx_vm_option_t",
"is_array": false,
"attributes": [
]
},
{
"name": "addr",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "len",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmar_op_range",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Perform", "an", "operation", "on", "VMOs", "mapped", "into", "this", "VMAR", "."
],
"requirements": [
"If", "op", "is", "ZX_VMO_OP_DECOMMIT", ",", "affected", "mappings", "must", "be", "writable", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "op",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "address",
"type": "zx_vaddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_create",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "VM", "object", "."
],
"requirements": [
],
"arguments": [
{
"name": "size",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_read",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Read", "bytes", "from", "the", "VMO", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "offset",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_write",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Write", "bytes", "to", "the", "VMO", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
"IN"
]
},
{
"name": "offset",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_get_size",
"attributes": [
"*"
],
"top_description": [
"Read", "the", "current", "size", "of", "a", "VMO", "object", "."
],
"requirements": [
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "uint64_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_set_size",
"attributes": [
"*"
],
"top_description": [
"Resize", "a", "VMO", "object", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_op_range",
"attributes": [
"*",
"blocking"
],
"top_description": [
"Perform", "an", "operation", "on", "a", "range", "of", "a", "VMO", "."
],
"requirements": [
"If", "op", "is", "ZX_VMO_OP_COMMIT", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", ".",
"If", "op", "is", "ZX_VMO_OP_DECOMMIT", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", ".",
"If", "op", "is", "ZX_VMO_OP_CACHE_SYNC", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", ".",
"If", "op", "is", "ZX_VMO_OP_CACHE_INVALIDATE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", ".",
"If", "op", "is", "ZX_VMO_OP_CACHE_CLEAN", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", ".",
"If", "op", "is", "ZX_VMO_OP_CACHE_CLEAN_INVALIDATE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "op",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "buffer",
"type": "any",
"is_array": true,
"attributes": [
]
},
{
"name": "buffer_size",
"type": "size_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_create_child",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "child", "of", "a", "VM", "Object", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_DUPLICATE", "and", "have", "ZX_RIGHT_READ", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "options",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "offset",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "uint64_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_set_cache_policy",
"attributes": [
"*"
],
"top_description": [
"Set", "the", "caching", "policy", "for", "pages", "held", "by", "a", "VMO", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_MAP", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "cache_policy",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_replace_as_executable",
"attributes": [
"*"
],
"top_description": [
"Add", "execute", "rights", "to", "a", "VMO", "."
],
"requirements": [
"handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", ".",
"vmex", "must", "have", "resource", "kind", "ZX_RSRC_KIND_VMEX", "."
],
"arguments": [
{
"name": "handle",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "vmex",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_create_contiguous",
"attributes": [
"*"
],
"top_description": [
],
"requirements": [
"bti", "must", "be", "of", "type", "ZX_OBJ_TYPE_BTI", "and", "have", "ZX_RIGHT_MAP", "."
],
"arguments": [
{
"name": "bti",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "alignment_log2",
"type": "uint32_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
},
{
"name": "vmo_create_physical",
"attributes": [
"*"
],
"top_description": [
"Create", "a", "VM", "object", "referring", "to", "a", "specific", "contiguous", "range", "of", "physical", "memory", "."
],
"requirements": [
"resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_MMIO", "."
],
"arguments": [
{
"name": "resource",
"type": "zx_handle_t",
"is_array": false,
"attributes": [
]
},
{
"name": "paddr",
"type": "zx_paddr_t",
"is_array": false,
"attributes": [
]
},
{
"name": "size",
"type": "size_t",
"is_array": false,
"attributes": [
]
},
{
"name": "out",
"type": "zx_handle_t",
"is_array": true,
"attributes": [
]
}
],
"return_type": "zx_status_t"
}
]
}
----- json.json END -----
----- kernel-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
KERNEL_SYSCALL(bti_create, zx_status_t, /* no attributes */, 4,
(iommu, options, bti_id, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t iommu,
uint32_t options,
uint64_t bti_id,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(bti_pin, zx_status_t, /* no attributes */, 8,
(handle, options, vmo, offset, size, addrs, num_addrs, pmt), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
uint64_t offset,
uint64_t size,
user_out_ptr<zx_paddr_t> addrs,
size_t num_addrs,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* pmt))
KERNEL_SYSCALL(bti_release_quarantine, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
VDSO_SYSCALL(cache_flush, zx_status_t, /* no attributes */, 3,
(addr, size, options), (
user_in_ptr<const void> addr,
size_t size,
uint32_t options))
KERNEL_SYSCALL(channel_create, zx_status_t, /* no attributes */, 3,
(options, out0, out1), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out1))
KERNEL_SYSCALL(channel_read, zx_status_t, /* no attributes */, 8,
(handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("FuchsiaUnchecked")) zx_handle_t handle,
uint32_t options,
user_out_ptr<void> bytes,
_ZX_SYSCALL_ANNO(acquire_handle("FuchsiaUnchecked")) user_out_ptr<zx_handle_t> handles,
uint32_t num_bytes,
uint32_t num_handles,
user_out_ptr<uint32_t> actual_bytes,
user_out_ptr<uint32_t> actual_handles))
KERNEL_SYSCALL(channel_read_etc, zx_status_t, /* no attributes */, 8,
(handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
user_out_ptr<void> bytes,
user_out_ptr<zx_handle_info_t> handles,
uint32_t num_bytes,
uint32_t num_handles,
user_out_ptr<uint32_t> actual_bytes,
user_out_ptr<uint32_t> actual_handles))
KERNEL_SYSCALL(channel_write, zx_status_t, /* no attributes */, 6,
(handle, options, bytes, num_bytes, handles, num_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
user_in_ptr<const void> bytes,
uint32_t num_bytes,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) user_in_ptr<const zx_handle_t> handles,
uint32_t num_handles))
KERNEL_SYSCALL(channel_write_etc, zx_status_t, /* no attributes */, 6,
(handle, options, bytes, num_bytes, handles, num_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
user_in_ptr<const void> bytes,
uint32_t num_bytes,
user_inout_ptr<zx_handle_disposition_t> handles,
uint32_t num_handles))
INTERNAL_SYSCALL(channel_call_noretry, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
user_in_ptr<const zx_channel_call_args_t> args,
user_out_ptr<uint32_t> actual_bytes,
user_out_ptr<uint32_t> actual_handles))
INTERNAL_SYSCALL(channel_call_finish, zx_status_t, /* no attributes */, 4,
(deadline, args, actual_bytes, actual_handles), (
zx_time_t deadline,
user_in_ptr<const zx_channel_call_args_t> args,
user_out_ptr<uint32_t> actual_bytes,
user_out_ptr<uint32_t> actual_handles))
VDSO_SYSCALL(channel_call, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
user_in_ptr<const zx_channel_call_args_t> args,
user_out_ptr<uint32_t> actual_bytes,
user_out_ptr<uint32_t> actual_handles))
INTERNAL_SYSCALL(channel_call_etc_noretry, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
user_inout_ptr<zx_channel_call_etc_args_t> args,
user_out_ptr<uint32_t> actual_bytes,
user_out_ptr<uint32_t> actual_handles))
INTERNAL_SYSCALL(channel_call_etc_finish, zx_status_t, /* no attributes */, 4,
(deadline, args, actual_bytes, actual_handles), (
zx_time_t deadline,
user_inout_ptr<zx_channel_call_etc_args_t> args,
user_out_ptr<uint32_t> actual_bytes,
user_out_ptr<uint32_t> actual_handles))
VDSO_SYSCALL(channel_call_etc, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
user_inout_ptr<zx_channel_call_etc_args_t> args,
user_out_ptr<uint32_t> actual_bytes,
user_out_ptr<uint32_t> actual_handles))
KERNEL_SYSCALL(clock_get, zx_status_t, /* no attributes */, 2,
(clock_id, out), (
zx_clock_t clock_id,
user_out_ptr<zx_time_t> out))
VDSO_SYSCALL(clock_get_monotonic, zx_time_t, /* no attributes */, 0,
(), (void))
KERNEL_SYSCALL(clock_adjust, zx_status_t, /* no attributes */, 3,
(handle, clock_id, offset), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_clock_t clock_id,
int64_t offset))
INTERNAL_SYSCALL(clock_get_monotonic_via_kernel, zx_time_t, /* no attributes */, 0,
(), (void))
KERNEL_SYSCALL(clock_create, zx_status_t, /* no attributes */, 3,
(options, args, out), (
uint64_t options,
user_in_ptr<const void> args,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(clock_read, zx_status_t, /* no attributes */, 2,
(handle, now), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_out_ptr<zx_time_t> now))
KERNEL_SYSCALL(clock_get_details, zx_status_t, /* no attributes */, 3,
(handle, options, details), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t options,
user_out_ptr<void> details))
KERNEL_SYSCALL(clock_update, zx_status_t, /* no attributes */, 3,
(handle, options, args), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t options,
user_in_ptr<const void> args))
INTERNAL_SYSCALL(cprng_draw_once, zx_status_t, /* no attributes */, 2,
(buffer, buffer_size), (
user_out_ptr<void> buffer,
size_t buffer_size))
VDSO_SYSCALL(cprng_draw, void, /* no attributes */, 2,
(buffer, buffer_size), (
user_out_ptr<void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(cprng_add_entropy, zx_status_t, /* no attributes */, 2,
(buffer, buffer_size), (
user_in_ptr<const void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(debug_read, zx_status_t, /* no attributes */, 4,
(handle, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_out_ptr<char> buffer,
size_t buffer_size,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(debug_write, zx_status_t, /* no attributes */, 2,
(buffer, buffer_size), (
user_in_ptr<const char> buffer,
size_t buffer_size))
KERNEL_SYSCALL(debug_send_command, zx_status_t, /* no attributes */, 3,
(resource, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
user_in_ptr<const char> buffer,
size_t buffer_size))
KERNEL_SYSCALL(debuglog_create, zx_status_t, /* no attributes */, 3,
(resource, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(debuglog_write, zx_status_t, /* no attributes */, 4,
(handle, options, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
user_in_ptr<const void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(debuglog_read, zx_status_t, /* no attributes */, 4,
(handle, options, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
user_out_ptr<void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(event_create, zx_status_t, /* no attributes */, 2,
(options, out), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(eventpair_create, zx_status_t, /* no attributes */, 3,
(options, out0, out1), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out1))
KERNEL_SYSCALL(exception_get_thread, zx_status_t, /* no attributes */, 2,
(handle, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(exception_get_process, zx_status_t, /* no attributes */, 2,
(handle, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(fifo_create, zx_status_t, /* no attributes */, 5,
(elem_count, elem_size, options, out0, out1), (
size_t elem_count,
size_t elem_size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out1))
KERNEL_SYSCALL(fifo_read, zx_status_t, /* no attributes */, 5,
(handle, elem_size, data, data_size, actual_count), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
size_t elem_size,
user_out_ptr<void> data,
size_t data_size,
user_out_ptr<size_t> actual_count))
KERNEL_SYSCALL(fifo_write, zx_status_t, /* no attributes */, 5,
(handle, elem_size, data, count, actual_count), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
size_t elem_size,
user_in_ptr<const void> data,
size_t count,
user_out_ptr<size_t> actual_count))
KERNEL_SYSCALL(framebuffer_get_info, zx_status_t, /* no attributes */, 5,
(resource, format, width, height, stride), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
user_out_ptr<uint32_t> format,
user_out_ptr<uint32_t> width,
user_out_ptr<uint32_t> height,
user_out_ptr<uint32_t> stride))
KERNEL_SYSCALL(framebuffer_set_range, zx_status_t, /* no attributes */, 7,
(resource, vmo, len, format, width, height, stride), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
uint32_t len,
uint32_t format,
uint32_t width,
uint32_t height,
uint32_t stride))
BLOCKING_SYSCALL(futex_wait, zx_status_t, /* no attributes */, 4,
(value_ptr, current_value, new_futex_owner, deadline), (
user_in_ptr<const zx_futex_t> value_ptr,
zx_futex_t current_value,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_futex_owner,
zx_time_t deadline))
KERNEL_SYSCALL(futex_wake, zx_status_t, /* no attributes */, 2,
(value_ptr, wake_count), (
user_in_ptr<const zx_futex_t> value_ptr,
uint32_t wake_count))
KERNEL_SYSCALL(futex_requeue, zx_status_t, /* no attributes */, 6,
(value_ptr, wake_count, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
user_in_ptr<const zx_futex_t> value_ptr,
uint32_t wake_count,
zx_futex_t current_value,
user_in_ptr<const zx_futex_t> requeue_ptr,
uint32_t requeue_count,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))
KERNEL_SYSCALL(futex_wake_single_owner, zx_status_t, /* no attributes */, 1,
(value_ptr), (
user_in_ptr<const zx_futex_t> value_ptr))
KERNEL_SYSCALL(futex_requeue_single_owner, zx_status_t, /* no attributes */, 5,
(value_ptr, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
user_in_ptr<const zx_futex_t> value_ptr,
zx_futex_t current_value,
user_in_ptr<const zx_futex_t> requeue_ptr,
uint32_t requeue_count,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))
KERNEL_SYSCALL(futex_get_owner, zx_status_t, /* no attributes */, 2,
(value_ptr, koid), (
user_in_ptr<const zx_futex_t> value_ptr,
user_out_ptr<zx_koid_t> koid))
KERNEL_SYSCALL(guest_create, zx_status_t, /* no attributes */, 4,
(resource, options, guest_handle, vmar_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* guest_handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* vmar_handle))
KERNEL_SYSCALL(guest_set_trap, zx_status_t, /* no attributes */, 6,
(handle, kind, addr, size, port_handle, key), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
zx_vaddr_t addr,
size_t size,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
uint64_t key))
KERNEL_SYSCALL(handle_close, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(handle_close_many, zx_status_t, /* no attributes */, 2,
(handles, num_handles), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) user_in_ptr<const zx_handle_t> handles,
size_t num_handles))
KERNEL_SYSCALL(handle_duplicate, zx_status_t, /* no attributes */, 3,
(handle, rights, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_rights_t rights,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(handle_replace, zx_status_t, /* no attributes */, 3,
(handle, rights, out), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
zx_rights_t rights,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(interrupt_create, zx_status_t, /* no attributes */, 4,
(src_obj, src_num, options, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t src_obj,
uint32_t src_num,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_handle))
KERNEL_SYSCALL(interrupt_bind, zx_status_t, /* no attributes */, 4,
(handle, port_handle, key, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
uint64_t key,
uint32_t options))
BLOCKING_SYSCALL(interrupt_wait, zx_status_t, /* no attributes */, 2,
(handle, out_timestamp), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_out_ptr<zx_time_t> out_timestamp))
KERNEL_SYSCALL(interrupt_destroy, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(interrupt_ack, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(interrupt_trigger, zx_status_t, /* no attributes */, 3,
(handle, options, timestamp), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t timestamp))
KERNEL_SYSCALL(interrupt_bind_vcpu, zx_status_t, /* no attributes */, 3,
(handle, vcpu, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vcpu,
uint32_t options))
KERNEL_SYSCALL(iommu_create, zx_status_t, /* no attributes */, 5,
(resource, type, desc, desc_size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t type,
user_in_ptr<const void> desc,
size_t desc_size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(ioports_request, zx_status_t, /* no attributes */, 3,
(resource, io_addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint16_t io_addr,
uint32_t len))
KERNEL_SYSCALL(ioports_release, zx_status_t, /* no attributes */, 3,
(resource, io_addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint16_t io_addr,
uint32_t len))
KERNEL_SYSCALL(job_create, zx_status_t, /* no attributes */, 3,
(parent_job, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_job,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(job_set_policy, zx_status_t, /* no attributes */, 5,
(handle, options, topic, policy, policy_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
uint32_t topic,
user_in_ptr<const void> policy,
uint32_t policy_size))
KERNEL_SYSCALL(job_set_critical, zx_status_t, /* no attributes */, 3,
(job, options, process), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process))
KERNEL_SYSCALL(ktrace_read, zx_status_t, /* no attributes */, 5,
(handle, data, offset, data_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_out_ptr<void> data,
uint32_t offset,
size_t data_size,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(ktrace_control, zx_status_t, /* no attributes */, 4,
(handle, action, options, ptr), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t action,
uint32_t options,
user_inout_ptr<void> ptr))
KERNEL_SYSCALL(ktrace_write, zx_status_t, /* no attributes */, 4,
(handle, id, arg0, arg1), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t id,
uint32_t arg0,
uint32_t arg1))
BLOCKING_SYSCALL(nanosleep, zx_status_t, /* no attributes */, 1,
(deadline), (
zx_time_t deadline))
VDSO_SYSCALL(ticks_get, zx_ticks_t, /* no attributes */, 0,
(), (void))
VDSO_SYSCALL(ticks_per_second, zx_ticks_t, __CONST, 0,
(), (void))
VDSO_SYSCALL(deadline_after, zx_time_t, /* no attributes */, 1,
(nanoseconds), (
zx_duration_t nanoseconds))
VDSO_SYSCALL(vmar_unmap_handle_close_thread_exit, zx_status_t, /* no attributes */, 4,
(vmar_handle, addr, size, close_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmar_handle,
zx_vaddr_t addr,
size_t size,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))
VDSO_SYSCALL(futex_wake_handle_close_thread_exit, void, __NO_RETURN, 4,
(value_ptr, wake_count, new_value, close_handle), (
user_in_ptr<const zx_futex_t> value_ptr,
uint32_t wake_count,
int32_t new_value,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))
INTERNAL_SYSCALL(ticks_get_via_kernel, zx_ticks_t, /* no attributes */, 0,
(), (void))
KERNEL_SYSCALL(msi_allocate, zx_status_t, /* no attributes */, 3,
(handle, count, out_allocation), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t count,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_allocation))
KERNEL_SYSCALL(msi_create, zx_status_t, /* no attributes */, 6,
(handle, options, msi_id, vmo, vmo_offset, out_interrupt), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
uint32_t msi_id,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
size_t vmo_offset,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_interrupt))
KERNEL_SYSCALL(mtrace_control, zx_status_t, /* no attributes */, 6,
(handle, kind, action, options, ptr, ptr_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
uint32_t action,
uint32_t options,
user_inout_ptr<void> ptr,
size_t ptr_size))
BLOCKING_SYSCALL(object_wait_one, zx_status_t, /* no attributes */, 4,
(handle, signals, deadline, observed), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_signals_t signals,
zx_time_t deadline,
user_out_ptr<zx_signals_t> observed))
BLOCKING_SYSCALL(object_wait_many, zx_status_t, /* no attributes */, 3,
(items, num_items, deadline), (
user_inout_ptr<zx_wait_item_t> items,
size_t num_items,
zx_time_t deadline))
KERNEL_SYSCALL(object_wait_async, zx_status_t, /* no attributes */, 5,
(handle, port, key, signals, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
uint64_t key,
zx_signals_t signals,
uint32_t options))
KERNEL_SYSCALL(object_signal, zx_status_t, /* no attributes */, 3,
(handle, clear_mask, set_mask), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t clear_mask,
uint32_t set_mask))
KERNEL_SYSCALL(object_signal_peer, zx_status_t, /* no attributes */, 3,
(handle, clear_mask, set_mask), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t clear_mask,
uint32_t set_mask))
KERNEL_SYSCALL(object_get_property, zx_status_t, /* no attributes */, 4,
(handle, property, value, value_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t property,
user_out_ptr<void> value,
size_t value_size))
KERNEL_SYSCALL(object_set_property, zx_status_t, /* no attributes */, 4,
(handle, property, value, value_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t property,
user_in_ptr<const void> value,
size_t value_size))
KERNEL_SYSCALL(object_get_info, zx_status_t, /* no attributes */, 6,
(handle, topic, buffer, buffer_size, actual, avail), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t topic,
user_out_ptr<void> buffer,
size_t buffer_size,
user_out_ptr<size_t> actual,
user_out_ptr<size_t> avail))
KERNEL_SYSCALL(object_get_child, zx_status_t, /* no attributes */, 4,
(handle, koid, rights, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t koid,
zx_rights_t rights,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(object_set_profile, zx_status_t, /* no attributes */, 3,
(handle, profile, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t profile,
uint32_t options))
KERNEL_SYSCALL(pager_create, zx_status_t, /* no attributes */, 2,
(options, out), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(pager_create_vmo, zx_status_t, /* no attributes */, 6,
(pager, options, port, key, size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
uint64_t key,
uint64_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(pager_detach_vmo, zx_status_t, /* no attributes */, 2,
(pager, vmo), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo))
KERNEL_SYSCALL(pager_supply_pages, zx_status_t, /* no attributes */, 6,
(pager, pager_vmo, offset, length, aux_vmo, aux_offset), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
uint64_t offset,
uint64_t length,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t aux_vmo,
uint64_t aux_offset))
KERNEL_SYSCALL(pager_op_range, zx_status_t, /* no attributes */, 6,
(pager, op, pager_vmo, offset, length, data), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
uint32_t op,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
uint64_t offset,
uint64_t length,
uint64_t data))
KERNEL_SYSCALL(pc_firmware_tables, zx_status_t, /* no attributes */, 3,
(handle, acpi_rsdp, smbios), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_out_ptr<zx_paddr_t> acpi_rsdp,
user_out_ptr<zx_paddr_t> smbios))
KERNEL_SYSCALL(pci_get_nth_device, zx_status_t, /* no attributes */, 4,
(handle, index, out_info, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t index,
user_out_ptr<zx_pcie_device_info_t> out_info,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_handle))
KERNEL_SYSCALL(pci_enable_bus_master, zx_status_t, /* no attributes */, 2,
(handle, enable), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t enable))
KERNEL_SYSCALL(pci_reset_device, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(pci_config_read, zx_status_t, /* no attributes */, 4,
(handle, offset, width, out_val), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint16_t offset,
size_t width,
user_out_ptr<uint32_t> out_val))
KERNEL_SYSCALL(pci_config_write, zx_status_t, /* no attributes */, 4,
(handle, offset, width, val), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint16_t offset,
size_t width,
uint32_t val))
KERNEL_SYSCALL(pci_cfg_pio_rw, zx_status_t, /* no attributes */, 8,
(handle, bus, dev, func, offset, val, width, write), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint8_t bus,
uint8_t dev,
uint8_t func,
uint8_t offset,
user_inout_ptr<uint32_t> val,
size_t width,
uint32_t write))
KERNEL_SYSCALL(pci_get_bar, zx_status_t, /* no attributes */, 4,
(handle, bar_num, out_bar, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t bar_num,
user_out_ptr<zx_pci_bar_t> out_bar,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_handle))
KERNEL_SYSCALL(pci_map_interrupt, zx_status_t, /* no attributes */, 3,
(handle, which_irq, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
int32_t which_irq,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_handle))
KERNEL_SYSCALL(pci_query_irq_mode, zx_status_t, /* no attributes */, 3,
(handle, mode, out_max_irqs), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t mode,
user_out_ptr<uint32_t> out_max_irqs))
KERNEL_SYSCALL(pci_set_irq_mode, zx_status_t, /* no attributes */, 3,
(handle, mode, requested_irq_count), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t mode,
uint32_t requested_irq_count))
KERNEL_SYSCALL(pci_init, zx_status_t, /* no attributes */, 3,
(handle, init_buf, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_in_ptr<const zx_pci_init_arg_t> init_buf,
uint32_t len))
KERNEL_SYSCALL(pci_add_subtract_io_range, zx_status_t, /* no attributes */, 5,
(handle, mmio, base, len, add), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t mmio,
uint64_t base,
uint64_t len,
uint32_t add))
KERNEL_SYSCALL(pmt_unpin, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(port_create, zx_status_t, /* no attributes */, 2,
(options, out), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(port_queue, zx_status_t, /* no attributes */, 2,
(handle, packet), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_in_ptr<const zx_port_packet_t> packet))
BLOCKING_SYSCALL(port_wait, zx_status_t, /* no attributes */, 3,
(handle, deadline, packet), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t deadline,
user_out_ptr<zx_port_packet_t> packet))
KERNEL_SYSCALL(port_cancel, zx_status_t, /* no attributes */, 3,
(handle, source, key), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t source,
uint64_t key))
KERNEL_SYSCALL(process_exit, void, __NO_RETURN, 1,
(retcode), (
int64_t retcode))
KERNEL_SYSCALL(process_create, zx_status_t, /* no attributes */, 6,
(job, name, name_size, options, proc_handle, vmar_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
user_in_ptr<const char> name,
size_t name_size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* proc_handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* vmar_handle))
KERNEL_SYSCALL(process_start, zx_status_t, /* no attributes */, 6,
(handle, thread, entry, stack, arg1, arg2), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t thread,
zx_vaddr_t entry,
zx_vaddr_t stack,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t arg1,
uintptr_t arg2))
KERNEL_SYSCALL(process_read_memory, zx_status_t, /* no attributes */, 5,
(handle, vaddr, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t vaddr,
user_out_ptr<void> buffer,
size_t buffer_size,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(process_write_memory, zx_status_t, /* no attributes */, 5,
(handle, vaddr, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t vaddr,
user_in_ptr<const void> buffer,
size_t buffer_size,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(profile_create, zx_status_t, /* no attributes */, 4,
(root_job, options, profile, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
uint32_t options,
user_in_ptr<const zx_profile_info_t> profile,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(resource_create, zx_status_t, /* no attributes */, 7,
(parent_rsrc, options, base, size, name, name_size, resource_out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_rsrc,
uint32_t options,
uint64_t base,
size_t size,
user_in_ptr<const char> name,
size_t name_size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* resource_out))
KERNEL_SYSCALL(smc_call, zx_status_t, /* no attributes */, 3,
(handle, parameters, out_smc_result), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_in_ptr<const zx_smc_parameters_t> parameters,
user_out_ptr<zx_smc_result_t> out_smc_result))
KERNEL_SYSCALL(socket_create, zx_status_t, /* no attributes */, 3,
(options, out0, out1), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out1))
KERNEL_SYSCALL(socket_write, zx_status_t, /* no attributes */, 5,
(handle, options, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
user_in_ptr<const void> buffer,
size_t buffer_size,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(socket_read, zx_status_t, /* no attributes */, 5,
(handle, options, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
user_out_ptr<void> buffer,
size_t buffer_size,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(socket_shutdown, zx_status_t, /* no attributes */, 2,
(handle, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options))
KERNEL_SYSCALL(stream_create, zx_status_t, /* no attributes */, 4,
(options, vmo, seek, out_stream), (
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
zx_off_t seek,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_stream))
KERNEL_SYSCALL(stream_writev, zx_status_t, /* no attributes */, 5,
(handle, options, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
user_in_ptr<const zx_iovec_t> vector,
size_t num_vector,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(stream_writev_at, zx_status_t, /* no attributes */, 6,
(handle, options, offset, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_off_t offset,
user_in_ptr<const zx_iovec_t> vector,
size_t num_vector,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(stream_readv, zx_status_t, /* no attributes */, 5,
(handle, options, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
user_out_ptr<zx_iovec_t> vector,
size_t num_vector,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(stream_readv_at, zx_status_t, /* no attributes */, 6,
(handle, options, offset, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_off_t offset,
user_out_ptr<zx_iovec_t> vector,
size_t num_vector,
user_out_ptr<size_t> actual))
KERNEL_SYSCALL(stream_seek, zx_status_t, /* no attributes */, 4,
(handle, whence, offset, out_seek), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_stream_seek_origin_t whence,
int64_t offset,
user_out_ptr<zx_off_t> out_seek))
KERNEL_SYSCALL(syscall_test_0, zx_status_t, /* no attributes */, 0,
(), (void))
KERNEL_SYSCALL(syscall_test_1, zx_status_t, /* no attributes */, 1,
(a), (
int32_t a))
KERNEL_SYSCALL(syscall_test_2, zx_status_t, /* no attributes */, 2,
(a, b), (
int32_t a,
int32_t b))
KERNEL_SYSCALL(syscall_test_3, zx_status_t, /* no attributes */, 3,
(a, b, c), (
int32_t a,
int32_t b,
int32_t c))
KERNEL_SYSCALL(syscall_test_4, zx_status_t, /* no attributes */, 4,
(a, b, c, d), (
int32_t a,
int32_t b,
int32_t c,
int32_t d))
KERNEL_SYSCALL(syscall_test_5, zx_status_t, /* no attributes */, 5,
(a, b, c, d, e), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e))
KERNEL_SYSCALL(syscall_test_6, zx_status_t, /* no attributes */, 6,
(a, b, c, d, e, f), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e,
int32_t f))
KERNEL_SYSCALL(syscall_test_7, zx_status_t, /* no attributes */, 7,
(a, b, c, d, e, f, g), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e,
int32_t f,
int32_t g))
KERNEL_SYSCALL(syscall_test_8, zx_status_t, /* no attributes */, 8,
(a, b, c, d, e, f, g, h), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e,
int32_t f,
int32_t g,
int32_t h))
KERNEL_SYSCALL(syscall_test_wrapper, zx_status_t, /* no attributes */, 3,
(a, b, c), (
int32_t a,
int32_t b,
int32_t c))
KERNEL_SYSCALL(syscall_test_handle_create, zx_status_t, /* no attributes */, 2,
(return_value, out), (
zx_status_t return_value,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
VDSO_SYSCALL(system_get_dcache_line_size, uint32_t, __CONST, 0,
(), (void))
VDSO_SYSCALL(system_get_num_cpus, uint32_t, __CONST, 0,
(), (void))
VDSO_SYSCALL(system_get_version_string, zx_string_view_t, __CONST, 0,
(), (void))
VDSO_SYSCALL(system_get_physmem, uint64_t, /* no attributes */, 0,
(), (void))
VDSO_SYSCALL(system_get_features, zx_status_t, /* no attributes */, 2,
(kind, features), (
uint32_t kind,
user_out_ptr<uint32_t> features))
KERNEL_SYSCALL(system_get_event, zx_status_t, /* no attributes */, 3,
(root_job, kind, event), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
uint32_t kind,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* event))
KERNEL_SYSCALL(system_mexec, zx_status_t, /* no attributes */, 3,
(resource, kernel_vmo, bootimage_vmo), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t kernel_vmo,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bootimage_vmo))
KERNEL_SYSCALL(system_mexec_payload_get, zx_status_t, /* no attributes */, 3,
(resource, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
user_out_ptr<void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(system_powerctl, zx_status_t, /* no attributes */, 3,
(resource, cmd, arg), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t cmd,
user_in_ptr<const zx_system_powerctl_arg_t> arg))
KERNEL_SYSCALL(task_suspend, zx_status_t, /* no attributes */, 2,
(handle, token), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* token))
KERNEL_SYSCALL(task_suspend_token, zx_status_t, /* no attributes */, 2,
(handle, token), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* token))
KERNEL_SYSCALL(task_create_exception_channel, zx_status_t, /* no attributes */, 3,
(handle, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(task_kill, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(thread_exit, void, __NO_RETURN, 0,
(), (void))
KERNEL_SYSCALL(thread_create, zx_status_t, /* no attributes */, 5,
(process, name, name_size, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process,
user_in_ptr<const char> name,
size_t name_size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(thread_start, zx_status_t, /* no attributes */, 5,
(handle, thread_entry, stack, arg1, arg2), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t thread_entry,
zx_vaddr_t stack,
uintptr_t arg1,
uintptr_t arg2))
KERNEL_SYSCALL(thread_read_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
user_out_ptr<void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(thread_write_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
user_in_ptr<const void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(timer_create, zx_status_t, /* no attributes */, 3,
(options, clock_id, out), (
uint32_t options,
zx_clock_t clock_id,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(timer_set, zx_status_t, /* no attributes */, 3,
(handle, deadline, slack), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t deadline,
zx_duration_t slack))
KERNEL_SYSCALL(timer_cancel, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(vcpu_create, zx_status_t, /* no attributes */, 4,
(guest, options, entry, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t guest,
uint32_t options,
zx_vaddr_t entry,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
BLOCKING_SYSCALL(vcpu_resume, zx_status_t, /* no attributes */, 2,
(handle, packet), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_out_ptr<zx_port_packet_t> packet))
KERNEL_SYSCALL(vcpu_interrupt, zx_status_t, /* no attributes */, 2,
(handle, vector), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t vector))
KERNEL_SYSCALL(vcpu_read_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
user_out_ptr<void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(vcpu_write_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
user_in_ptr<const void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(vmar_allocate, zx_status_t, /* no attributes */, 6,
(parent_vmar, options, offset, size, child_vmar, child_addr), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_vmar,
zx_vm_option_t options,
size_t offset,
size_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* child_vmar,
user_out_ptr<zx_vaddr_t> child_addr))
KERNEL_SYSCALL(vmar_destroy, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(vmar_map, zx_status_t, /* no attributes */, 7,
(handle, options, vmar_offset, vmo, vmo_offset, len, mapped_addr), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vm_option_t options,
size_t vmar_offset,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
uint64_t vmo_offset,
size_t len,
user_out_ptr<zx_vaddr_t> mapped_addr))
KERNEL_SYSCALL(vmar_unmap, zx_status_t, /* no attributes */, 3,
(handle, addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t addr,
size_t len))
KERNEL_SYSCALL(vmar_protect, zx_status_t, /* no attributes */, 4,
(handle, options, addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vm_option_t options,
zx_vaddr_t addr,
size_t len))
KERNEL_SYSCALL(vmar_op_range, zx_status_t, /* no attributes */, 6,
(handle, op, address, size, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t op,
zx_vaddr_t address,
size_t size,
user_inout_ptr<void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(vmo_create, zx_status_t, /* no attributes */, 3,
(size, options, out), (
uint64_t size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
BLOCKING_SYSCALL(vmo_read, zx_status_t, /* no attributes */, 4,
(handle, buffer, offset, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_out_ptr<void> buffer,
uint64_t offset,
size_t buffer_size))
BLOCKING_SYSCALL(vmo_write, zx_status_t, /* no attributes */, 4,
(handle, buffer, offset, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_in_ptr<const void> buffer,
uint64_t offset,
size_t buffer_size))
KERNEL_SYSCALL(vmo_get_size, zx_status_t, /* no attributes */, 2,
(handle, size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
user_out_ptr<uint64_t> size))
KERNEL_SYSCALL(vmo_set_size, zx_status_t, /* no attributes */, 2,
(handle, size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t size))
BLOCKING_SYSCALL(vmo_op_range, zx_status_t, /* no attributes */, 6,
(handle, op, offset, size, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t op,
uint64_t offset,
uint64_t size,
user_inout_ptr<void> buffer,
size_t buffer_size))
KERNEL_SYSCALL(vmo_create_child, zx_status_t, /* no attributes */, 5,
(handle, options, offset, size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
uint64_t offset,
uint64_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(vmo_set_cache_policy, zx_status_t, /* no attributes */, 2,
(handle, cache_policy), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t cache_policy))
KERNEL_SYSCALL(vmo_replace_as_executable, zx_status_t, /* no attributes */, 3,
(handle, vmex, out), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmex,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(vmo_create_contiguous, zx_status_t, /* no attributes */, 4,
(bti, size, alignment_log2, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bti,
size_t size,
uint32_t alignment_log2,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
KERNEL_SYSCALL(vmo_create_physical, zx_status_t, /* no attributes */, 4,
(resource, paddr, size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
zx_paddr_t paddr,
size_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))
----- kernel-header.h END -----
----- kernel-wrappers.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
extern "C" {
syscall_result wrapper_bti_create(zx_handle_t iommu, uint32_t options, uint64_t bti_id, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_bti_create, pc, &VDso::ValidSyscallPC::bti_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_bti_create(iommu, options, bti_id, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_bti_pin(zx_handle_t handle, uint32_t options, zx_handle_t vmo, uint64_t offset, uint64_t size, zx_paddr_t* addrs, size_t num_addrs, zx_handle_t* pmt, uint64_t pc) {
return do_syscall(ZX_SYS_bti_pin, pc, &VDso::ValidSyscallPC::bti_pin, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_pmt;
auto result = sys_bti_pin(handle, options, vmo, offset, size, make_user_out_ptr(addrs), num_addrs, &out_handle_pmt);
if (result != ZX_OK)
return result;
if (out_handle_pmt.begin_copyout(current_process, make_user_out_ptr(pmt)))
return ZX_ERR_INVALID_ARGS;
out_handle_pmt.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_bti_release_quarantine(zx_handle_t handle, uint64_t pc) {
return do_syscall(ZX_SYS_bti_release_quarantine, pc, &VDso::ValidSyscallPC::bti_release_quarantine, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_bti_release_quarantine(handle);
return result;
});
}
syscall_result wrapper_channel_create(uint32_t options, zx_handle_t* out0, zx_handle_t* out1, uint64_t pc) {
return do_syscall(ZX_SYS_channel_create, pc, &VDso::ValidSyscallPC::channel_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out0;
user_out_handle out_handle_out1;
auto result = sys_channel_create(options, &out_handle_out0, &out_handle_out1);
if (result != ZX_OK)
return result;
if (out_handle_out0.begin_copyout(current_process, make_user_out_ptr(out0)))
return ZX_ERR_INVALID_ARGS;
if (out_handle_out1.begin_copyout(current_process, make_user_out_ptr(out1)))
return ZX_ERR_INVALID_ARGS;
out_handle_out0.finish_copyout(current_process);
out_handle_out1.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_channel_read(zx_handle_t handle, uint32_t options, void* bytes, zx_handle_t* handles, uint32_t num_bytes, uint32_t num_handles, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
return do_syscall(ZX_SYS_channel_read, pc, &VDso::ValidSyscallPC::channel_read, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_channel_read(handle, options, make_user_out_ptr(bytes), make_user_out_ptr(handles), num_bytes, num_handles, make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
return result;
});
}
syscall_result wrapper_channel_read_etc(zx_handle_t handle, uint32_t options, void* bytes, zx_handle_info_t* handles, uint32_t num_bytes, uint32_t num_handles, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
return do_syscall(ZX_SYS_channel_read_etc, pc, &VDso::ValidSyscallPC::channel_read_etc, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_channel_read_etc(handle, options, make_user_out_ptr(bytes), make_user_out_ptr(handles), num_bytes, num_handles, make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
return result;
});
}
syscall_result wrapper_channel_write(zx_handle_t handle, uint32_t options, const void* bytes, uint32_t num_bytes, const zx_handle_t* handles, uint32_t num_handles, uint64_t pc) {
return do_syscall(ZX_SYS_channel_write, pc, &VDso::ValidSyscallPC::channel_write, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_channel_write(handle, options, make_user_in_ptr(bytes), num_bytes, make_user_in_ptr(handles), num_handles);
return result;
});
}
syscall_result wrapper_channel_write_etc(zx_handle_t handle, uint32_t options, const void* bytes, uint32_t num_bytes, zx_handle_disposition_t* handles, uint32_t num_handles, uint64_t pc) {
return do_syscall(ZX_SYS_channel_write_etc, pc, &VDso::ValidSyscallPC::channel_write_etc, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_channel_write_etc(handle, options, make_user_in_ptr(bytes), num_bytes, make_user_inout_ptr(handles), num_handles);
return result;
});
}
syscall_result wrapper_channel_call_noretry(zx_handle_t handle, uint32_t options, zx_time_t deadline, const zx_channel_call_args_t* args, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
return do_syscall(ZX_SYS_channel_call_noretry, pc, &VDso::ValidSyscallPC::channel_call_noretry, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_channel_call_noretry(handle, options, deadline, make_user_in_ptr(args), make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
return result;
});
}
syscall_result wrapper_channel_call_finish(zx_time_t deadline, const zx_channel_call_args_t* args, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
return do_syscall(ZX_SYS_channel_call_finish, pc, &VDso::ValidSyscallPC::channel_call_finish, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_channel_call_finish(deadline, make_user_in_ptr(args), make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
return result;
});
}
syscall_result wrapper_channel_call_etc_noretry(zx_handle_t handle, uint32_t options, zx_time_t deadline, zx_channel_call_etc_args_t* args, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
return do_syscall(ZX_SYS_channel_call_etc_noretry, pc, &VDso::ValidSyscallPC::channel_call_etc_noretry, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_channel_call_etc_noretry(handle, options, deadline, make_user_inout_ptr(args), make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
return result;
});
}
syscall_result wrapper_channel_call_etc_finish(zx_time_t deadline, zx_channel_call_etc_args_t* args, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
return do_syscall(ZX_SYS_channel_call_etc_finish, pc, &VDso::ValidSyscallPC::channel_call_etc_finish, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_channel_call_etc_finish(deadline, make_user_inout_ptr(args), make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
return result;
});
}
syscall_result wrapper_clock_get(zx_clock_t clock_id, zx_time_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_clock_get, pc, &VDso::ValidSyscallPC::clock_get, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_clock_get(clock_id, make_user_out_ptr(out));
return result;
});
}
syscall_result wrapper_clock_adjust(zx_handle_t handle, zx_clock_t clock_id, int64_t offset, uint64_t pc) {
return do_syscall(ZX_SYS_clock_adjust, pc, &VDso::ValidSyscallPC::clock_adjust, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_clock_adjust(handle, clock_id, offset);
return result;
});
}
syscall_result wrapper_clock_get_monotonic_via_kernel(uint64_t pc) {
return do_syscall(ZX_SYS_clock_get_monotonic_via_kernel, pc, &VDso::ValidSyscallPC::clock_get_monotonic_via_kernel, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_clock_get_monotonic_via_kernel();
return result;
});
}
syscall_result wrapper_clock_create(uint64_t options, const void* args, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_clock_create, pc, &VDso::ValidSyscallPC::clock_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_clock_create(options, make_user_in_ptr(args), &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_clock_read(zx_handle_t handle, zx_time_t* now, uint64_t pc) {
return do_syscall(ZX_SYS_clock_read, pc, &VDso::ValidSyscallPC::clock_read, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_clock_read(handle, make_user_out_ptr(now));
return result;
});
}
syscall_result wrapper_clock_get_details(zx_handle_t handle, uint64_t options, void* details, uint64_t pc) {
return do_syscall(ZX_SYS_clock_get_details, pc, &VDso::ValidSyscallPC::clock_get_details, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_clock_get_details(handle, options, make_user_out_ptr(details));
return result;
});
}
syscall_result wrapper_clock_update(zx_handle_t handle, uint64_t options, const void* args, uint64_t pc) {
return do_syscall(ZX_SYS_clock_update, pc, &VDso::ValidSyscallPC::clock_update, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_clock_update(handle, options, make_user_in_ptr(args));
return result;
});
}
syscall_result wrapper_cprng_draw_once(void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_cprng_draw_once, pc, &VDso::ValidSyscallPC::cprng_draw_once, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_cprng_draw_once(make_user_out_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_cprng_add_entropy(const void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_cprng_add_entropy, pc, &VDso::ValidSyscallPC::cprng_add_entropy, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_cprng_add_entropy(make_user_in_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_debug_read(zx_handle_t handle, char* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_debug_read, pc, &VDso::ValidSyscallPC::debug_read, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_debug_read(handle, make_user_out_ptr(buffer), buffer_size, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_debug_write(const char* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_debug_write, pc, &VDso::ValidSyscallPC::debug_write, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_debug_write(make_user_in_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_debug_send_command(zx_handle_t resource, const char* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_debug_send_command, pc, &VDso::ValidSyscallPC::debug_send_command, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_debug_send_command(resource, make_user_in_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_debuglog_create(zx_handle_t resource, uint32_t options, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_debuglog_create, pc, &VDso::ValidSyscallPC::debuglog_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_debuglog_create(resource, options, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_debuglog_write(zx_handle_t handle, uint32_t options, const void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_debuglog_write, pc, &VDso::ValidSyscallPC::debuglog_write, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_debuglog_write(handle, options, make_user_in_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_debuglog_read(zx_handle_t handle, uint32_t options, void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_debuglog_read, pc, &VDso::ValidSyscallPC::debuglog_read, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_debuglog_read(handle, options, make_user_out_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_event_create(uint32_t options, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_event_create, pc, &VDso::ValidSyscallPC::event_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_event_create(options, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_eventpair_create(uint32_t options, zx_handle_t* out0, zx_handle_t* out1, uint64_t pc) {
return do_syscall(ZX_SYS_eventpair_create, pc, &VDso::ValidSyscallPC::eventpair_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out0;
user_out_handle out_handle_out1;
auto result = sys_eventpair_create(options, &out_handle_out0, &out_handle_out1);
if (result != ZX_OK)
return result;
if (out_handle_out0.begin_copyout(current_process, make_user_out_ptr(out0)))
return ZX_ERR_INVALID_ARGS;
if (out_handle_out1.begin_copyout(current_process, make_user_out_ptr(out1)))
return ZX_ERR_INVALID_ARGS;
out_handle_out0.finish_copyout(current_process);
out_handle_out1.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_exception_get_thread(zx_handle_t handle, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_exception_get_thread, pc, &VDso::ValidSyscallPC::exception_get_thread, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_exception_get_thread(handle, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_exception_get_process(zx_handle_t handle, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_exception_get_process, pc, &VDso::ValidSyscallPC::exception_get_process, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_exception_get_process(handle, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_fifo_create(size_t elem_count, size_t elem_size, uint32_t options, zx_handle_t* out0, zx_handle_t* out1, uint64_t pc) {
return do_syscall(ZX_SYS_fifo_create, pc, &VDso::ValidSyscallPC::fifo_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out0;
user_out_handle out_handle_out1;
auto result = sys_fifo_create(elem_count, elem_size, options, &out_handle_out0, &out_handle_out1);
if (result != ZX_OK)
return result;
if (out_handle_out0.begin_copyout(current_process, make_user_out_ptr(out0)))
return ZX_ERR_INVALID_ARGS;
if (out_handle_out1.begin_copyout(current_process, make_user_out_ptr(out1)))
return ZX_ERR_INVALID_ARGS;
out_handle_out0.finish_copyout(current_process);
out_handle_out1.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_fifo_read(zx_handle_t handle, size_t elem_size, void* data, size_t data_size, size_t* actual_count, uint64_t pc) {
return do_syscall(ZX_SYS_fifo_read, pc, &VDso::ValidSyscallPC::fifo_read, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_fifo_read(handle, elem_size, make_user_out_ptr(data), data_size, make_user_out_ptr(actual_count));
return result;
});
}
syscall_result wrapper_fifo_write(zx_handle_t handle, size_t elem_size, const void* data, size_t count, size_t* actual_count, uint64_t pc) {
return do_syscall(ZX_SYS_fifo_write, pc, &VDso::ValidSyscallPC::fifo_write, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_fifo_write(handle, elem_size, make_user_in_ptr(data), count, make_user_out_ptr(actual_count));
return result;
});
}
syscall_result wrapper_framebuffer_get_info(zx_handle_t resource, uint32_t* format, uint32_t* width, uint32_t* height, uint32_t* stride, uint64_t pc) {
return do_syscall(ZX_SYS_framebuffer_get_info, pc, &VDso::ValidSyscallPC::framebuffer_get_info, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_framebuffer_get_info(resource, make_user_out_ptr(format), make_user_out_ptr(width), make_user_out_ptr(height), make_user_out_ptr(stride));
return result;
});
}
syscall_result wrapper_framebuffer_set_range(zx_handle_t resource, zx_handle_t vmo, uint32_t len, uint32_t format, uint32_t width, uint32_t height, uint32_t stride, uint64_t pc) {
return do_syscall(ZX_SYS_framebuffer_set_range, pc, &VDso::ValidSyscallPC::framebuffer_set_range, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_framebuffer_set_range(resource, vmo, len, format, width, height, stride);
return result;
});
}
syscall_result wrapper_futex_wait(const zx_futex_t* value_ptr, zx_futex_t current_value, zx_handle_t new_futex_owner, zx_time_t deadline, uint64_t pc) {
return do_syscall(ZX_SYS_futex_wait, pc, &VDso::ValidSyscallPC::futex_wait, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_futex_wait(make_user_in_ptr(value_ptr), current_value, new_futex_owner, deadline);
return result;
});
}
syscall_result wrapper_futex_wake(const zx_futex_t* value_ptr, uint32_t wake_count, uint64_t pc) {
return do_syscall(ZX_SYS_futex_wake, pc, &VDso::ValidSyscallPC::futex_wake, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_futex_wake(make_user_in_ptr(value_ptr), wake_count);
return result;
});
}
syscall_result wrapper_futex_requeue(const zx_futex_t* value_ptr, uint32_t wake_count, zx_futex_t current_value, const zx_futex_t* requeue_ptr, uint32_t requeue_count, zx_handle_t new_requeue_owner, uint64_t pc) {
return do_syscall(ZX_SYS_futex_requeue, pc, &VDso::ValidSyscallPC::futex_requeue, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_futex_requeue(make_user_in_ptr(value_ptr), wake_count, current_value, make_user_in_ptr(requeue_ptr), requeue_count, new_requeue_owner);
return result;
});
}
syscall_result wrapper_futex_wake_single_owner(const zx_futex_t* value_ptr, uint64_t pc) {
return do_syscall(ZX_SYS_futex_wake_single_owner, pc, &VDso::ValidSyscallPC::futex_wake_single_owner, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_futex_wake_single_owner(make_user_in_ptr(value_ptr));
return result;
});
}
syscall_result wrapper_futex_requeue_single_owner(const zx_futex_t* value_ptr, zx_futex_t current_value, const zx_futex_t* requeue_ptr, uint32_t requeue_count, zx_handle_t new_requeue_owner, uint64_t pc) {
return do_syscall(ZX_SYS_futex_requeue_single_owner, pc, &VDso::ValidSyscallPC::futex_requeue_single_owner, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_futex_requeue_single_owner(make_user_in_ptr(value_ptr), current_value, make_user_in_ptr(requeue_ptr), requeue_count, new_requeue_owner);
return result;
});
}
syscall_result wrapper_futex_get_owner(const zx_futex_t* value_ptr, zx_koid_t* koid, uint64_t pc) {
return do_syscall(ZX_SYS_futex_get_owner, pc, &VDso::ValidSyscallPC::futex_get_owner, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_futex_get_owner(make_user_in_ptr(value_ptr), make_user_out_ptr(koid));
return result;
});
}
syscall_result wrapper_guest_create(zx_handle_t resource, uint32_t options, zx_handle_t* guest_handle, zx_handle_t* vmar_handle, uint64_t pc) {
return do_syscall(ZX_SYS_guest_create, pc, &VDso::ValidSyscallPC::guest_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_guest_handle;
user_out_handle out_handle_vmar_handle;
auto result = sys_guest_create(resource, options, &out_handle_guest_handle, &out_handle_vmar_handle);
if (result != ZX_OK)
return result;
if (out_handle_guest_handle.begin_copyout(current_process, make_user_out_ptr(guest_handle)))
return ZX_ERR_INVALID_ARGS;
if (out_handle_vmar_handle.begin_copyout(current_process, make_user_out_ptr(vmar_handle)))
return ZX_ERR_INVALID_ARGS;
out_handle_guest_handle.finish_copyout(current_process);
out_handle_vmar_handle.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_guest_set_trap(zx_handle_t handle, uint32_t kind, zx_vaddr_t addr, size_t size, zx_handle_t port_handle, uint64_t key, uint64_t pc) {
return do_syscall(ZX_SYS_guest_set_trap, pc, &VDso::ValidSyscallPC::guest_set_trap, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_guest_set_trap(handle, kind, addr, size, port_handle, key);
return result;
});
}
syscall_result wrapper_handle_close(zx_handle_t handle, uint64_t pc) {
return do_syscall(ZX_SYS_handle_close, pc, &VDso::ValidSyscallPC::handle_close, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_handle_close(handle);
return result;
});
}
syscall_result wrapper_handle_close_many(const zx_handle_t* handles, size_t num_handles, uint64_t pc) {
return do_syscall(ZX_SYS_handle_close_many, pc, &VDso::ValidSyscallPC::handle_close_many, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_handle_close_many(make_user_in_ptr(handles), num_handles);
return result;
});
}
syscall_result wrapper_handle_duplicate(zx_handle_t handle, zx_rights_t rights, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_handle_duplicate, pc, &VDso::ValidSyscallPC::handle_duplicate, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_handle_duplicate(handle, rights, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_handle_replace(zx_handle_t handle, zx_rights_t rights, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_handle_replace, pc, &VDso::ValidSyscallPC::handle_replace, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_handle_replace(handle, rights, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_interrupt_create(zx_handle_t src_obj, uint32_t src_num, uint32_t options, zx_handle_t* out_handle, uint64_t pc) {
return do_syscall(ZX_SYS_interrupt_create, pc, &VDso::ValidSyscallPC::interrupt_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out_handle;
auto result = sys_interrupt_create(src_obj, src_num, options, &out_handle_out_handle);
if (result != ZX_OK)
return result;
if (out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(out_handle)))
return ZX_ERR_INVALID_ARGS;
out_handle_out_handle.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_interrupt_bind(zx_handle_t handle, zx_handle_t port_handle, uint64_t key, uint32_t options, uint64_t pc) {
return do_syscall(ZX_SYS_interrupt_bind, pc, &VDso::ValidSyscallPC::interrupt_bind, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_interrupt_bind(handle, port_handle, key, options);
return result;
});
}
syscall_result wrapper_interrupt_wait(zx_handle_t handle, zx_time_t* out_timestamp, uint64_t pc) {
return do_syscall(ZX_SYS_interrupt_wait, pc, &VDso::ValidSyscallPC::interrupt_wait, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_interrupt_wait(handle, make_user_out_ptr(out_timestamp));
return result;
});
}
syscall_result wrapper_interrupt_destroy(zx_handle_t handle, uint64_t pc) {
return do_syscall(ZX_SYS_interrupt_destroy, pc, &VDso::ValidSyscallPC::interrupt_destroy, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_interrupt_destroy(handle);
return result;
});
}
syscall_result wrapper_interrupt_ack(zx_handle_t handle, uint64_t pc) {
return do_syscall(ZX_SYS_interrupt_ack, pc, &VDso::ValidSyscallPC::interrupt_ack, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_interrupt_ack(handle);
return result;
});
}
syscall_result wrapper_interrupt_trigger(zx_handle_t handle, uint32_t options, zx_time_t timestamp, uint64_t pc) {
return do_syscall(ZX_SYS_interrupt_trigger, pc, &VDso::ValidSyscallPC::interrupt_trigger, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_interrupt_trigger(handle, options, timestamp);
return result;
});
}
syscall_result wrapper_interrupt_bind_vcpu(zx_handle_t handle, zx_handle_t vcpu, uint32_t options, uint64_t pc) {
return do_syscall(ZX_SYS_interrupt_bind_vcpu, pc, &VDso::ValidSyscallPC::interrupt_bind_vcpu, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_interrupt_bind_vcpu(handle, vcpu, options);
return result;
});
}
syscall_result wrapper_iommu_create(zx_handle_t resource, uint32_t type, const void* desc, size_t desc_size, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_iommu_create, pc, &VDso::ValidSyscallPC::iommu_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_iommu_create(resource, type, make_user_in_ptr(desc), desc_size, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_ioports_request(zx_handle_t resource, uint16_t io_addr, uint32_t len, uint64_t pc) {
return do_syscall(ZX_SYS_ioports_request, pc, &VDso::ValidSyscallPC::ioports_request, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_ioports_request(resource, io_addr, len);
return result;
});
}
syscall_result wrapper_ioports_release(zx_handle_t resource, uint16_t io_addr, uint32_t len, uint64_t pc) {
return do_syscall(ZX_SYS_ioports_release, pc, &VDso::ValidSyscallPC::ioports_release, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_ioports_release(resource, io_addr, len);
return result;
});
}
syscall_result wrapper_job_create(zx_handle_t parent_job, uint32_t options, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_job_create, pc, &VDso::ValidSyscallPC::job_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_job_create(parent_job, options, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_job_set_policy(zx_handle_t handle, uint32_t options, uint32_t topic, const void* policy, uint32_t policy_size, uint64_t pc) {
return do_syscall(ZX_SYS_job_set_policy, pc, &VDso::ValidSyscallPC::job_set_policy, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_job_set_policy(handle, options, topic, make_user_in_ptr(policy), policy_size);
return result;
});
}
syscall_result wrapper_job_set_critical(zx_handle_t job, uint32_t options, zx_handle_t process, uint64_t pc) {
return do_syscall(ZX_SYS_job_set_critical, pc, &VDso::ValidSyscallPC::job_set_critical, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_job_set_critical(job, options, process);
return result;
});
}
syscall_result wrapper_ktrace_read(zx_handle_t handle, void* data, uint32_t offset, size_t data_size, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_ktrace_read, pc, &VDso::ValidSyscallPC::ktrace_read, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_ktrace_read(handle, make_user_out_ptr(data), offset, data_size, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_ktrace_control(zx_handle_t handle, uint32_t action, uint32_t options, void* ptr, uint64_t pc) {
return do_syscall(ZX_SYS_ktrace_control, pc, &VDso::ValidSyscallPC::ktrace_control, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_ktrace_control(handle, action, options, make_user_inout_ptr(ptr));
return result;
});
}
syscall_result wrapper_ktrace_write(zx_handle_t handle, uint32_t id, uint32_t arg0, uint32_t arg1, uint64_t pc) {
return do_syscall(ZX_SYS_ktrace_write, pc, &VDso::ValidSyscallPC::ktrace_write, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_ktrace_write(handle, id, arg0, arg1);
return result;
});
}
syscall_result wrapper_nanosleep(zx_time_t deadline, uint64_t pc) {
return do_syscall(ZX_SYS_nanosleep, pc, &VDso::ValidSyscallPC::nanosleep, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_nanosleep(deadline);
return result;
});
}
syscall_result wrapper_ticks_get_via_kernel(uint64_t pc) {
return do_syscall(ZX_SYS_ticks_get_via_kernel, pc, &VDso::ValidSyscallPC::ticks_get_via_kernel, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_ticks_get_via_kernel();
return result;
});
}
syscall_result wrapper_msi_allocate(zx_handle_t handle, uint32_t count, zx_handle_t* out_allocation, uint64_t pc) {
return do_syscall(ZX_SYS_msi_allocate, pc, &VDso::ValidSyscallPC::msi_allocate, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out_allocation;
auto result = sys_msi_allocate(handle, count, &out_handle_out_allocation);
if (result != ZX_OK)
return result;
if (out_handle_out_allocation.begin_copyout(current_process, make_user_out_ptr(out_allocation)))
return ZX_ERR_INVALID_ARGS;
out_handle_out_allocation.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_msi_create(zx_handle_t handle, uint32_t options, uint32_t msi_id, zx_handle_t vmo, size_t vmo_offset, zx_handle_t* out_interrupt, uint64_t pc) {
return do_syscall(ZX_SYS_msi_create, pc, &VDso::ValidSyscallPC::msi_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out_interrupt;
auto result = sys_msi_create(handle, options, msi_id, vmo, vmo_offset, &out_handle_out_interrupt);
if (result != ZX_OK)
return result;
if (out_handle_out_interrupt.begin_copyout(current_process, make_user_out_ptr(out_interrupt)))
return ZX_ERR_INVALID_ARGS;
out_handle_out_interrupt.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_mtrace_control(zx_handle_t handle, uint32_t kind, uint32_t action, uint32_t options, void* ptr, size_t ptr_size, uint64_t pc) {
return do_syscall(ZX_SYS_mtrace_control, pc, &VDso::ValidSyscallPC::mtrace_control, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_mtrace_control(handle, kind, action, options, make_user_inout_ptr(ptr), ptr_size);
return result;
});
}
syscall_result wrapper_object_wait_one(zx_handle_t handle, zx_signals_t signals, zx_time_t deadline, zx_signals_t* observed, uint64_t pc) {
return do_syscall(ZX_SYS_object_wait_one, pc, &VDso::ValidSyscallPC::object_wait_one, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_object_wait_one(handle, signals, deadline, make_user_out_ptr(observed));
return result;
});
}
syscall_result wrapper_object_wait_many(zx_wait_item_t* items, size_t num_items, zx_time_t deadline, uint64_t pc) {
return do_syscall(ZX_SYS_object_wait_many, pc, &VDso::ValidSyscallPC::object_wait_many, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_object_wait_many(make_user_inout_ptr(items), num_items, deadline);
return result;
});
}
syscall_result wrapper_object_wait_async(zx_handle_t handle, zx_handle_t port, uint64_t key, zx_signals_t signals, uint32_t options, uint64_t pc) {
return do_syscall(ZX_SYS_object_wait_async, pc, &VDso::ValidSyscallPC::object_wait_async, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_object_wait_async(handle, port, key, signals, options);
return result;
});
}
syscall_result wrapper_object_signal(zx_handle_t handle, uint32_t clear_mask, uint32_t set_mask, uint64_t pc) {
return do_syscall(ZX_SYS_object_signal, pc, &VDso::ValidSyscallPC::object_signal, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_object_signal(handle, clear_mask, set_mask);
return result;
});
}
syscall_result wrapper_object_signal_peer(zx_handle_t handle, uint32_t clear_mask, uint32_t set_mask, uint64_t pc) {
return do_syscall(ZX_SYS_object_signal_peer, pc, &VDso::ValidSyscallPC::object_signal_peer, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_object_signal_peer(handle, clear_mask, set_mask);
return result;
});
}
syscall_result wrapper_object_get_property(zx_handle_t handle, uint32_t property, void* value, size_t value_size, uint64_t pc) {
return do_syscall(ZX_SYS_object_get_property, pc, &VDso::ValidSyscallPC::object_get_property, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_object_get_property(handle, property, make_user_out_ptr(value), value_size);
return result;
});
}
syscall_result wrapper_object_set_property(zx_handle_t handle, uint32_t property, const void* value, size_t value_size, uint64_t pc) {
return do_syscall(ZX_SYS_object_set_property, pc, &VDso::ValidSyscallPC::object_set_property, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_object_set_property(handle, property, make_user_in_ptr(value), value_size);
return result;
});
}
syscall_result wrapper_object_get_info(zx_handle_t handle, uint32_t topic, void* buffer, size_t buffer_size, size_t* actual, size_t* avail, uint64_t pc) {
return do_syscall(ZX_SYS_object_get_info, pc, &VDso::ValidSyscallPC::object_get_info, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_object_get_info(handle, topic, make_user_out_ptr(buffer), buffer_size, make_user_out_ptr(actual), make_user_out_ptr(avail));
return result;
});
}
syscall_result wrapper_object_get_child(zx_handle_t handle, uint64_t koid, zx_rights_t rights, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_object_get_child, pc, &VDso::ValidSyscallPC::object_get_child, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_object_get_child(handle, koid, rights, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_object_set_profile(zx_handle_t handle, zx_handle_t profile, uint32_t options, uint64_t pc) {
return do_syscall(ZX_SYS_object_set_profile, pc, &VDso::ValidSyscallPC::object_set_profile, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_object_set_profile(handle, profile, options);
return result;
});
}
syscall_result wrapper_pager_create(uint32_t options, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_pager_create, pc, &VDso::ValidSyscallPC::pager_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_pager_create(options, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_pager_create_vmo(zx_handle_t pager, uint32_t options, zx_handle_t port, uint64_t key, uint64_t size, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_pager_create_vmo, pc, &VDso::ValidSyscallPC::pager_create_vmo, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_pager_create_vmo(pager, options, port, key, size, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_pager_detach_vmo(zx_handle_t pager, zx_handle_t vmo, uint64_t pc) {
return do_syscall(ZX_SYS_pager_detach_vmo, pc, &VDso::ValidSyscallPC::pager_detach_vmo, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pager_detach_vmo(pager, vmo);
return result;
});
}
syscall_result wrapper_pager_supply_pages(zx_handle_t pager, zx_handle_t pager_vmo, uint64_t offset, uint64_t length, zx_handle_t aux_vmo, uint64_t aux_offset, uint64_t pc) {
return do_syscall(ZX_SYS_pager_supply_pages, pc, &VDso::ValidSyscallPC::pager_supply_pages, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pager_supply_pages(pager, pager_vmo, offset, length, aux_vmo, aux_offset);
return result;
});
}
syscall_result wrapper_pager_op_range(zx_handle_t pager, uint32_t op, zx_handle_t pager_vmo, uint64_t offset, uint64_t length, uint64_t data, uint64_t pc) {
return do_syscall(ZX_SYS_pager_op_range, pc, &VDso::ValidSyscallPC::pager_op_range, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pager_op_range(pager, op, pager_vmo, offset, length, data);
return result;
});
}
syscall_result wrapper_pc_firmware_tables(zx_handle_t handle, zx_paddr_t* acpi_rsdp, zx_paddr_t* smbios, uint64_t pc) {
return do_syscall(ZX_SYS_pc_firmware_tables, pc, &VDso::ValidSyscallPC::pc_firmware_tables, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pc_firmware_tables(handle, make_user_out_ptr(acpi_rsdp), make_user_out_ptr(smbios));
return result;
});
}
syscall_result wrapper_pci_get_nth_device(zx_handle_t handle, uint32_t index, zx_pcie_device_info_t* out_info, zx_handle_t* out_handle, uint64_t pc) {
return do_syscall(ZX_SYS_pci_get_nth_device, pc, &VDso::ValidSyscallPC::pci_get_nth_device, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out_handle;
auto result = sys_pci_get_nth_device(handle, index, make_user_out_ptr(out_info), &out_handle_out_handle);
if (result != ZX_OK)
return result;
if (out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(out_handle)))
return ZX_ERR_INVALID_ARGS;
out_handle_out_handle.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_pci_enable_bus_master(zx_handle_t handle, uint32_t enable, uint64_t pc) {
return do_syscall(ZX_SYS_pci_enable_bus_master, pc, &VDso::ValidSyscallPC::pci_enable_bus_master, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pci_enable_bus_master(handle, enable);
return result;
});
}
syscall_result wrapper_pci_reset_device(zx_handle_t handle, uint64_t pc) {
return do_syscall(ZX_SYS_pci_reset_device, pc, &VDso::ValidSyscallPC::pci_reset_device, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pci_reset_device(handle);
return result;
});
}
syscall_result wrapper_pci_config_read(zx_handle_t handle, uint16_t offset, size_t width, uint32_t* out_val, uint64_t pc) {
return do_syscall(ZX_SYS_pci_config_read, pc, &VDso::ValidSyscallPC::pci_config_read, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pci_config_read(handle, offset, width, make_user_out_ptr(out_val));
return result;
});
}
syscall_result wrapper_pci_config_write(zx_handle_t handle, uint16_t offset, size_t width, uint32_t val, uint64_t pc) {
return do_syscall(ZX_SYS_pci_config_write, pc, &VDso::ValidSyscallPC::pci_config_write, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pci_config_write(handle, offset, width, val);
return result;
});
}
syscall_result wrapper_pci_cfg_pio_rw(zx_handle_t handle, uint8_t bus, uint8_t dev, uint8_t func, uint8_t offset, uint32_t* val, size_t width, uint32_t write, uint64_t pc) {
return do_syscall(ZX_SYS_pci_cfg_pio_rw, pc, &VDso::ValidSyscallPC::pci_cfg_pio_rw, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pci_cfg_pio_rw(handle, bus, dev, func, offset, make_user_inout_ptr(val), width, write);
return result;
});
}
syscall_result wrapper_pci_get_bar(zx_handle_t handle, uint32_t bar_num, zx_pci_bar_t* out_bar, zx_handle_t* out_handle, uint64_t pc) {
return do_syscall(ZX_SYS_pci_get_bar, pc, &VDso::ValidSyscallPC::pci_get_bar, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out_handle;
auto result = sys_pci_get_bar(handle, bar_num, make_user_out_ptr(out_bar), &out_handle_out_handle);
if (result != ZX_OK)
return result;
if (out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(out_handle)))
return ZX_ERR_INVALID_ARGS;
out_handle_out_handle.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_pci_map_interrupt(zx_handle_t handle, int32_t which_irq, zx_handle_t* out_handle, uint64_t pc) {
return do_syscall(ZX_SYS_pci_map_interrupt, pc, &VDso::ValidSyscallPC::pci_map_interrupt, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out_handle;
auto result = sys_pci_map_interrupt(handle, which_irq, &out_handle_out_handle);
if (result != ZX_OK)
return result;
if (out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(out_handle)))
return ZX_ERR_INVALID_ARGS;
out_handle_out_handle.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_pci_query_irq_mode(zx_handle_t handle, uint32_t mode, uint32_t* out_max_irqs, uint64_t pc) {
return do_syscall(ZX_SYS_pci_query_irq_mode, pc, &VDso::ValidSyscallPC::pci_query_irq_mode, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pci_query_irq_mode(handle, mode, make_user_out_ptr(out_max_irqs));
return result;
});
}
syscall_result wrapper_pci_set_irq_mode(zx_handle_t handle, uint32_t mode, uint32_t requested_irq_count, uint64_t pc) {
return do_syscall(ZX_SYS_pci_set_irq_mode, pc, &VDso::ValidSyscallPC::pci_set_irq_mode, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pci_set_irq_mode(handle, mode, requested_irq_count);
return result;
});
}
syscall_result wrapper_pci_init(zx_handle_t handle, const zx_pci_init_arg_t* init_buf, uint32_t len, uint64_t pc) {
return do_syscall(ZX_SYS_pci_init, pc, &VDso::ValidSyscallPC::pci_init, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pci_init(handle, make_user_in_ptr(init_buf), len);
return result;
});
}
syscall_result wrapper_pci_add_subtract_io_range(zx_handle_t handle, uint32_t mmio, uint64_t base, uint64_t len, uint32_t add, uint64_t pc) {
return do_syscall(ZX_SYS_pci_add_subtract_io_range, pc, &VDso::ValidSyscallPC::pci_add_subtract_io_range, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pci_add_subtract_io_range(handle, mmio, base, len, add);
return result;
});
}
syscall_result wrapper_pmt_unpin(zx_handle_t handle, uint64_t pc) {
return do_syscall(ZX_SYS_pmt_unpin, pc, &VDso::ValidSyscallPC::pmt_unpin, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_pmt_unpin(handle);
return result;
});
}
syscall_result wrapper_port_create(uint32_t options, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_port_create, pc, &VDso::ValidSyscallPC::port_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_port_create(options, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_port_queue(zx_handle_t handle, const zx_port_packet_t* packet, uint64_t pc) {
return do_syscall(ZX_SYS_port_queue, pc, &VDso::ValidSyscallPC::port_queue, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_port_queue(handle, make_user_in_ptr(packet));
return result;
});
}
syscall_result wrapper_port_wait(zx_handle_t handle, zx_time_t deadline, zx_port_packet_t* packet, uint64_t pc) {
return do_syscall(ZX_SYS_port_wait, pc, &VDso::ValidSyscallPC::port_wait, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_port_wait(handle, deadline, make_user_out_ptr(packet));
return result;
});
}
syscall_result wrapper_port_cancel(zx_handle_t handle, zx_handle_t source, uint64_t key, uint64_t pc) {
return do_syscall(ZX_SYS_port_cancel, pc, &VDso::ValidSyscallPC::port_cancel, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_port_cancel(handle, source, key);
return result;
});
}
syscall_result wrapper_process_exit(int64_t retcode, uint64_t pc) {
return do_syscall(ZX_SYS_process_exit, pc, &VDso::ValidSyscallPC::process_exit, [&](ProcessDispatcher* current_process) -> uint64_t {
/*noreturn*/ sys_process_exit(retcode);
/* NOTREACHED */
return ZX_ERR_BAD_STATE;
});
}
syscall_result wrapper_process_create(zx_handle_t job, const char* name, size_t name_size, uint32_t options, zx_handle_t* proc_handle, zx_handle_t* vmar_handle, uint64_t pc) {
return do_syscall(ZX_SYS_process_create, pc, &VDso::ValidSyscallPC::process_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_proc_handle;
user_out_handle out_handle_vmar_handle;
auto result = sys_process_create(job, make_user_in_ptr(name), name_size, options, &out_handle_proc_handle, &out_handle_vmar_handle);
if (result != ZX_OK)
return result;
if (out_handle_proc_handle.begin_copyout(current_process, make_user_out_ptr(proc_handle)))
return ZX_ERR_INVALID_ARGS;
if (out_handle_vmar_handle.begin_copyout(current_process, make_user_out_ptr(vmar_handle)))
return ZX_ERR_INVALID_ARGS;
out_handle_proc_handle.finish_copyout(current_process);
out_handle_vmar_handle.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_process_start(zx_handle_t handle, zx_handle_t thread, zx_vaddr_t entry, zx_vaddr_t stack, zx_handle_t arg1, uintptr_t arg2, uint64_t pc) {
return do_syscall(ZX_SYS_process_start, pc, &VDso::ValidSyscallPC::process_start, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_process_start(handle, thread, entry, stack, arg1, arg2);
return result;
});
}
syscall_result wrapper_process_read_memory(zx_handle_t handle, zx_vaddr_t vaddr, void* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_process_read_memory, pc, &VDso::ValidSyscallPC::process_read_memory, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_process_read_memory(handle, vaddr, make_user_out_ptr(buffer), buffer_size, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_process_write_memory(zx_handle_t handle, zx_vaddr_t vaddr, const void* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_process_write_memory, pc, &VDso::ValidSyscallPC::process_write_memory, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_process_write_memory(handle, vaddr, make_user_in_ptr(buffer), buffer_size, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_profile_create(zx_handle_t root_job, uint32_t options, const zx_profile_info_t* profile, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_profile_create, pc, &VDso::ValidSyscallPC::profile_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_profile_create(root_job, options, make_user_in_ptr(profile), &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_resource_create(zx_handle_t parent_rsrc, uint32_t options, uint64_t base, size_t size, const char* name, size_t name_size, zx_handle_t* resource_out, uint64_t pc) {
return do_syscall(ZX_SYS_resource_create, pc, &VDso::ValidSyscallPC::resource_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_resource_out;
auto result = sys_resource_create(parent_rsrc, options, base, size, make_user_in_ptr(name), name_size, &out_handle_resource_out);
if (result != ZX_OK)
return result;
if (out_handle_resource_out.begin_copyout(current_process, make_user_out_ptr(resource_out)))
return ZX_ERR_INVALID_ARGS;
out_handle_resource_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_smc_call(zx_handle_t handle, const zx_smc_parameters_t* parameters, zx_smc_result_t* out_smc_result, uint64_t pc) {
return do_syscall(ZX_SYS_smc_call, pc, &VDso::ValidSyscallPC::smc_call, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_smc_call(handle, make_user_in_ptr(parameters), make_user_out_ptr(out_smc_result));
return result;
});
}
syscall_result wrapper_socket_create(uint32_t options, zx_handle_t* out0, zx_handle_t* out1, uint64_t pc) {
return do_syscall(ZX_SYS_socket_create, pc, &VDso::ValidSyscallPC::socket_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out0;
user_out_handle out_handle_out1;
auto result = sys_socket_create(options, &out_handle_out0, &out_handle_out1);
if (result != ZX_OK)
return result;
if (out_handle_out0.begin_copyout(current_process, make_user_out_ptr(out0)))
return ZX_ERR_INVALID_ARGS;
if (out_handle_out1.begin_copyout(current_process, make_user_out_ptr(out1)))
return ZX_ERR_INVALID_ARGS;
out_handle_out0.finish_copyout(current_process);
out_handle_out1.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_socket_write(zx_handle_t handle, uint32_t options, const void* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_socket_write, pc, &VDso::ValidSyscallPC::socket_write, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_socket_write(handle, options, make_user_in_ptr(buffer), buffer_size, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_socket_read(zx_handle_t handle, uint32_t options, void* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_socket_read, pc, &VDso::ValidSyscallPC::socket_read, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_socket_read(handle, options, make_user_out_ptr(buffer), buffer_size, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_socket_shutdown(zx_handle_t handle, uint32_t options, uint64_t pc) {
return do_syscall(ZX_SYS_socket_shutdown, pc, &VDso::ValidSyscallPC::socket_shutdown, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_socket_shutdown(handle, options);
return result;
});
}
syscall_result wrapper_stream_create(uint32_t options, zx_handle_t vmo, zx_off_t seek, zx_handle_t* out_stream, uint64_t pc) {
return do_syscall(ZX_SYS_stream_create, pc, &VDso::ValidSyscallPC::stream_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out_stream;
auto result = sys_stream_create(options, vmo, seek, &out_handle_out_stream);
if (result != ZX_OK)
return result;
if (out_handle_out_stream.begin_copyout(current_process, make_user_out_ptr(out_stream)))
return ZX_ERR_INVALID_ARGS;
out_handle_out_stream.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_stream_writev(zx_handle_t handle, uint32_t options, const zx_iovec_t* vector, size_t num_vector, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_stream_writev, pc, &VDso::ValidSyscallPC::stream_writev, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_stream_writev(handle, options, make_user_in_ptr(vector), num_vector, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_stream_writev_at(zx_handle_t handle, uint32_t options, zx_off_t offset, const zx_iovec_t* vector, size_t num_vector, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_stream_writev_at, pc, &VDso::ValidSyscallPC::stream_writev_at, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_stream_writev_at(handle, options, offset, make_user_in_ptr(vector), num_vector, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_stream_readv(zx_handle_t handle, uint32_t options, zx_iovec_t* vector, size_t num_vector, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_stream_readv, pc, &VDso::ValidSyscallPC::stream_readv, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_stream_readv(handle, options, make_user_out_ptr(vector), num_vector, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_stream_readv_at(zx_handle_t handle, uint32_t options, zx_off_t offset, zx_iovec_t* vector, size_t num_vector, size_t* actual, uint64_t pc) {
return do_syscall(ZX_SYS_stream_readv_at, pc, &VDso::ValidSyscallPC::stream_readv_at, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_stream_readv_at(handle, options, offset, make_user_out_ptr(vector), num_vector, make_user_out_ptr(actual));
return result;
});
}
syscall_result wrapper_stream_seek(zx_handle_t handle, zx_stream_seek_origin_t whence, int64_t offset, zx_off_t* out_seek, uint64_t pc) {
return do_syscall(ZX_SYS_stream_seek, pc, &VDso::ValidSyscallPC::stream_seek, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_stream_seek(handle, whence, offset, make_user_out_ptr(out_seek));
return result;
});
}
syscall_result wrapper_syscall_test_0(uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_0, pc, &VDso::ValidSyscallPC::syscall_test_0, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_0();
return result;
});
}
syscall_result wrapper_syscall_test_1(int32_t a, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_1, pc, &VDso::ValidSyscallPC::syscall_test_1, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_1(a);
return result;
});
}
syscall_result wrapper_syscall_test_2(int32_t a, int32_t b, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_2, pc, &VDso::ValidSyscallPC::syscall_test_2, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_2(a, b);
return result;
});
}
syscall_result wrapper_syscall_test_3(int32_t a, int32_t b, int32_t c, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_3, pc, &VDso::ValidSyscallPC::syscall_test_3, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_3(a, b, c);
return result;
});
}
syscall_result wrapper_syscall_test_4(int32_t a, int32_t b, int32_t c, int32_t d, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_4, pc, &VDso::ValidSyscallPC::syscall_test_4, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_4(a, b, c, d);
return result;
});
}
syscall_result wrapper_syscall_test_5(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_5, pc, &VDso::ValidSyscallPC::syscall_test_5, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_5(a, b, c, d, e);
return result;
});
}
syscall_result wrapper_syscall_test_6(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, int32_t f, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_6, pc, &VDso::ValidSyscallPC::syscall_test_6, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_6(a, b, c, d, e, f);
return result;
});
}
syscall_result wrapper_syscall_test_7(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, int32_t f, int32_t g, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_7, pc, &VDso::ValidSyscallPC::syscall_test_7, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_7(a, b, c, d, e, f, g);
return result;
});
}
syscall_result wrapper_syscall_test_8(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, int32_t f, int32_t g, int32_t h, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_8, pc, &VDso::ValidSyscallPC::syscall_test_8, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_8(a, b, c, d, e, f, g, h);
return result;
});
}
syscall_result wrapper_syscall_test_wrapper(int32_t a, int32_t b, int32_t c, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_wrapper, pc, &VDso::ValidSyscallPC::syscall_test_wrapper, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_syscall_test_wrapper(a, b, c);
return result;
});
}
syscall_result wrapper_syscall_test_handle_create(zx_status_t return_value, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_syscall_test_handle_create, pc, &VDso::ValidSyscallPC::syscall_test_handle_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_syscall_test_handle_create(return_value, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_system_get_event(zx_handle_t root_job, uint32_t kind, zx_handle_t* event, uint64_t pc) {
return do_syscall(ZX_SYS_system_get_event, pc, &VDso::ValidSyscallPC::system_get_event, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_event;
auto result = sys_system_get_event(root_job, kind, &out_handle_event);
if (result != ZX_OK)
return result;
if (out_handle_event.begin_copyout(current_process, make_user_out_ptr(event)))
return ZX_ERR_INVALID_ARGS;
out_handle_event.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_system_mexec(zx_handle_t resource, zx_handle_t kernel_vmo, zx_handle_t bootimage_vmo, uint64_t pc) {
return do_syscall(ZX_SYS_system_mexec, pc, &VDso::ValidSyscallPC::system_mexec, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_system_mexec(resource, kernel_vmo, bootimage_vmo);
return result;
});
}
syscall_result wrapper_system_mexec_payload_get(zx_handle_t resource, void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_system_mexec_payload_get, pc, &VDso::ValidSyscallPC::system_mexec_payload_get, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_system_mexec_payload_get(resource, make_user_out_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_system_powerctl(zx_handle_t resource, uint32_t cmd, const zx_system_powerctl_arg_t* arg, uint64_t pc) {
return do_syscall(ZX_SYS_system_powerctl, pc, &VDso::ValidSyscallPC::system_powerctl, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_system_powerctl(resource, cmd, make_user_in_ptr(arg));
return result;
});
}
syscall_result wrapper_task_suspend(zx_handle_t handle, zx_handle_t* token, uint64_t pc) {
return do_syscall(ZX_SYS_task_suspend, pc, &VDso::ValidSyscallPC::task_suspend, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_token;
auto result = sys_task_suspend(handle, &out_handle_token);
if (result != ZX_OK)
return result;
if (out_handle_token.begin_copyout(current_process, make_user_out_ptr(token)))
return ZX_ERR_INVALID_ARGS;
out_handle_token.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_task_suspend_token(zx_handle_t handle, zx_handle_t* token, uint64_t pc) {
return do_syscall(ZX_SYS_task_suspend_token, pc, &VDso::ValidSyscallPC::task_suspend_token, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_token;
auto result = sys_task_suspend_token(handle, &out_handle_token);
if (result != ZX_OK)
return result;
if (out_handle_token.begin_copyout(current_process, make_user_out_ptr(token)))
return ZX_ERR_INVALID_ARGS;
out_handle_token.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_task_create_exception_channel(zx_handle_t handle, uint32_t options, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_task_create_exception_channel, pc, &VDso::ValidSyscallPC::task_create_exception_channel, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_task_create_exception_channel(handle, options, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_task_kill(zx_handle_t handle, uint64_t pc) {
return do_syscall(ZX_SYS_task_kill, pc, &VDso::ValidSyscallPC::task_kill, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_task_kill(handle);
return result;
});
}
syscall_result wrapper_thread_exit(uint64_t pc) {
return do_syscall(ZX_SYS_thread_exit, pc, &VDso::ValidSyscallPC::thread_exit, [&](ProcessDispatcher* current_process) -> uint64_t {
/*noreturn*/ sys_thread_exit();
/* NOTREACHED */
return ZX_ERR_BAD_STATE;
});
}
syscall_result wrapper_thread_create(zx_handle_t process, const char* name, size_t name_size, uint32_t options, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_thread_create, pc, &VDso::ValidSyscallPC::thread_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_thread_create(process, make_user_in_ptr(name), name_size, options, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_thread_start(zx_handle_t handle, zx_vaddr_t thread_entry, zx_vaddr_t stack, uintptr_t arg1, uintptr_t arg2, uint64_t pc) {
return do_syscall(ZX_SYS_thread_start, pc, &VDso::ValidSyscallPC::thread_start, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_thread_start(handle, thread_entry, stack, arg1, arg2);
return result;
});
}
syscall_result wrapper_thread_read_state(zx_handle_t handle, uint32_t kind, void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_thread_read_state, pc, &VDso::ValidSyscallPC::thread_read_state, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_thread_read_state(handle, kind, make_user_out_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_thread_write_state(zx_handle_t handle, uint32_t kind, const void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_thread_write_state, pc, &VDso::ValidSyscallPC::thread_write_state, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_thread_write_state(handle, kind, make_user_in_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_timer_create(uint32_t options, zx_clock_t clock_id, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_timer_create, pc, &VDso::ValidSyscallPC::timer_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_timer_create(options, clock_id, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_timer_set(zx_handle_t handle, zx_time_t deadline, zx_duration_t slack, uint64_t pc) {
return do_syscall(ZX_SYS_timer_set, pc, &VDso::ValidSyscallPC::timer_set, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_timer_set(handle, deadline, slack);
return result;
});
}
syscall_result wrapper_timer_cancel(zx_handle_t handle, uint64_t pc) {
return do_syscall(ZX_SYS_timer_cancel, pc, &VDso::ValidSyscallPC::timer_cancel, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_timer_cancel(handle);
return result;
});
}
syscall_result wrapper_vcpu_create(zx_handle_t guest, uint32_t options, zx_vaddr_t entry, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_vcpu_create, pc, &VDso::ValidSyscallPC::vcpu_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_vcpu_create(guest, options, entry, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_vcpu_resume(zx_handle_t handle, zx_port_packet_t* packet, uint64_t pc) {
return do_syscall(ZX_SYS_vcpu_resume, pc, &VDso::ValidSyscallPC::vcpu_resume, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vcpu_resume(handle, make_user_out_ptr(packet));
return result;
});
}
syscall_result wrapper_vcpu_interrupt(zx_handle_t handle, uint32_t vector, uint64_t pc) {
return do_syscall(ZX_SYS_vcpu_interrupt, pc, &VDso::ValidSyscallPC::vcpu_interrupt, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vcpu_interrupt(handle, vector);
return result;
});
}
syscall_result wrapper_vcpu_read_state(zx_handle_t handle, uint32_t kind, void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_vcpu_read_state, pc, &VDso::ValidSyscallPC::vcpu_read_state, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vcpu_read_state(handle, kind, make_user_out_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_vcpu_write_state(zx_handle_t handle, uint32_t kind, const void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_vcpu_write_state, pc, &VDso::ValidSyscallPC::vcpu_write_state, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vcpu_write_state(handle, kind, make_user_in_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_vmar_allocate(zx_handle_t parent_vmar, zx_vm_option_t options, size_t offset, size_t size, zx_handle_t* child_vmar, zx_vaddr_t* child_addr, uint64_t pc) {
return do_syscall(ZX_SYS_vmar_allocate, pc, &VDso::ValidSyscallPC::vmar_allocate, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_child_vmar;
auto result = sys_vmar_allocate(parent_vmar, options, offset, size, &out_handle_child_vmar, make_user_out_ptr(child_addr));
if (result != ZX_OK)
return result;
if (out_handle_child_vmar.begin_copyout(current_process, make_user_out_ptr(child_vmar)))
return ZX_ERR_INVALID_ARGS;
out_handle_child_vmar.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_vmar_destroy(zx_handle_t handle, uint64_t pc) {
return do_syscall(ZX_SYS_vmar_destroy, pc, &VDso::ValidSyscallPC::vmar_destroy, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmar_destroy(handle);
return result;
});
}
syscall_result wrapper_vmar_map(zx_handle_t handle, zx_vm_option_t options, size_t vmar_offset, zx_handle_t vmo, uint64_t vmo_offset, size_t len, zx_vaddr_t* mapped_addr, uint64_t pc) {
return do_syscall(ZX_SYS_vmar_map, pc, &VDso::ValidSyscallPC::vmar_map, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmar_map(handle, options, vmar_offset, vmo, vmo_offset, len, make_user_out_ptr(mapped_addr));
return result;
});
}
syscall_result wrapper_vmar_unmap(zx_handle_t handle, zx_vaddr_t addr, size_t len, uint64_t pc) {
return do_syscall(ZX_SYS_vmar_unmap, pc, &VDso::ValidSyscallPC::vmar_unmap, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmar_unmap(handle, addr, len);
return result;
});
}
syscall_result wrapper_vmar_protect(zx_handle_t handle, zx_vm_option_t options, zx_vaddr_t addr, size_t len, uint64_t pc) {
return do_syscall(ZX_SYS_vmar_protect, pc, &VDso::ValidSyscallPC::vmar_protect, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmar_protect(handle, options, addr, len);
return result;
});
}
syscall_result wrapper_vmar_op_range(zx_handle_t handle, uint32_t op, zx_vaddr_t address, size_t size, void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_vmar_op_range, pc, &VDso::ValidSyscallPC::vmar_op_range, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmar_op_range(handle, op, address, size, make_user_inout_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_vmo_create(uint64_t size, uint32_t options, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_create, pc, &VDso::ValidSyscallPC::vmo_create, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_vmo_create(size, options, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_vmo_read(zx_handle_t handle, void* buffer, uint64_t offset, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_read, pc, &VDso::ValidSyscallPC::vmo_read, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmo_read(handle, make_user_out_ptr(buffer), offset, buffer_size);
return result;
});
}
syscall_result wrapper_vmo_write(zx_handle_t handle, const void* buffer, uint64_t offset, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_write, pc, &VDso::ValidSyscallPC::vmo_write, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmo_write(handle, make_user_in_ptr(buffer), offset, buffer_size);
return result;
});
}
syscall_result wrapper_vmo_get_size(zx_handle_t handle, uint64_t* size, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_get_size, pc, &VDso::ValidSyscallPC::vmo_get_size, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmo_get_size(handle, make_user_out_ptr(size));
return result;
});
}
syscall_result wrapper_vmo_set_size(zx_handle_t handle, uint64_t size, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_set_size, pc, &VDso::ValidSyscallPC::vmo_set_size, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmo_set_size(handle, size);
return result;
});
}
syscall_result wrapper_vmo_op_range(zx_handle_t handle, uint32_t op, uint64_t offset, uint64_t size, void* buffer, size_t buffer_size, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_op_range, pc, &VDso::ValidSyscallPC::vmo_op_range, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmo_op_range(handle, op, offset, size, make_user_inout_ptr(buffer), buffer_size);
return result;
});
}
syscall_result wrapper_vmo_create_child(zx_handle_t handle, uint32_t options, uint64_t offset, uint64_t size, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_create_child, pc, &VDso::ValidSyscallPC::vmo_create_child, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_vmo_create_child(handle, options, offset, size, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_vmo_set_cache_policy(zx_handle_t handle, uint32_t cache_policy, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_set_cache_policy, pc, &VDso::ValidSyscallPC::vmo_set_cache_policy, [&](ProcessDispatcher* current_process) -> uint64_t {
auto result = sys_vmo_set_cache_policy(handle, cache_policy);
return result;
});
}
syscall_result wrapper_vmo_replace_as_executable(zx_handle_t handle, zx_handle_t vmex, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_replace_as_executable, pc, &VDso::ValidSyscallPC::vmo_replace_as_executable, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_vmo_replace_as_executable(handle, vmex, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_vmo_create_contiguous(zx_handle_t bti, size_t size, uint32_t alignment_log2, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_create_contiguous, pc, &VDso::ValidSyscallPC::vmo_create_contiguous, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_vmo_create_contiguous(bti, size, alignment_log2, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
syscall_result wrapper_vmo_create_physical(zx_handle_t resource, zx_paddr_t paddr, size_t size, zx_handle_t* out, uint64_t pc) {
return do_syscall(ZX_SYS_vmo_create_physical, pc, &VDso::ValidSyscallPC::vmo_create_physical, [&](ProcessDispatcher* current_process) -> uint64_t {
user_out_handle out_handle_out;
auto result = sys_vmo_create_physical(resource, paddr, size, &out_handle_out);
if (result != ZX_OK)
return result;
if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
return ZX_ERR_INVALID_ARGS;
out_handle_out.finish_copyout(current_process);
return result;
});
}
}
----- kernel-wrappers.h END -----
----- private-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
KERNEL_SYSCALL(bti_create, zx_status_t, /* no attributes */, 4,
(iommu, options, bti_id, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t iommu,
uint32_t options,
uint64_t bti_id,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(bti_pin, zx_status_t, /* no attributes */, 8,
(handle, options, vmo, offset, size, addrs, num_addrs, pmt), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
uint64_t offset,
uint64_t size,
zx_paddr_t* addrs,
size_t num_addrs,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* pmt))
KERNEL_SYSCALL(bti_release_quarantine, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
VDSO_SYSCALL(cache_flush, zx_status_t, /* no attributes */, 3,
(addr, size, options), (
const void* addr,
size_t size,
uint32_t options))
KERNEL_SYSCALL(channel_create, zx_status_t, /* no attributes */, 3,
(options, out0, out1), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))
KERNEL_SYSCALL(channel_read, zx_status_t, /* no attributes */, 8,
(handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("FuchsiaUnchecked")) zx_handle_t handle,
uint32_t options,
void* bytes,
_ZX_SYSCALL_ANNO(acquire_handle("FuchsiaUnchecked")) zx_handle_t* handles,
uint32_t num_bytes,
uint32_t num_handles,
uint32_t* actual_bytes,
uint32_t* actual_handles))
KERNEL_SYSCALL(channel_read_etc, zx_status_t, /* no attributes */, 8,
(handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
void* bytes,
zx_handle_info_t* handles,
uint32_t num_bytes,
uint32_t num_handles,
uint32_t* actual_bytes,
uint32_t* actual_handles))
KERNEL_SYSCALL(channel_write, zx_status_t, /* no attributes */, 6,
(handle, options, bytes, num_bytes, handles, num_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const void* bytes,
uint32_t num_bytes,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) const zx_handle_t* handles,
uint32_t num_handles))
KERNEL_SYSCALL(channel_write_etc, zx_status_t, /* no attributes */, 6,
(handle, options, bytes, num_bytes, handles, num_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const void* bytes,
uint32_t num_bytes,
zx_handle_disposition_t* handles,
uint32_t num_handles))
INTERNAL_SYSCALL(channel_call_noretry, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
const zx_channel_call_args_t* args,
uint32_t* actual_bytes,
uint32_t* actual_handles))
INTERNAL_SYSCALL(channel_call_finish, zx_status_t, /* no attributes */, 4,
(deadline, args, actual_bytes, actual_handles), (
zx_time_t deadline,
const zx_channel_call_args_t* args,
uint32_t* actual_bytes,
uint32_t* actual_handles))
VDSO_SYSCALL(channel_call, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
const zx_channel_call_args_t* args,
uint32_t* actual_bytes,
uint32_t* actual_handles))
INTERNAL_SYSCALL(channel_call_etc_noretry, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
zx_channel_call_etc_args_t* args,
uint32_t* actual_bytes,
uint32_t* actual_handles))
INTERNAL_SYSCALL(channel_call_etc_finish, zx_status_t, /* no attributes */, 4,
(deadline, args, actual_bytes, actual_handles), (
zx_time_t deadline,
zx_channel_call_etc_args_t* args,
uint32_t* actual_bytes,
uint32_t* actual_handles))
VDSO_SYSCALL(channel_call_etc, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
zx_channel_call_etc_args_t* args,
uint32_t* actual_bytes,
uint32_t* actual_handles))
KERNEL_SYSCALL(clock_get, zx_status_t, /* no attributes */, 2,
(clock_id, out), (
zx_clock_t clock_id,
zx_time_t* out))
VDSO_SYSCALL(clock_get_monotonic, zx_time_t, /* no attributes */, 0,
(), (void))
KERNEL_SYSCALL(clock_adjust, zx_status_t, /* no attributes */, 3,
(handle, clock_id, offset), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_clock_t clock_id,
int64_t offset))
INTERNAL_SYSCALL(clock_get_monotonic_via_kernel, zx_time_t, /* no attributes */, 0,
(), (void))
KERNEL_SYSCALL(clock_create, zx_status_t, /* no attributes */, 3,
(options, args, out), (
uint64_t options,
const void* args,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(clock_read, zx_status_t, /* no attributes */, 2,
(handle, now), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t* now))
KERNEL_SYSCALL(clock_get_details, zx_status_t, /* no attributes */, 3,
(handle, options, details), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t options,
void* details))
KERNEL_SYSCALL(clock_update, zx_status_t, /* no attributes */, 3,
(handle, options, args), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t options,
const void* args))
INTERNAL_SYSCALL(cprng_draw_once, zx_status_t, /* no attributes */, 2,
(buffer, buffer_size), (
void* buffer,
size_t buffer_size))
VDSO_SYSCALL(cprng_draw, void, /* no attributes */, 2,
(buffer, buffer_size), (
void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(cprng_add_entropy, zx_status_t, /* no attributes */, 2,
(buffer, buffer_size), (
const void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(debug_read, zx_status_t, /* no attributes */, 4,
(handle, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
char* buffer,
size_t buffer_size,
size_t* actual))
KERNEL_SYSCALL(debug_write, zx_status_t, /* no attributes */, 2,
(buffer, buffer_size), (
const char* buffer,
size_t buffer_size))
KERNEL_SYSCALL(debug_send_command, zx_status_t, /* no attributes */, 3,
(resource, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
const char* buffer,
size_t buffer_size))
KERNEL_SYSCALL(debuglog_create, zx_status_t, /* no attributes */, 3,
(resource, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(debuglog_write, zx_status_t, /* no attributes */, 4,
(handle, options, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(debuglog_read, zx_status_t, /* no attributes */, 4,
(handle, options, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(event_create, zx_status_t, /* no attributes */, 2,
(options, out), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(eventpair_create, zx_status_t, /* no attributes */, 3,
(options, out0, out1), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))
KERNEL_SYSCALL(exception_get_thread, zx_status_t, /* no attributes */, 2,
(handle, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(exception_get_process, zx_status_t, /* no attributes */, 2,
(handle, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(fifo_create, zx_status_t, /* no attributes */, 5,
(elem_count, elem_size, options, out0, out1), (
size_t elem_count,
size_t elem_size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))
KERNEL_SYSCALL(fifo_read, zx_status_t, /* no attributes */, 5,
(handle, elem_size, data, data_size, actual_count), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
size_t elem_size,
void* data,
size_t data_size,
size_t* actual_count))
KERNEL_SYSCALL(fifo_write, zx_status_t, /* no attributes */, 5,
(handle, elem_size, data, count, actual_count), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
size_t elem_size,
const void* data,
size_t count,
size_t* actual_count))
KERNEL_SYSCALL(framebuffer_get_info, zx_status_t, /* no attributes */, 5,
(resource, format, width, height, stride), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t* format,
uint32_t* width,
uint32_t* height,
uint32_t* stride))
KERNEL_SYSCALL(framebuffer_set_range, zx_status_t, /* no attributes */, 7,
(resource, vmo, len, format, width, height, stride), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
uint32_t len,
uint32_t format,
uint32_t width,
uint32_t height,
uint32_t stride))
BLOCKING_SYSCALL(futex_wait, zx_status_t, /* no attributes */, 4,
(value_ptr, current_value, new_futex_owner, deadline), (
const zx_futex_t* value_ptr,
zx_futex_t current_value,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_futex_owner,
zx_time_t deadline))
KERNEL_SYSCALL(futex_wake, zx_status_t, /* no attributes */, 2,
(value_ptr, wake_count), (
const zx_futex_t* value_ptr,
uint32_t wake_count))
KERNEL_SYSCALL(futex_requeue, zx_status_t, /* no attributes */, 6,
(value_ptr, wake_count, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
const zx_futex_t* value_ptr,
uint32_t wake_count,
zx_futex_t current_value,
const zx_futex_t* requeue_ptr,
uint32_t requeue_count,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))
KERNEL_SYSCALL(futex_wake_single_owner, zx_status_t, /* no attributes */, 1,
(value_ptr), (
const zx_futex_t* value_ptr))
KERNEL_SYSCALL(futex_requeue_single_owner, zx_status_t, /* no attributes */, 5,
(value_ptr, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
const zx_futex_t* value_ptr,
zx_futex_t current_value,
const zx_futex_t* requeue_ptr,
uint32_t requeue_count,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))
KERNEL_SYSCALL(futex_get_owner, zx_status_t, /* no attributes */, 2,
(value_ptr, koid), (
const zx_futex_t* value_ptr,
zx_koid_t* koid))
KERNEL_SYSCALL(guest_create, zx_status_t, /* no attributes */, 4,
(resource, options, guest_handle, vmar_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* guest_handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* vmar_handle))
KERNEL_SYSCALL(guest_set_trap, zx_status_t, /* no attributes */, 6,
(handle, kind, addr, size, port_handle, key), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
zx_vaddr_t addr,
size_t size,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
uint64_t key))
KERNEL_SYSCALL(handle_close, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(handle_close_many, zx_status_t, /* no attributes */, 2,
(handles, num_handles), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) const zx_handle_t* handles,
size_t num_handles))
KERNEL_SYSCALL(handle_duplicate, zx_status_t, /* no attributes */, 3,
(handle, rights, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_rights_t rights,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(handle_replace, zx_status_t, /* no attributes */, 3,
(handle, rights, out), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
zx_rights_t rights,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(interrupt_create, zx_status_t, /* no attributes */, 4,
(src_obj, src_num, options, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t src_obj,
uint32_t src_num,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))
KERNEL_SYSCALL(interrupt_bind, zx_status_t, /* no attributes */, 4,
(handle, port_handle, key, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
uint64_t key,
uint32_t options))
BLOCKING_SYSCALL(interrupt_wait, zx_status_t, /* no attributes */, 2,
(handle, out_timestamp), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t* out_timestamp))
KERNEL_SYSCALL(interrupt_destroy, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(interrupt_ack, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(interrupt_trigger, zx_status_t, /* no attributes */, 3,
(handle, options, timestamp), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t timestamp))
KERNEL_SYSCALL(interrupt_bind_vcpu, zx_status_t, /* no attributes */, 3,
(handle, vcpu, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vcpu,
uint32_t options))
KERNEL_SYSCALL(iommu_create, zx_status_t, /* no attributes */, 5,
(resource, type, desc, desc_size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t type,
const void* desc,
size_t desc_size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(ioports_request, zx_status_t, /* no attributes */, 3,
(resource, io_addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint16_t io_addr,
uint32_t len))
KERNEL_SYSCALL(ioports_release, zx_status_t, /* no attributes */, 3,
(resource, io_addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint16_t io_addr,
uint32_t len))
KERNEL_SYSCALL(job_create, zx_status_t, /* no attributes */, 3,
(parent_job, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_job,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(job_set_policy, zx_status_t, /* no attributes */, 5,
(handle, options, topic, policy, policy_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
uint32_t topic,
const void* policy,
uint32_t policy_size))
KERNEL_SYSCALL(job_set_critical, zx_status_t, /* no attributes */, 3,
(job, options, process), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process))
KERNEL_SYSCALL(ktrace_read, zx_status_t, /* no attributes */, 5,
(handle, data, offset, data_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
void* data,
uint32_t offset,
size_t data_size,
size_t* actual))
KERNEL_SYSCALL(ktrace_control, zx_status_t, /* no attributes */, 4,
(handle, action, options, ptr), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t action,
uint32_t options,
void* ptr))
KERNEL_SYSCALL(ktrace_write, zx_status_t, /* no attributes */, 4,
(handle, id, arg0, arg1), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t id,
uint32_t arg0,
uint32_t arg1))
BLOCKING_SYSCALL(nanosleep, zx_status_t, /* no attributes */, 1,
(deadline), (
zx_time_t deadline))
VDSO_SYSCALL(ticks_get, zx_ticks_t, /* no attributes */, 0,
(), (void))
VDSO_SYSCALL(ticks_per_second, zx_ticks_t, __CONST, 0,
(), (void))
VDSO_SYSCALL(deadline_after, zx_time_t, /* no attributes */, 1,
(nanoseconds), (
zx_duration_t nanoseconds))
VDSO_SYSCALL(vmar_unmap_handle_close_thread_exit, zx_status_t, /* no attributes */, 4,
(vmar_handle, addr, size, close_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmar_handle,
zx_vaddr_t addr,
size_t size,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))
VDSO_SYSCALL(futex_wake_handle_close_thread_exit, void, __NO_RETURN, 4,
(value_ptr, wake_count, new_value, close_handle), (
const zx_futex_t* value_ptr,
uint32_t wake_count,
int32_t new_value,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))
INTERNAL_SYSCALL(ticks_get_via_kernel, zx_ticks_t, /* no attributes */, 0,
(), (void))
KERNEL_SYSCALL(msi_allocate, zx_status_t, /* no attributes */, 3,
(handle, count, out_allocation), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t count,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_allocation))
KERNEL_SYSCALL(msi_create, zx_status_t, /* no attributes */, 6,
(handle, options, msi_id, vmo, vmo_offset, out_interrupt), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
uint32_t msi_id,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
size_t vmo_offset,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_interrupt))
KERNEL_SYSCALL(mtrace_control, zx_status_t, /* no attributes */, 6,
(handle, kind, action, options, ptr, ptr_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
uint32_t action,
uint32_t options,
void* ptr,
size_t ptr_size))
BLOCKING_SYSCALL(object_wait_one, zx_status_t, /* no attributes */, 4,
(handle, signals, deadline, observed), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_signals_t signals,
zx_time_t deadline,
zx_signals_t* observed))
BLOCKING_SYSCALL(object_wait_many, zx_status_t, /* no attributes */, 3,
(items, num_items, deadline), (
zx_wait_item_t* items,
size_t num_items,
zx_time_t deadline))
KERNEL_SYSCALL(object_wait_async, zx_status_t, /* no attributes */, 5,
(handle, port, key, signals, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
uint64_t key,
zx_signals_t signals,
uint32_t options))
KERNEL_SYSCALL(object_signal, zx_status_t, /* no attributes */, 3,
(handle, clear_mask, set_mask), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t clear_mask,
uint32_t set_mask))
KERNEL_SYSCALL(object_signal_peer, zx_status_t, /* no attributes */, 3,
(handle, clear_mask, set_mask), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t clear_mask,
uint32_t set_mask))
KERNEL_SYSCALL(object_get_property, zx_status_t, /* no attributes */, 4,
(handle, property, value, value_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t property,
void* value,
size_t value_size))
KERNEL_SYSCALL(object_set_property, zx_status_t, /* no attributes */, 4,
(handle, property, value, value_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t property,
const void* value,
size_t value_size))
KERNEL_SYSCALL(object_get_info, zx_status_t, /* no attributes */, 6,
(handle, topic, buffer, buffer_size, actual, avail), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t topic,
void* buffer,
size_t buffer_size,
size_t* actual,
size_t* avail))
KERNEL_SYSCALL(object_get_child, zx_status_t, /* no attributes */, 4,
(handle, koid, rights, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t koid,
zx_rights_t rights,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(object_set_profile, zx_status_t, /* no attributes */, 3,
(handle, profile, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t profile,
uint32_t options))
KERNEL_SYSCALL(pager_create, zx_status_t, /* no attributes */, 2,
(options, out), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(pager_create_vmo, zx_status_t, /* no attributes */, 6,
(pager, options, port, key, size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
uint64_t key,
uint64_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(pager_detach_vmo, zx_status_t, /* no attributes */, 2,
(pager, vmo), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo))
KERNEL_SYSCALL(pager_supply_pages, zx_status_t, /* no attributes */, 6,
(pager, pager_vmo, offset, length, aux_vmo, aux_offset), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
uint64_t offset,
uint64_t length,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t aux_vmo,
uint64_t aux_offset))
KERNEL_SYSCALL(pager_op_range, zx_status_t, /* no attributes */, 6,
(pager, op, pager_vmo, offset, length, data), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
uint32_t op,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
uint64_t offset,
uint64_t length,
uint64_t data))
KERNEL_SYSCALL(pc_firmware_tables, zx_status_t, /* no attributes */, 3,
(handle, acpi_rsdp, smbios), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_paddr_t* acpi_rsdp,
zx_paddr_t* smbios))
KERNEL_SYSCALL(pci_get_nth_device, zx_status_t, /* no attributes */, 4,
(handle, index, out_info, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t index,
zx_pcie_device_info_t* out_info,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))
KERNEL_SYSCALL(pci_enable_bus_master, zx_status_t, /* no attributes */, 2,
(handle, enable), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t enable))
KERNEL_SYSCALL(pci_reset_device, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(pci_config_read, zx_status_t, /* no attributes */, 4,
(handle, offset, width, out_val), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint16_t offset,
size_t width,
uint32_t* out_val))
KERNEL_SYSCALL(pci_config_write, zx_status_t, /* no attributes */, 4,
(handle, offset, width, val), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint16_t offset,
size_t width,
uint32_t val))
KERNEL_SYSCALL(pci_cfg_pio_rw, zx_status_t, /* no attributes */, 8,
(handle, bus, dev, func, offset, val, width, write), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint8_t bus,
uint8_t dev,
uint8_t func,
uint8_t offset,
uint32_t* val,
size_t width,
uint32_t write))
KERNEL_SYSCALL(pci_get_bar, zx_status_t, /* no attributes */, 4,
(handle, bar_num, out_bar, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t bar_num,
zx_pci_bar_t* out_bar,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))
KERNEL_SYSCALL(pci_map_interrupt, zx_status_t, /* no attributes */, 3,
(handle, which_irq, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
int32_t which_irq,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))
KERNEL_SYSCALL(pci_query_irq_mode, zx_status_t, /* no attributes */, 3,
(handle, mode, out_max_irqs), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t mode,
uint32_t* out_max_irqs))
KERNEL_SYSCALL(pci_set_irq_mode, zx_status_t, /* no attributes */, 3,
(handle, mode, requested_irq_count), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t mode,
uint32_t requested_irq_count))
KERNEL_SYSCALL(pci_init, zx_status_t, /* no attributes */, 3,
(handle, init_buf, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
const zx_pci_init_arg_t* init_buf,
uint32_t len))
KERNEL_SYSCALL(pci_add_subtract_io_range, zx_status_t, /* no attributes */, 5,
(handle, mmio, base, len, add), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t mmio,
uint64_t base,
uint64_t len,
uint32_t add))
KERNEL_SYSCALL(pmt_unpin, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(port_create, zx_status_t, /* no attributes */, 2,
(options, out), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(port_queue, zx_status_t, /* no attributes */, 2,
(handle, packet), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
const zx_port_packet_t* packet))
BLOCKING_SYSCALL(port_wait, zx_status_t, /* no attributes */, 3,
(handle, deadline, packet), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t deadline,
zx_port_packet_t* packet))
KERNEL_SYSCALL(port_cancel, zx_status_t, /* no attributes */, 3,
(handle, source, key), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t source,
uint64_t key))
KERNEL_SYSCALL(process_exit, void, __NO_RETURN, 1,
(retcode), (
int64_t retcode))
KERNEL_SYSCALL(process_create, zx_status_t, /* no attributes */, 6,
(job, name, name_size, options, proc_handle, vmar_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
const char* name,
size_t name_size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* proc_handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* vmar_handle))
KERNEL_SYSCALL(process_start, zx_status_t, /* no attributes */, 6,
(handle, thread, entry, stack, arg1, arg2), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t thread,
zx_vaddr_t entry,
zx_vaddr_t stack,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t arg1,
uintptr_t arg2))
KERNEL_SYSCALL(process_read_memory, zx_status_t, /* no attributes */, 5,
(handle, vaddr, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t vaddr,
void* buffer,
size_t buffer_size,
size_t* actual))
KERNEL_SYSCALL(process_write_memory, zx_status_t, /* no attributes */, 5,
(handle, vaddr, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t vaddr,
const void* buffer,
size_t buffer_size,
size_t* actual))
KERNEL_SYSCALL(profile_create, zx_status_t, /* no attributes */, 4,
(root_job, options, profile, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
uint32_t options,
const zx_profile_info_t* profile,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(resource_create, zx_status_t, /* no attributes */, 7,
(parent_rsrc, options, base, size, name, name_size, resource_out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_rsrc,
uint32_t options,
uint64_t base,
size_t size,
const char* name,
size_t name_size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* resource_out))
KERNEL_SYSCALL(smc_call, zx_status_t, /* no attributes */, 3,
(handle, parameters, out_smc_result), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
const zx_smc_parameters_t* parameters,
zx_smc_result_t* out_smc_result))
KERNEL_SYSCALL(socket_create, zx_status_t, /* no attributes */, 3,
(options, out0, out1), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))
KERNEL_SYSCALL(socket_write, zx_status_t, /* no attributes */, 5,
(handle, options, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const void* buffer,
size_t buffer_size,
size_t* actual))
KERNEL_SYSCALL(socket_read, zx_status_t, /* no attributes */, 5,
(handle, options, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
void* buffer,
size_t buffer_size,
size_t* actual))
KERNEL_SYSCALL(socket_shutdown, zx_status_t, /* no attributes */, 2,
(handle, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options))
KERNEL_SYSCALL(stream_create, zx_status_t, /* no attributes */, 4,
(options, vmo, seek, out_stream), (
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
zx_off_t seek,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_stream))
KERNEL_SYSCALL(stream_writev, zx_status_t, /* no attributes */, 5,
(handle, options, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const zx_iovec_t* vector,
size_t num_vector,
size_t* actual))
KERNEL_SYSCALL(stream_writev_at, zx_status_t, /* no attributes */, 6,
(handle, options, offset, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_off_t offset,
const zx_iovec_t* vector,
size_t num_vector,
size_t* actual))
KERNEL_SYSCALL(stream_readv, zx_status_t, /* no attributes */, 5,
(handle, options, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_iovec_t* vector,
size_t num_vector,
size_t* actual))
KERNEL_SYSCALL(stream_readv_at, zx_status_t, /* no attributes */, 6,
(handle, options, offset, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_off_t offset,
zx_iovec_t* vector,
size_t num_vector,
size_t* actual))
KERNEL_SYSCALL(stream_seek, zx_status_t, /* no attributes */, 4,
(handle, whence, offset, out_seek), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_stream_seek_origin_t whence,
int64_t offset,
zx_off_t* out_seek))
KERNEL_SYSCALL(syscall_test_0, zx_status_t, /* no attributes */, 0,
(), (void))
KERNEL_SYSCALL(syscall_test_1, zx_status_t, /* no attributes */, 1,
(a), (
int32_t a))
KERNEL_SYSCALL(syscall_test_2, zx_status_t, /* no attributes */, 2,
(a, b), (
int32_t a,
int32_t b))
KERNEL_SYSCALL(syscall_test_3, zx_status_t, /* no attributes */, 3,
(a, b, c), (
int32_t a,
int32_t b,
int32_t c))
KERNEL_SYSCALL(syscall_test_4, zx_status_t, /* no attributes */, 4,
(a, b, c, d), (
int32_t a,
int32_t b,
int32_t c,
int32_t d))
KERNEL_SYSCALL(syscall_test_5, zx_status_t, /* no attributes */, 5,
(a, b, c, d, e), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e))
KERNEL_SYSCALL(syscall_test_6, zx_status_t, /* no attributes */, 6,
(a, b, c, d, e, f), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e,
int32_t f))
KERNEL_SYSCALL(syscall_test_7, zx_status_t, /* no attributes */, 7,
(a, b, c, d, e, f, g), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e,
int32_t f,
int32_t g))
KERNEL_SYSCALL(syscall_test_8, zx_status_t, /* no attributes */, 8,
(a, b, c, d, e, f, g, h), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e,
int32_t f,
int32_t g,
int32_t h))
KERNEL_SYSCALL(syscall_test_wrapper, zx_status_t, /* no attributes */, 3,
(a, b, c), (
int32_t a,
int32_t b,
int32_t c))
KERNEL_SYSCALL(syscall_test_handle_create, zx_status_t, /* no attributes */, 2,
(return_value, out), (
zx_status_t return_value,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
VDSO_SYSCALL(system_get_dcache_line_size, uint32_t, __CONST, 0,
(), (void))
VDSO_SYSCALL(system_get_num_cpus, uint32_t, __CONST, 0,
(), (void))
VDSO_SYSCALL(system_get_version_string, zx_string_view_t, __CONST, 0,
(), (void))
VDSO_SYSCALL(system_get_physmem, uint64_t, /* no attributes */, 0,
(), (void))
VDSO_SYSCALL(system_get_features, zx_status_t, /* no attributes */, 2,
(kind, features), (
uint32_t kind,
uint32_t* features))
KERNEL_SYSCALL(system_get_event, zx_status_t, /* no attributes */, 3,
(root_job, kind, event), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
uint32_t kind,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* event))
KERNEL_SYSCALL(system_mexec, zx_status_t, /* no attributes */, 3,
(resource, kernel_vmo, bootimage_vmo), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t kernel_vmo,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bootimage_vmo))
KERNEL_SYSCALL(system_mexec_payload_get, zx_status_t, /* no attributes */, 3,
(resource, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(system_powerctl, zx_status_t, /* no attributes */, 3,
(resource, cmd, arg), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t cmd,
const zx_system_powerctl_arg_t* arg))
KERNEL_SYSCALL(task_suspend, zx_status_t, /* no attributes */, 2,
(handle, token), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* token))
KERNEL_SYSCALL(task_suspend_token, zx_status_t, /* no attributes */, 2,
(handle, token), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* token))
KERNEL_SYSCALL(task_create_exception_channel, zx_status_t, /* no attributes */, 3,
(handle, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(task_kill, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(thread_exit, void, __NO_RETURN, 0,
(), (void))
KERNEL_SYSCALL(thread_create, zx_status_t, /* no attributes */, 5,
(process, name, name_size, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process,
const char* name,
size_t name_size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(thread_start, zx_status_t, /* no attributes */, 5,
(handle, thread_entry, stack, arg1, arg2), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t thread_entry,
zx_vaddr_t stack,
uintptr_t arg1,
uintptr_t arg2))
KERNEL_SYSCALL(thread_read_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(thread_write_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
const void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(timer_create, zx_status_t, /* no attributes */, 3,
(options, clock_id, out), (
uint32_t options,
zx_clock_t clock_id,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(timer_set, zx_status_t, /* no attributes */, 3,
(handle, deadline, slack), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t deadline,
zx_duration_t slack))
KERNEL_SYSCALL(timer_cancel, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(vcpu_create, zx_status_t, /* no attributes */, 4,
(guest, options, entry, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t guest,
uint32_t options,
zx_vaddr_t entry,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
BLOCKING_SYSCALL(vcpu_resume, zx_status_t, /* no attributes */, 2,
(handle, packet), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_port_packet_t* packet))
KERNEL_SYSCALL(vcpu_interrupt, zx_status_t, /* no attributes */, 2,
(handle, vector), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t vector))
KERNEL_SYSCALL(vcpu_read_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(vcpu_write_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
const void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(vmar_allocate, zx_status_t, /* no attributes */, 6,
(parent_vmar, options, offset, size, child_vmar, child_addr), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_vmar,
zx_vm_option_t options,
size_t offset,
size_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* child_vmar,
zx_vaddr_t* child_addr))
KERNEL_SYSCALL(vmar_destroy, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
KERNEL_SYSCALL(vmar_map, zx_status_t, /* no attributes */, 7,
(handle, options, vmar_offset, vmo, vmo_offset, len, mapped_addr), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vm_option_t options,
size_t vmar_offset,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
uint64_t vmo_offset,
size_t len,
zx_vaddr_t* mapped_addr))
KERNEL_SYSCALL(vmar_unmap, zx_status_t, /* no attributes */, 3,
(handle, addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t addr,
size_t len))
KERNEL_SYSCALL(vmar_protect, zx_status_t, /* no attributes */, 4,
(handle, options, addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vm_option_t options,
zx_vaddr_t addr,
size_t len))
KERNEL_SYSCALL(vmar_op_range, zx_status_t, /* no attributes */, 6,
(handle, op, address, size, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t op,
zx_vaddr_t address,
size_t size,
void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(vmo_create, zx_status_t, /* no attributes */, 3,
(size, options, out), (
uint64_t size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
BLOCKING_SYSCALL(vmo_read, zx_status_t, /* no attributes */, 4,
(handle, buffer, offset, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
void* buffer,
uint64_t offset,
size_t buffer_size))
BLOCKING_SYSCALL(vmo_write, zx_status_t, /* no attributes */, 4,
(handle, buffer, offset, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
const void* buffer,
uint64_t offset,
size_t buffer_size))
KERNEL_SYSCALL(vmo_get_size, zx_status_t, /* no attributes */, 2,
(handle, size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t* size))
KERNEL_SYSCALL(vmo_set_size, zx_status_t, /* no attributes */, 2,
(handle, size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t size))
BLOCKING_SYSCALL(vmo_op_range, zx_status_t, /* no attributes */, 6,
(handle, op, offset, size, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t op,
uint64_t offset,
uint64_t size,
void* buffer,
size_t buffer_size))
KERNEL_SYSCALL(vmo_create_child, zx_status_t, /* no attributes */, 5,
(handle, options, offset, size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
uint64_t offset,
uint64_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(vmo_set_cache_policy, zx_status_t, /* no attributes */, 2,
(handle, cache_policy), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t cache_policy))
KERNEL_SYSCALL(vmo_replace_as_executable, zx_status_t, /* no attributes */, 3,
(handle, vmex, out), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmex,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(vmo_create_contiguous, zx_status_t, /* no attributes */, 4,
(bti, size, alignment_log2, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bti,
size_t size,
uint32_t alignment_log2,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
KERNEL_SYSCALL(vmo_create_physical, zx_status_t, /* no attributes */, 4,
(resource, paddr, size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
zx_paddr_t paddr,
size_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
----- private-header.h END -----
----- public-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
#ifndef _ZX_SYSCALL_DECL
#error "<zircon/syscalls.h> is the public API header"
#endif
_ZX_SYSCALL_DECL(bti_create, zx_status_t, /* no attributes */, 4,
(iommu, options, bti_id, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t iommu,
uint32_t options,
uint64_t bti_id,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(bti_pin, zx_status_t, /* no attributes */, 8,
(handle, options, vmo, offset, size, addrs, num_addrs, pmt), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
uint64_t offset,
uint64_t size,
zx_paddr_t* addrs,
size_t num_addrs,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* pmt))
_ZX_SYSCALL_DECL(bti_release_quarantine, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
_ZX_SYSCALL_DECL(cache_flush, zx_status_t, /* no attributes */, 3,
(addr, size, options), (
const void* addr,
size_t size,
uint32_t options))
_ZX_SYSCALL_DECL(channel_create, zx_status_t, /* no attributes */, 3,
(options, out0, out1), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))
_ZX_SYSCALL_DECL(channel_read, zx_status_t, /* no attributes */, 8,
(handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("FuchsiaUnchecked")) zx_handle_t handle,
uint32_t options,
void* bytes,
_ZX_SYSCALL_ANNO(acquire_handle("FuchsiaUnchecked")) zx_handle_t* handles,
uint32_t num_bytes,
uint32_t num_handles,
uint32_t* actual_bytes,
uint32_t* actual_handles))
_ZX_SYSCALL_DECL(channel_read_etc, zx_status_t, /* no attributes */, 8,
(handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
void* bytes,
zx_handle_info_t* handles,
uint32_t num_bytes,
uint32_t num_handles,
uint32_t* actual_bytes,
uint32_t* actual_handles))
_ZX_SYSCALL_DECL(channel_write, zx_status_t, /* no attributes */, 6,
(handle, options, bytes, num_bytes, handles, num_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const void* bytes,
uint32_t num_bytes,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) const zx_handle_t* handles,
uint32_t num_handles))
_ZX_SYSCALL_DECL(channel_write_etc, zx_status_t, /* no attributes */, 6,
(handle, options, bytes, num_bytes, handles, num_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const void* bytes,
uint32_t num_bytes,
zx_handle_disposition_t* handles,
uint32_t num_handles))
_ZX_SYSCALL_DECL(channel_call, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
const zx_channel_call_args_t* args,
uint32_t* actual_bytes,
uint32_t* actual_handles))
_ZX_SYSCALL_DECL(channel_call_etc, zx_status_t, /* no attributes */, 6,
(handle, options, deadline, args, actual_bytes, actual_handles), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t deadline,
zx_channel_call_etc_args_t* args,
uint32_t* actual_bytes,
uint32_t* actual_handles))
_ZX_SYSCALL_DECL(clock_get, zx_status_t, /* no attributes */, 2,
(clock_id, out), (
zx_clock_t clock_id,
zx_time_t* out))
_ZX_SYSCALL_DECL(clock_get_monotonic, zx_time_t, /* no attributes */, 0,
(), (void))
_ZX_SYSCALL_DECL(clock_adjust, zx_status_t, /* no attributes */, 3,
(handle, clock_id, offset), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_clock_t clock_id,
int64_t offset))
_ZX_SYSCALL_DECL(clock_create, zx_status_t, /* no attributes */, 3,
(options, args, out), (
uint64_t options,
const void* args,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(clock_read, zx_status_t, /* no attributes */, 2,
(handle, now), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t* now))
_ZX_SYSCALL_DECL(clock_get_details, zx_status_t, /* no attributes */, 3,
(handle, options, details), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t options,
void* details))
_ZX_SYSCALL_DECL(clock_update, zx_status_t, /* no attributes */, 3,
(handle, options, args), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t options,
const void* args))
_ZX_SYSCALL_DECL(cprng_draw, void, /* no attributes */, 2,
(buffer, buffer_size), (
void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(cprng_add_entropy, zx_status_t, /* no attributes */, 2,
(buffer, buffer_size), (
const void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(debug_read, zx_status_t, /* no attributes */, 4,
(handle, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
char* buffer,
size_t buffer_size,
size_t* actual))
_ZX_SYSCALL_DECL(debug_write, zx_status_t, /* no attributes */, 2,
(buffer, buffer_size), (
const char* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(debug_send_command, zx_status_t, /* no attributes */, 3,
(resource, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
const char* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(debuglog_create, zx_status_t, /* no attributes */, 3,
(resource, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(debuglog_write, zx_status_t, /* no attributes */, 4,
(handle, options, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(debuglog_read, zx_status_t, /* no attributes */, 4,
(handle, options, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(event_create, zx_status_t, /* no attributes */, 2,
(options, out), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(eventpair_create, zx_status_t, /* no attributes */, 3,
(options, out0, out1), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))
_ZX_SYSCALL_DECL(exception_get_thread, zx_status_t, /* no attributes */, 2,
(handle, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(exception_get_process, zx_status_t, /* no attributes */, 2,
(handle, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(fifo_create, zx_status_t, /* no attributes */, 5,
(elem_count, elem_size, options, out0, out1), (
size_t elem_count,
size_t elem_size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))
_ZX_SYSCALL_DECL(fifo_read, zx_status_t, /* no attributes */, 5,
(handle, elem_size, data, data_size, actual_count), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
size_t elem_size,
void* data,
size_t data_size,
size_t* actual_count))
_ZX_SYSCALL_DECL(fifo_write, zx_status_t, /* no attributes */, 5,
(handle, elem_size, data, count, actual_count), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
size_t elem_size,
const void* data,
size_t count,
size_t* actual_count))
_ZX_SYSCALL_DECL(framebuffer_get_info, zx_status_t, /* no attributes */, 5,
(resource, format, width, height, stride), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t* format,
uint32_t* width,
uint32_t* height,
uint32_t* stride))
_ZX_SYSCALL_DECL(framebuffer_set_range, zx_status_t, /* no attributes */, 7,
(resource, vmo, len, format, width, height, stride), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
uint32_t len,
uint32_t format,
uint32_t width,
uint32_t height,
uint32_t stride))
_ZX_SYSCALL_DECL(futex_wait, zx_status_t, /* no attributes */, 4,
(value_ptr, current_value, new_futex_owner, deadline), (
const zx_futex_t* value_ptr,
zx_futex_t current_value,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_futex_owner,
zx_time_t deadline))
_ZX_SYSCALL_DECL(futex_wake, zx_status_t, /* no attributes */, 2,
(value_ptr, wake_count), (
const zx_futex_t* value_ptr,
uint32_t wake_count))
_ZX_SYSCALL_DECL(futex_requeue, zx_status_t, /* no attributes */, 6,
(value_ptr, wake_count, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
const zx_futex_t* value_ptr,
uint32_t wake_count,
zx_futex_t current_value,
const zx_futex_t* requeue_ptr,
uint32_t requeue_count,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))
_ZX_SYSCALL_DECL(futex_wake_single_owner, zx_status_t, /* no attributes */, 1,
(value_ptr), (
const zx_futex_t* value_ptr))
_ZX_SYSCALL_DECL(futex_requeue_single_owner, zx_status_t, /* no attributes */, 5,
(value_ptr, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
const zx_futex_t* value_ptr,
zx_futex_t current_value,
const zx_futex_t* requeue_ptr,
uint32_t requeue_count,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))
_ZX_SYSCALL_DECL(futex_get_owner, zx_status_t, /* no attributes */, 2,
(value_ptr, koid), (
const zx_futex_t* value_ptr,
zx_koid_t* koid))
_ZX_SYSCALL_DECL(guest_create, zx_status_t, /* no attributes */, 4,
(resource, options, guest_handle, vmar_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* guest_handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* vmar_handle))
_ZX_SYSCALL_DECL(guest_set_trap, zx_status_t, /* no attributes */, 6,
(handle, kind, addr, size, port_handle, key), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
zx_vaddr_t addr,
size_t size,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
uint64_t key))
_ZX_SYSCALL_DECL(handle_close, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))
_ZX_SYSCALL_DECL(handle_close_many, zx_status_t, /* no attributes */, 2,
(handles, num_handles), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) const zx_handle_t* handles,
size_t num_handles))
_ZX_SYSCALL_DECL(handle_duplicate, zx_status_t, /* no attributes */, 3,
(handle, rights, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_rights_t rights,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(handle_replace, zx_status_t, /* no attributes */, 3,
(handle, rights, out), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
zx_rights_t rights,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(interrupt_create, zx_status_t, /* no attributes */, 4,
(src_obj, src_num, options, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t src_obj,
uint32_t src_num,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))
_ZX_SYSCALL_DECL(interrupt_bind, zx_status_t, /* no attributes */, 4,
(handle, port_handle, key, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
uint64_t key,
uint32_t options))
_ZX_SYSCALL_DECL(interrupt_wait, zx_status_t, /* no attributes */, 2,
(handle, out_timestamp), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t* out_timestamp))
_ZX_SYSCALL_DECL(interrupt_destroy, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
_ZX_SYSCALL_DECL(interrupt_ack, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
_ZX_SYSCALL_DECL(interrupt_trigger, zx_status_t, /* no attributes */, 3,
(handle, options, timestamp), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_time_t timestamp))
_ZX_SYSCALL_DECL(interrupt_bind_vcpu, zx_status_t, /* no attributes */, 3,
(handle, vcpu, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vcpu,
uint32_t options))
_ZX_SYSCALL_DECL(iommu_create, zx_status_t, /* no attributes */, 5,
(resource, type, desc, desc_size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t type,
const void* desc,
size_t desc_size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(ioports_request, zx_status_t, /* no attributes */, 3,
(resource, io_addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint16_t io_addr,
uint32_t len))
_ZX_SYSCALL_DECL(ioports_release, zx_status_t, /* no attributes */, 3,
(resource, io_addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint16_t io_addr,
uint32_t len))
_ZX_SYSCALL_DECL(job_create, zx_status_t, /* no attributes */, 3,
(parent_job, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_job,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(job_set_policy, zx_status_t, /* no attributes */, 5,
(handle, options, topic, policy, policy_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
uint32_t topic,
const void* policy,
uint32_t policy_size))
_ZX_SYSCALL_DECL(job_set_critical, zx_status_t, /* no attributes */, 3,
(job, options, process), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process))
_ZX_SYSCALL_DECL(ktrace_read, zx_status_t, /* no attributes */, 5,
(handle, data, offset, data_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
void* data,
uint32_t offset,
size_t data_size,
size_t* actual))
_ZX_SYSCALL_DECL(ktrace_control, zx_status_t, /* no attributes */, 4,
(handle, action, options, ptr), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t action,
uint32_t options,
void* ptr))
_ZX_SYSCALL_DECL(ktrace_write, zx_status_t, /* no attributes */, 4,
(handle, id, arg0, arg1), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t id,
uint32_t arg0,
uint32_t arg1))
_ZX_SYSCALL_DECL(nanosleep, zx_status_t, /* no attributes */, 1,
(deadline), (
zx_time_t deadline))
_ZX_SYSCALL_DECL(ticks_get, zx_ticks_t, /* no attributes */, 0,
(), (void))
_ZX_SYSCALL_DECL(ticks_per_second, zx_ticks_t, __CONST, 0,
(), (void))
_ZX_SYSCALL_DECL(deadline_after, zx_time_t, /* no attributes */, 1,
(nanoseconds), (
zx_duration_t nanoseconds))
_ZX_SYSCALL_DECL(vmar_unmap_handle_close_thread_exit, zx_status_t, /* no attributes */, 4,
(vmar_handle, addr, size, close_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmar_handle,
zx_vaddr_t addr,
size_t size,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))
_ZX_SYSCALL_DECL(futex_wake_handle_close_thread_exit, void, __NO_RETURN, 4,
(value_ptr, wake_count, new_value, close_handle), (
const zx_futex_t* value_ptr,
uint32_t wake_count,
int32_t new_value,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))
_ZX_SYSCALL_DECL(msi_allocate, zx_status_t, /* no attributes */, 3,
(handle, count, out_allocation), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t count,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_allocation))
_ZX_SYSCALL_DECL(msi_create, zx_status_t, /* no attributes */, 6,
(handle, options, msi_id, vmo, vmo_offset, out_interrupt), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
uint32_t msi_id,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
size_t vmo_offset,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_interrupt))
_ZX_SYSCALL_DECL(mtrace_control, zx_status_t, /* no attributes */, 6,
(handle, kind, action, options, ptr, ptr_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
uint32_t action,
uint32_t options,
void* ptr,
size_t ptr_size))
_ZX_SYSCALL_DECL(object_wait_one, zx_status_t, /* no attributes */, 4,
(handle, signals, deadline, observed), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_signals_t signals,
zx_time_t deadline,
zx_signals_t* observed))
_ZX_SYSCALL_DECL(object_wait_many, zx_status_t, /* no attributes */, 3,
(items, num_items, deadline), (
zx_wait_item_t* items,
size_t num_items,
zx_time_t deadline))
_ZX_SYSCALL_DECL(object_wait_async, zx_status_t, /* no attributes */, 5,
(handle, port, key, signals, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
uint64_t key,
zx_signals_t signals,
uint32_t options))
_ZX_SYSCALL_DECL(object_signal, zx_status_t, /* no attributes */, 3,
(handle, clear_mask, set_mask), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t clear_mask,
uint32_t set_mask))
_ZX_SYSCALL_DECL(object_signal_peer, zx_status_t, /* no attributes */, 3,
(handle, clear_mask, set_mask), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t clear_mask,
uint32_t set_mask))
_ZX_SYSCALL_DECL(object_get_property, zx_status_t, /* no attributes */, 4,
(handle, property, value, value_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t property,
void* value,
size_t value_size))
_ZX_SYSCALL_DECL(object_set_property, zx_status_t, /* no attributes */, 4,
(handle, property, value, value_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t property,
const void* value,
size_t value_size))
_ZX_SYSCALL_DECL(object_get_info, zx_status_t, /* no attributes */, 6,
(handle, topic, buffer, buffer_size, actual, avail), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t topic,
void* buffer,
size_t buffer_size,
size_t* actual,
size_t* avail))
_ZX_SYSCALL_DECL(object_get_child, zx_status_t, /* no attributes */, 4,
(handle, koid, rights, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t koid,
zx_rights_t rights,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(object_set_profile, zx_status_t, /* no attributes */, 3,
(handle, profile, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t profile,
uint32_t options))
_ZX_SYSCALL_DECL(pager_create, zx_status_t, /* no attributes */, 2,
(options, out), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(pager_create_vmo, zx_status_t, /* no attributes */, 6,
(pager, options, port, key, size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
uint64_t key,
uint64_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(pager_detach_vmo, zx_status_t, /* no attributes */, 2,
(pager, vmo), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo))
_ZX_SYSCALL_DECL(pager_supply_pages, zx_status_t, /* no attributes */, 6,
(pager, pager_vmo, offset, length, aux_vmo, aux_offset), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
uint64_t offset,
uint64_t length,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t aux_vmo,
uint64_t aux_offset))
_ZX_SYSCALL_DECL(pager_op_range, zx_status_t, /* no attributes */, 6,
(pager, op, pager_vmo, offset, length, data), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
uint32_t op,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
uint64_t offset,
uint64_t length,
uint64_t data))
_ZX_SYSCALL_DECL(pc_firmware_tables, zx_status_t, /* no attributes */, 3,
(handle, acpi_rsdp, smbios), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_paddr_t* acpi_rsdp,
zx_paddr_t* smbios))
_ZX_SYSCALL_DECL(pci_get_nth_device, zx_status_t, /* no attributes */, 4,
(handle, index, out_info, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t index,
zx_pcie_device_info_t* out_info,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))
_ZX_SYSCALL_DECL(pci_enable_bus_master, zx_status_t, /* no attributes */, 2,
(handle, enable), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t enable))
_ZX_SYSCALL_DECL(pci_reset_device, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
_ZX_SYSCALL_DECL(pci_config_read, zx_status_t, /* no attributes */, 4,
(handle, offset, width, out_val), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint16_t offset,
size_t width,
uint32_t* out_val))
_ZX_SYSCALL_DECL(pci_config_write, zx_status_t, /* no attributes */, 4,
(handle, offset, width, val), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint16_t offset,
size_t width,
uint32_t val))
_ZX_SYSCALL_DECL(pci_cfg_pio_rw, zx_status_t, /* no attributes */, 8,
(handle, bus, dev, func, offset, val, width, write), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint8_t bus,
uint8_t dev,
uint8_t func,
uint8_t offset,
uint32_t* val,
size_t width,
uint32_t write))
_ZX_SYSCALL_DECL(pci_get_bar, zx_status_t, /* no attributes */, 4,
(handle, bar_num, out_bar, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t bar_num,
zx_pci_bar_t* out_bar,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))
_ZX_SYSCALL_DECL(pci_map_interrupt, zx_status_t, /* no attributes */, 3,
(handle, which_irq, out_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
int32_t which_irq,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))
_ZX_SYSCALL_DECL(pci_query_irq_mode, zx_status_t, /* no attributes */, 3,
(handle, mode, out_max_irqs), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t mode,
uint32_t* out_max_irqs))
_ZX_SYSCALL_DECL(pci_set_irq_mode, zx_status_t, /* no attributes */, 3,
(handle, mode, requested_irq_count), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t mode,
uint32_t requested_irq_count))
_ZX_SYSCALL_DECL(pci_init, zx_status_t, /* no attributes */, 3,
(handle, init_buf, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
const zx_pci_init_arg_t* init_buf,
uint32_t len))
_ZX_SYSCALL_DECL(pci_add_subtract_io_range, zx_status_t, /* no attributes */, 5,
(handle, mmio, base, len, add), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t mmio,
uint64_t base,
uint64_t len,
uint32_t add))
_ZX_SYSCALL_DECL(pmt_unpin, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))
_ZX_SYSCALL_DECL(port_create, zx_status_t, /* no attributes */, 2,
(options, out), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(port_queue, zx_status_t, /* no attributes */, 2,
(handle, packet), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
const zx_port_packet_t* packet))
_ZX_SYSCALL_DECL(port_wait, zx_status_t, /* no attributes */, 3,
(handle, deadline, packet), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t deadline,
zx_port_packet_t* packet))
_ZX_SYSCALL_DECL(port_cancel, zx_status_t, /* no attributes */, 3,
(handle, source, key), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t source,
uint64_t key))
_ZX_SYSCALL_DECL(process_exit, void, __NO_RETURN, 1,
(retcode), (
int64_t retcode))
_ZX_SYSCALL_DECL(process_create, zx_status_t, /* no attributes */, 6,
(job, name, name_size, options, proc_handle, vmar_handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
const char* name,
size_t name_size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* proc_handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* vmar_handle))
_ZX_SYSCALL_DECL(process_start, zx_status_t, /* no attributes */, 6,
(handle, thread, entry, stack, arg1, arg2), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t thread,
zx_vaddr_t entry,
zx_vaddr_t stack,
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t arg1,
uintptr_t arg2))
_ZX_SYSCALL_DECL(process_read_memory, zx_status_t, /* no attributes */, 5,
(handle, vaddr, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t vaddr,
void* buffer,
size_t buffer_size,
size_t* actual))
_ZX_SYSCALL_DECL(process_write_memory, zx_status_t, /* no attributes */, 5,
(handle, vaddr, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t vaddr,
const void* buffer,
size_t buffer_size,
size_t* actual))
_ZX_SYSCALL_DECL(profile_create, zx_status_t, /* no attributes */, 4,
(root_job, options, profile, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
uint32_t options,
const zx_profile_info_t* profile,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(resource_create, zx_status_t, /* no attributes */, 7,
(parent_rsrc, options, base, size, name, name_size, resource_out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_rsrc,
uint32_t options,
uint64_t base,
size_t size,
const char* name,
size_t name_size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* resource_out))
_ZX_SYSCALL_DECL(smc_call, zx_status_t, /* no attributes */, 3,
(handle, parameters, out_smc_result), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
const zx_smc_parameters_t* parameters,
zx_smc_result_t* out_smc_result))
_ZX_SYSCALL_DECL(socket_create, zx_status_t, /* no attributes */, 3,
(options, out0, out1), (
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))
_ZX_SYSCALL_DECL(socket_write, zx_status_t, /* no attributes */, 5,
(handle, options, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const void* buffer,
size_t buffer_size,
size_t* actual))
_ZX_SYSCALL_DECL(socket_read, zx_status_t, /* no attributes */, 5,
(handle, options, buffer, buffer_size, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
void* buffer,
size_t buffer_size,
size_t* actual))
_ZX_SYSCALL_DECL(socket_shutdown, zx_status_t, /* no attributes */, 2,
(handle, options), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options))
_ZX_SYSCALL_DECL(stream_create, zx_status_t, /* no attributes */, 4,
(options, vmo, seek, out_stream), (
uint32_t options,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
zx_off_t seek,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_stream))
_ZX_SYSCALL_DECL(stream_writev, zx_status_t, /* no attributes */, 5,
(handle, options, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
const zx_iovec_t* vector,
size_t num_vector,
size_t* actual))
_ZX_SYSCALL_DECL(stream_writev_at, zx_status_t, /* no attributes */, 6,
(handle, options, offset, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_off_t offset,
const zx_iovec_t* vector,
size_t num_vector,
size_t* actual))
_ZX_SYSCALL_DECL(stream_readv, zx_status_t, /* no attributes */, 5,
(handle, options, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_iovec_t* vector,
size_t num_vector,
size_t* actual))
_ZX_SYSCALL_DECL(stream_readv_at, zx_status_t, /* no attributes */, 6,
(handle, options, offset, vector, num_vector, actual), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
zx_off_t offset,
zx_iovec_t* vector,
size_t num_vector,
size_t* actual))
_ZX_SYSCALL_DECL(stream_seek, zx_status_t, /* no attributes */, 4,
(handle, whence, offset, out_seek), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_stream_seek_origin_t whence,
int64_t offset,
zx_off_t* out_seek))
_ZX_SYSCALL_DECL(system_get_dcache_line_size, uint32_t, __CONST, 0,
(), (void))
_ZX_SYSCALL_DECL(system_get_num_cpus, uint32_t, __CONST, 0,
(), (void))
_ZX_SYSCALL_DECL(system_get_version_string, zx_string_view_t, __CONST, 0,
(), (void))
_ZX_SYSCALL_DECL(system_get_physmem, uint64_t, /* no attributes */, 0,
(), (void))
_ZX_SYSCALL_DECL(system_get_features, zx_status_t, /* no attributes */, 2,
(kind, features), (
uint32_t kind,
uint32_t* features))
_ZX_SYSCALL_DECL(system_get_event, zx_status_t, /* no attributes */, 3,
(root_job, kind, event), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
uint32_t kind,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* event))
_ZX_SYSCALL_DECL(system_mexec, zx_status_t, /* no attributes */, 3,
(resource, kernel_vmo, bootimage_vmo), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t kernel_vmo,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bootimage_vmo))
_ZX_SYSCALL_DECL(system_mexec_payload_get, zx_status_t, /* no attributes */, 3,
(resource, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(system_powerctl, zx_status_t, /* no attributes */, 3,
(resource, cmd, arg), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
uint32_t cmd,
const zx_system_powerctl_arg_t* arg))
_ZX_SYSCALL_DECL(task_suspend, zx_status_t, /* no attributes */, 2,
(handle, token), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* token))
_ZX_SYSCALL_DECL(task_suspend_token, zx_status_t, /* no attributes */, 2,
(handle, token), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* token))
_ZX_SYSCALL_DECL(task_create_exception_channel, zx_status_t, /* no attributes */, 3,
(handle, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(task_kill, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
_ZX_SYSCALL_DECL(thread_exit, void, __NO_RETURN, 0,
(), (void))
_ZX_SYSCALL_DECL(thread_create, zx_status_t, /* no attributes */, 5,
(process, name, name_size, options, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process,
const char* name,
size_t name_size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(thread_start, zx_status_t, /* no attributes */, 5,
(handle, thread_entry, stack, arg1, arg2), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t thread_entry,
zx_vaddr_t stack,
uintptr_t arg1,
uintptr_t arg2))
_ZX_SYSCALL_DECL(thread_read_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(thread_write_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
const void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(timer_create, zx_status_t, /* no attributes */, 3,
(options, clock_id, out), (
uint32_t options,
zx_clock_t clock_id,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(timer_set, zx_status_t, /* no attributes */, 3,
(handle, deadline, slack), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_time_t deadline,
zx_duration_t slack))
_ZX_SYSCALL_DECL(timer_cancel, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
_ZX_SYSCALL_DECL(vcpu_create, zx_status_t, /* no attributes */, 4,
(guest, options, entry, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t guest,
uint32_t options,
zx_vaddr_t entry,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(vcpu_resume, zx_status_t, /* no attributes */, 2,
(handle, packet), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_port_packet_t* packet))
_ZX_SYSCALL_DECL(vcpu_interrupt, zx_status_t, /* no attributes */, 2,
(handle, vector), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t vector))
_ZX_SYSCALL_DECL(vcpu_read_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(vcpu_write_state, zx_status_t, /* no attributes */, 4,
(handle, kind, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t kind,
const void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(vmar_allocate, zx_status_t, /* no attributes */, 6,
(parent_vmar, options, offset, size, child_vmar, child_addr), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_vmar,
zx_vm_option_t options,
size_t offset,
size_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* child_vmar,
zx_vaddr_t* child_addr))
_ZX_SYSCALL_DECL(vmar_destroy, zx_status_t, /* no attributes */, 1,
(handle), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))
_ZX_SYSCALL_DECL(vmar_map, zx_status_t, /* no attributes */, 7,
(handle, options, vmar_offset, vmo, vmo_offset, len, mapped_addr), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vm_option_t options,
size_t vmar_offset,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
uint64_t vmo_offset,
size_t len,
zx_vaddr_t* mapped_addr))
_ZX_SYSCALL_DECL(vmar_unmap, zx_status_t, /* no attributes */, 3,
(handle, addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vaddr_t addr,
size_t len))
_ZX_SYSCALL_DECL(vmar_protect, zx_status_t, /* no attributes */, 4,
(handle, options, addr, len), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
zx_vm_option_t options,
zx_vaddr_t addr,
size_t len))
_ZX_SYSCALL_DECL(vmar_op_range, zx_status_t, /* no attributes */, 6,
(handle, op, address, size, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t op,
zx_vaddr_t address,
size_t size,
void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(vmo_create, zx_status_t, /* no attributes */, 3,
(size, options, out), (
uint64_t size,
uint32_t options,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(vmo_read, zx_status_t, /* no attributes */, 4,
(handle, buffer, offset, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
void* buffer,
uint64_t offset,
size_t buffer_size))
_ZX_SYSCALL_DECL(vmo_write, zx_status_t, /* no attributes */, 4,
(handle, buffer, offset, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
const void* buffer,
uint64_t offset,
size_t buffer_size))
_ZX_SYSCALL_DECL(vmo_get_size, zx_status_t, /* no attributes */, 2,
(handle, size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t* size))
_ZX_SYSCALL_DECL(vmo_set_size, zx_status_t, /* no attributes */, 2,
(handle, size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint64_t size))
_ZX_SYSCALL_DECL(vmo_op_range, zx_status_t, /* no attributes */, 6,
(handle, op, offset, size, buffer, buffer_size), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t op,
uint64_t offset,
uint64_t size,
void* buffer,
size_t buffer_size))
_ZX_SYSCALL_DECL(vmo_create_child, zx_status_t, /* no attributes */, 5,
(handle, options, offset, size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t options,
uint64_t offset,
uint64_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(vmo_set_cache_policy, zx_status_t, /* no attributes */, 2,
(handle, cache_policy), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
uint32_t cache_policy))
_ZX_SYSCALL_DECL(vmo_replace_as_executable, zx_status_t, /* no attributes */, 3,
(handle, vmex, out), (
_ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmex,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(vmo_create_contiguous, zx_status_t, /* no attributes */, 4,
(bti, size, alignment_log2, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bti,
size_t size,
uint32_t alignment_log2,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
_ZX_SYSCALL_DECL(vmo_create_physical, zx_status_t, /* no attributes */, 4,
(resource, paddr, size, out), (
_ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
zx_paddr_t paddr,
size_t size,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
----- public-header.h END -----
----- rust.rs START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
// re-export the types defined in the fuchsia-zircon-types crate
pub use fuchsia_zircon_types::*;
// only link against zircon when targeting Fuchsia
#[cfg(target_os = "fuchsia")]
#[link(name = "zircon")]
extern {
pub fn zx_bti_create(
iommu: zx_handle_t,
options: u32,
bti_id: u64,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_bti_pin(
handle: zx_handle_t,
options: u32,
vmo: zx_handle_t,
offset: u64,
size: u64,
addrs: *mut zx_paddr_t,
num_addrs: usize,
pmt: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_bti_release_quarantine(
handle: zx_handle_t
) -> zx_status_t;
pub fn zx_cache_flush(
addr: *const u8,
size: usize,
options: u32
) -> zx_status_t;
pub fn zx_channel_create(
options: u32,
out0: *mut zx_handle_t,
out1: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_channel_read(
handle: zx_handle_t,
options: u32,
bytes: *mut u8,
handles: *mut zx_handle_t,
num_bytes: u32,
num_handles: u32,
actual_bytes: *mut u32,
actual_handles: *mut u32
) -> zx_status_t;
pub fn zx_channel_read_etc(
handle: zx_handle_t,
options: u32,
bytes: *mut u8,
handles: *mut zx_handle_info_t,
num_bytes: u32,
num_handles: u32,
actual_bytes: *mut u32,
actual_handles: *mut u32
) -> zx_status_t;
pub fn zx_channel_write(
handle: zx_handle_t,
options: u32,
bytes: *const u8,
num_bytes: u32,
handles: *const zx_handle_t,
num_handles: u32
) -> zx_status_t;
pub fn zx_channel_write_etc(
handle: zx_handle_t,
options: u32,
bytes: *const u8,
num_bytes: u32,
handles: *mut zx_handle_disposition_t,
num_handles: u32
) -> zx_status_t;
pub fn zx_channel_call(
handle: zx_handle_t,
options: u32,
deadline: zx_time_t,
args: *const zx_channel_call_args_t,
actual_bytes: *mut u32,
actual_handles: *mut u32
) -> zx_status_t;
pub fn zx_channel_call_etc(
handle: zx_handle_t,
options: u32,
deadline: zx_time_t,
args: *mut zx_channel_call_etc_args_t,
actual_bytes: *mut u32,
actual_handles: *mut u32
) -> zx_status_t;
pub fn zx_clock_get(
clock_id: zx_clock_t,
out: *mut zx_time_t
) -> zx_status_t;
pub fn zx_clock_get_monotonic(
) -> zx_time_t;
pub fn zx_clock_adjust(
handle: zx_handle_t,
clock_id: zx_clock_t,
offset: i64
) -> zx_status_t;
pub fn zx_clock_create(
options: u64,
args: *const u8,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_clock_read(
handle: zx_handle_t,
now: *mut zx_time_t
) -> zx_status_t;
pub fn zx_clock_get_details(
handle: zx_handle_t,
options: u64,
details: *mut u8
) -> zx_status_t;
pub fn zx_clock_update(
handle: zx_handle_t,
options: u64,
args: *const u8
) -> zx_status_t;
pub fn zx_cprng_draw(
buffer: *mut u8,
buffer_size: usize
);
pub fn zx_cprng_add_entropy(
buffer: *const u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_debug_read(
handle: zx_handle_t,
buffer: *mut u8,
buffer_size: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_debug_write(
buffer: *const u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_debug_send_command(
resource: zx_handle_t,
buffer: *const u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_debuglog_create(
resource: zx_handle_t,
options: u32,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_debuglog_write(
handle: zx_handle_t,
options: u32,
buffer: *const u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_debuglog_read(
handle: zx_handle_t,
options: u32,
buffer: *mut u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_event_create(
options: u32,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_eventpair_create(
options: u32,
out0: *mut zx_handle_t,
out1: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_exception_get_thread(
handle: zx_handle_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_exception_get_process(
handle: zx_handle_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_fifo_create(
elem_count: usize,
elem_size: usize,
options: u32,
out0: *mut zx_handle_t,
out1: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_fifo_read(
handle: zx_handle_t,
elem_size: usize,
data: *mut u8,
data_size: usize,
actual_count: *mut usize
) -> zx_status_t;
pub fn zx_fifo_write(
handle: zx_handle_t,
elem_size: usize,
data: *const u8,
count: usize,
actual_count: *mut usize
) -> zx_status_t;
pub fn zx_framebuffer_get_info(
resource: zx_handle_t,
format: *mut u32,
width: *mut u32,
height: *mut u32,
stride: *mut u32
) -> zx_status_t;
pub fn zx_framebuffer_set_range(
resource: zx_handle_t,
vmo: zx_handle_t,
len: u32,
format: u32,
width: u32,
height: u32,
stride: u32
) -> zx_status_t;
pub fn zx_futex_wait(
value_ptr: *const zx_futex_t,
current_value: zx_futex_t,
new_futex_owner: zx_handle_t,
deadline: zx_time_t
) -> zx_status_t;
pub fn zx_futex_wake(
value_ptr: *const zx_futex_t,
wake_count: u32
) -> zx_status_t;
pub fn zx_futex_requeue(
value_ptr: *const zx_futex_t,
wake_count: u32,
current_value: zx_futex_t,
requeue_ptr: *const zx_futex_t,
requeue_count: u32,
new_requeue_owner: zx_handle_t
) -> zx_status_t;
pub fn zx_futex_wake_single_owner(
value_ptr: *const zx_futex_t
) -> zx_status_t;
pub fn zx_futex_requeue_single_owner(
value_ptr: *const zx_futex_t,
current_value: zx_futex_t,
requeue_ptr: *const zx_futex_t,
requeue_count: u32,
new_requeue_owner: zx_handle_t
) -> zx_status_t;
pub fn zx_futex_get_owner(
value_ptr: *const zx_futex_t,
koid: *mut zx_koid_t
) -> zx_status_t;
pub fn zx_guest_create(
resource: zx_handle_t,
options: u32,
guest_handle: *mut zx_handle_t,
vmar_handle: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_guest_set_trap(
handle: zx_handle_t,
kind: u32,
addr: zx_vaddr_t,
size: usize,
port_handle: zx_handle_t,
key: u64
) -> zx_status_t;
pub fn zx_handle_close(
handle: zx_handle_t
) -> zx_status_t;
pub fn zx_handle_close_many(
handles: *const zx_handle_t,
num_handles: usize
) -> zx_status_t;
pub fn zx_handle_duplicate(
handle: zx_handle_t,
rights: zx_rights_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_handle_replace(
handle: zx_handle_t,
rights: zx_rights_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_interrupt_create(
src_obj: zx_handle_t,
src_num: u32,
options: u32,
out_handle: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_interrupt_bind(
handle: zx_handle_t,
port_handle: zx_handle_t,
key: u64,
options: u32
) -> zx_status_t;
pub fn zx_interrupt_wait(
handle: zx_handle_t,
out_timestamp: *mut zx_time_t
) -> zx_status_t;
pub fn zx_interrupt_destroy(
handle: zx_handle_t
) -> zx_status_t;
pub fn zx_interrupt_ack(
handle: zx_handle_t
) -> zx_status_t;
pub fn zx_interrupt_trigger(
handle: zx_handle_t,
options: u32,
timestamp: zx_time_t
) -> zx_status_t;
pub fn zx_interrupt_bind_vcpu(
handle: zx_handle_t,
vcpu: zx_handle_t,
options: u32
) -> zx_status_t;
pub fn zx_iommu_create(
resource: zx_handle_t,
ty: u32,
desc: *const u8,
desc_size: usize,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_ioports_request(
resource: zx_handle_t,
io_addr: u16,
len: u32
) -> zx_status_t;
pub fn zx_ioports_release(
resource: zx_handle_t,
io_addr: u16,
len: u32
) -> zx_status_t;
pub fn zx_job_create(
parent_job: zx_handle_t,
options: u32,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_job_set_policy(
handle: zx_handle_t,
options: u32,
topic: u32,
policy: *const u8,
policy_size: u32
) -> zx_status_t;
pub fn zx_job_set_critical(
job: zx_handle_t,
options: u32,
process: zx_handle_t
) -> zx_status_t;
pub fn zx_ktrace_read(
handle: zx_handle_t,
data: *mut u8,
offset: u32,
data_size: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_ktrace_control(
handle: zx_handle_t,
action: u32,
options: u32,
ptr: *mut u8
) -> zx_status_t;
pub fn zx_ktrace_write(
handle: zx_handle_t,
id: u32,
arg0: u32,
arg1: u32
) -> zx_status_t;
pub fn zx_nanosleep(
deadline: zx_time_t
) -> zx_status_t;
pub fn zx_ticks_get(
) -> zx_ticks_t;
pub fn zx_ticks_per_second(
) -> zx_ticks_t;
pub fn zx_deadline_after(
nanoseconds: zx_duration_t
) -> zx_time_t;
pub fn zx_vmar_unmap_handle_close_thread_exit(
vmar_handle: zx_handle_t,
addr: zx_vaddr_t,
size: usize,
close_handle: zx_handle_t
) -> zx_status_t;
pub fn zx_futex_wake_handle_close_thread_exit(
value_ptr: *const zx_futex_t,
wake_count: u32,
new_value: i32,
close_handle: zx_handle_t
);
pub fn zx_msi_allocate(
handle: zx_handle_t,
count: u32,
out_allocation: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_msi_create(
handle: zx_handle_t,
options: u32,
msi_id: u32,
vmo: zx_handle_t,
vmo_offset: usize,
out_interrupt: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_mtrace_control(
handle: zx_handle_t,
kind: u32,
action: u32,
options: u32,
ptr: *mut u8,
ptr_size: usize
) -> zx_status_t;
pub fn zx_object_wait_one(
handle: zx_handle_t,
signals: zx_signals_t,
deadline: zx_time_t,
observed: *mut zx_signals_t
) -> zx_status_t;
pub fn zx_object_wait_many(
items: *mut zx_wait_item_t,
num_items: usize,
deadline: zx_time_t
) -> zx_status_t;
pub fn zx_object_wait_async(
handle: zx_handle_t,
port: zx_handle_t,
key: u64,
signals: zx_signals_t,
options: u32
) -> zx_status_t;
pub fn zx_object_signal(
handle: zx_handle_t,
clear_mask: u32,
set_mask: u32
) -> zx_status_t;
pub fn zx_object_signal_peer(
handle: zx_handle_t,
clear_mask: u32,
set_mask: u32
) -> zx_status_t;
pub fn zx_object_get_property(
handle: zx_handle_t,
property: u32,
value: *mut u8,
value_size: usize
) -> zx_status_t;
pub fn zx_object_set_property(
handle: zx_handle_t,
property: u32,
value: *const u8,
value_size: usize
) -> zx_status_t;
pub fn zx_object_get_info(
handle: zx_handle_t,
topic: u32,
buffer: *mut u8,
buffer_size: usize,
actual: *mut usize,
avail: *mut usize
) -> zx_status_t;
pub fn zx_object_get_child(
handle: zx_handle_t,
koid: u64,
rights: zx_rights_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_object_set_profile(
handle: zx_handle_t,
profile: zx_handle_t,
options: u32
) -> zx_status_t;
pub fn zx_pager_create(
options: u32,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_pager_create_vmo(
pager: zx_handle_t,
options: u32,
port: zx_handle_t,
key: u64,
size: u64,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_pager_detach_vmo(
pager: zx_handle_t,
vmo: zx_handle_t
) -> zx_status_t;
pub fn zx_pager_supply_pages(
pager: zx_handle_t,
pager_vmo: zx_handle_t,
offset: u64,
length: u64,
aux_vmo: zx_handle_t,
aux_offset: u64
) -> zx_status_t;
pub fn zx_pager_op_range(
pager: zx_handle_t,
op: u32,
pager_vmo: zx_handle_t,
offset: u64,
length: u64,
data: u64
) -> zx_status_t;
pub fn zx_pc_firmware_tables(
handle: zx_handle_t,
acpi_rsdp: *mut zx_paddr_t,
smbios: *mut zx_paddr_t
) -> zx_status_t;
pub fn zx_pci_get_nth_device(
handle: zx_handle_t,
index: u32,
out_info: *mut zx_pcie_device_info_t,
out_handle: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_pci_enable_bus_master(
handle: zx_handle_t,
enable: u32
) -> zx_status_t;
pub fn zx_pci_reset_device(
handle: zx_handle_t
) -> zx_status_t;
pub fn zx_pci_config_read(
handle: zx_handle_t,
offset: u16,
width: usize,
out_val: *mut u32
) -> zx_status_t;
pub fn zx_pci_config_write(
handle: zx_handle_t,
offset: u16,
width: usize,
val: u32
) -> zx_status_t;
pub fn zx_pci_cfg_pio_rw(
handle: zx_handle_t,
bus: u8,
dev: u8,
func: u8,
offset: u8,
val: *mut u32,
width: usize,
write: u32
) -> zx_status_t;
pub fn zx_pci_get_bar(
handle: zx_handle_t,
bar_num: u32,
out_bar: *mut zx_pci_bar_t,
out_handle: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_pci_map_interrupt(
handle: zx_handle_t,
which_irq: i32,
out_handle: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_pci_query_irq_mode(
handle: zx_handle_t,
mode: u32,
out_max_irqs: *mut u32
) -> zx_status_t;
pub fn zx_pci_set_irq_mode(
handle: zx_handle_t,
mode: u32,
requested_irq_count: u32
) -> zx_status_t;
pub fn zx_pci_init(
handle: zx_handle_t,
init_buf: *const zx_pci_init_arg_t,
len: u32
) -> zx_status_t;
pub fn zx_pci_add_subtract_io_range(
handle: zx_handle_t,
mmio: u32,
base: u64,
len: u64,
add: u32
) -> zx_status_t;
pub fn zx_pmt_unpin(
handle: zx_handle_t
) -> zx_status_t;
pub fn zx_port_create(
options: u32,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_port_queue(
handle: zx_handle_t,
packet: *const zx_port_packet_t
) -> zx_status_t;
pub fn zx_port_wait(
handle: zx_handle_t,
deadline: zx_time_t,
packet: *mut zx_port_packet_t
) -> zx_status_t;
pub fn zx_port_cancel(
handle: zx_handle_t,
source: zx_handle_t,
key: u64
) -> zx_status_t;
pub fn zx_process_exit(
retcode: i64
);
pub fn zx_process_create(
job: zx_handle_t,
name: *const u8,
name_size: usize,
options: u32,
proc_handle: *mut zx_handle_t,
vmar_handle: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_process_start(
handle: zx_handle_t,
thread: zx_handle_t,
entry: zx_vaddr_t,
stack: zx_vaddr_t,
arg1: zx_handle_t,
arg2: usize
) -> zx_status_t;
pub fn zx_process_read_memory(
handle: zx_handle_t,
vaddr: zx_vaddr_t,
buffer: *mut u8,
buffer_size: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_process_write_memory(
handle: zx_handle_t,
vaddr: zx_vaddr_t,
buffer: *const u8,
buffer_size: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_profile_create(
root_job: zx_handle_t,
options: u32,
profile: *const zx_profile_info_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_resource_create(
parent_rsrc: zx_handle_t,
options: u32,
base: u64,
size: usize,
name: *const u8,
name_size: usize,
resource_out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_smc_call(
handle: zx_handle_t,
parameters: *const zx_smc_parameters_t,
out_smc_result: *mut zx_smc_result_t
) -> zx_status_t;
pub fn zx_socket_create(
options: u32,
out0: *mut zx_handle_t,
out1: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_socket_write(
handle: zx_handle_t,
options: u32,
buffer: *const u8,
buffer_size: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_socket_read(
handle: zx_handle_t,
options: u32,
buffer: *mut u8,
buffer_size: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_socket_shutdown(
handle: zx_handle_t,
options: u32
) -> zx_status_t;
pub fn zx_stream_create(
options: u32,
vmo: zx_handle_t,
seek: zx_off_t,
out_stream: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_stream_writev(
handle: zx_handle_t,
options: u32,
vector: *const zx_iovec_t,
num_vector: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_stream_writev_at(
handle: zx_handle_t,
options: u32,
offset: zx_off_t,
vector: *const zx_iovec_t,
num_vector: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_stream_readv(
handle: zx_handle_t,
options: u32,
vector: *mut zx_iovec_t,
num_vector: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_stream_readv_at(
handle: zx_handle_t,
options: u32,
offset: zx_off_t,
vector: *mut zx_iovec_t,
num_vector: usize,
actual: *mut usize
) -> zx_status_t;
pub fn zx_stream_seek(
handle: zx_handle_t,
whence: zx_stream_seek_origin_t,
offset: i64,
out_seek: *mut zx_off_t
) -> zx_status_t;
pub fn zx_syscall_test_0(
) -> zx_status_t;
pub fn zx_syscall_test_1(
a: i32
) -> zx_status_t;
pub fn zx_syscall_test_2(
a: i32,
b: i32
) -> zx_status_t;
pub fn zx_syscall_test_3(
a: i32,
b: i32,
c: i32
) -> zx_status_t;
pub fn zx_syscall_test_4(
a: i32,
b: i32,
c: i32,
d: i32
) -> zx_status_t;
pub fn zx_syscall_test_5(
a: i32,
b: i32,
c: i32,
d: i32,
e: i32
) -> zx_status_t;
pub fn zx_syscall_test_6(
a: i32,
b: i32,
c: i32,
d: i32,
e: i32,
f: i32
) -> zx_status_t;
pub fn zx_syscall_test_7(
a: i32,
b: i32,
c: i32,
d: i32,
e: i32,
f: i32,
g: i32
) -> zx_status_t;
pub fn zx_syscall_test_8(
a: i32,
b: i32,
c: i32,
d: i32,
e: i32,
f: i32,
g: i32,
h: i32
) -> zx_status_t;
pub fn zx_syscall_test_wrapper(
a: i32,
b: i32,
c: i32
) -> zx_status_t;
pub fn zx_syscall_test_handle_create(
return_value: zx_status_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_system_get_dcache_line_size(
) -> u32;
pub fn zx_system_get_num_cpus(
) -> u32;
pub fn zx_system_get_version_string(
) -> zx_string_view_t;
pub fn zx_system_get_physmem(
) -> u64;
pub fn zx_system_get_features(
kind: u32,
features: *mut u32
) -> zx_status_t;
pub fn zx_system_get_event(
root_job: zx_handle_t,
kind: u32,
event: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_system_mexec(
resource: zx_handle_t,
kernel_vmo: zx_handle_t,
bootimage_vmo: zx_handle_t
) -> zx_status_t;
pub fn zx_system_mexec_payload_get(
resource: zx_handle_t,
buffer: *mut u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_system_powerctl(
resource: zx_handle_t,
cmd: u32,
arg: *const zx_system_powerctl_arg_t
) -> zx_status_t;
pub fn zx_task_suspend(
handle: zx_handle_t,
token: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_task_suspend_token(
handle: zx_handle_t,
token: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_task_create_exception_channel(
handle: zx_handle_t,
options: u32,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_task_kill(
handle: zx_handle_t
) -> zx_status_t;
pub fn zx_thread_exit(
);
pub fn zx_thread_create(
process: zx_handle_t,
name: *const u8,
name_size: usize,
options: u32,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_thread_start(
handle: zx_handle_t,
thread_entry: zx_vaddr_t,
stack: zx_vaddr_t,
arg1: usize,
arg2: usize
) -> zx_status_t;
pub fn zx_thread_read_state(
handle: zx_handle_t,
kind: u32,
buffer: *mut u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_thread_write_state(
handle: zx_handle_t,
kind: u32,
buffer: *const u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_timer_create(
options: u32,
clock_id: zx_clock_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_timer_set(
handle: zx_handle_t,
deadline: zx_time_t,
slack: zx_duration_t
) -> zx_status_t;
pub fn zx_timer_cancel(
handle: zx_handle_t
) -> zx_status_t;
pub fn zx_vcpu_create(
guest: zx_handle_t,
options: u32,
entry: zx_vaddr_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_vcpu_resume(
handle: zx_handle_t,
packet: *mut zx_port_packet_t
) -> zx_status_t;
pub fn zx_vcpu_interrupt(
handle: zx_handle_t,
vector: u32
) -> zx_status_t;
pub fn zx_vcpu_read_state(
handle: zx_handle_t,
kind: u32,
buffer: *mut u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_vcpu_write_state(
handle: zx_handle_t,
kind: u32,
buffer: *const u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_vmar_allocate(
parent_vmar: zx_handle_t,
options: zx_vm_option_t,
offset: usize,
size: usize,
child_vmar: *mut zx_handle_t,
child_addr: *mut zx_vaddr_t
) -> zx_status_t;
pub fn zx_vmar_destroy(
handle: zx_handle_t
) -> zx_status_t;
pub fn zx_vmar_map(
handle: zx_handle_t,
options: zx_vm_option_t,
vmar_offset: usize,
vmo: zx_handle_t,
vmo_offset: u64,
len: usize,
mapped_addr: *mut zx_vaddr_t
) -> zx_status_t;
pub fn zx_vmar_unmap(
handle: zx_handle_t,
addr: zx_vaddr_t,
len: usize
) -> zx_status_t;
pub fn zx_vmar_protect(
handle: zx_handle_t,
options: zx_vm_option_t,
addr: zx_vaddr_t,
len: usize
) -> zx_status_t;
pub fn zx_vmar_op_range(
handle: zx_handle_t,
op: u32,
address: zx_vaddr_t,
size: usize,
buffer: *mut u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_vmo_create(
size: u64,
options: u32,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_vmo_read(
handle: zx_handle_t,
buffer: *mut u8,
offset: u64,
buffer_size: usize
) -> zx_status_t;
pub fn zx_vmo_write(
handle: zx_handle_t,
buffer: *const u8,
offset: u64,
buffer_size: usize
) -> zx_status_t;
pub fn zx_vmo_get_size(
handle: zx_handle_t,
size: *mut u64
) -> zx_status_t;
pub fn zx_vmo_set_size(
handle: zx_handle_t,
size: u64
) -> zx_status_t;
pub fn zx_vmo_op_range(
handle: zx_handle_t,
op: u32,
offset: u64,
size: u64,
buffer: *mut u8,
buffer_size: usize
) -> zx_status_t;
pub fn zx_vmo_create_child(
handle: zx_handle_t,
options: u32,
offset: u64,
size: u64,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_vmo_set_cache_policy(
handle: zx_handle_t,
cache_policy: u32
) -> zx_status_t;
pub fn zx_vmo_replace_as_executable(
handle: zx_handle_t,
vmex: zx_handle_t,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_vmo_create_contiguous(
bti: zx_handle_t,
size: usize,
alignment_log2: u32,
out: *mut zx_handle_t
) -> zx_status_t;
pub fn zx_vmo_create_physical(
resource: zx_handle_t,
paddr: zx_paddr_t,
size: usize,
out: *mut zx_handle_t
) -> zx_status_t;
}
----- rust.rs END -----
----- syscall-numbers.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
#define ZX_SYS_bti_create 0
#define ZX_SYS_bti_pin 1
#define ZX_SYS_bti_release_quarantine 2
#define ZX_SYS_channel_create 3
#define ZX_SYS_channel_read 4
#define ZX_SYS_channel_read_etc 5
#define ZX_SYS_channel_write 6
#define ZX_SYS_channel_write_etc 7
#define ZX_SYS_channel_call_noretry 8
#define ZX_SYS_channel_call_finish 9
#define ZX_SYS_channel_call_etc_noretry 10
#define ZX_SYS_channel_call_etc_finish 11
#define ZX_SYS_clock_get 12
#define ZX_SYS_clock_adjust 13
#define ZX_SYS_clock_get_monotonic_via_kernel 14
#define ZX_SYS_clock_create 15
#define ZX_SYS_clock_read 16
#define ZX_SYS_clock_get_details 17
#define ZX_SYS_clock_update 18
#define ZX_SYS_cprng_draw_once 19
#define ZX_SYS_cprng_add_entropy 20
#define ZX_SYS_debug_read 21
#define ZX_SYS_debug_write 22
#define ZX_SYS_debug_send_command 23
#define ZX_SYS_debuglog_create 24
#define ZX_SYS_debuglog_write 25
#define ZX_SYS_debuglog_read 26
#define ZX_SYS_event_create 27
#define ZX_SYS_eventpair_create 28
#define ZX_SYS_exception_get_thread 29
#define ZX_SYS_exception_get_process 30
#define ZX_SYS_fifo_create 31
#define ZX_SYS_fifo_read 32
#define ZX_SYS_fifo_write 33
#define ZX_SYS_framebuffer_get_info 34
#define ZX_SYS_framebuffer_set_range 35
#define ZX_SYS_futex_wait 36
#define ZX_SYS_futex_wake 37
#define ZX_SYS_futex_requeue 38
#define ZX_SYS_futex_wake_single_owner 39
#define ZX_SYS_futex_requeue_single_owner 40
#define ZX_SYS_futex_get_owner 41
#define ZX_SYS_guest_create 42
#define ZX_SYS_guest_set_trap 43
#define ZX_SYS_handle_close 44
#define ZX_SYS_handle_close_many 45
#define ZX_SYS_handle_duplicate 46
#define ZX_SYS_handle_replace 47
#define ZX_SYS_interrupt_create 48
#define ZX_SYS_interrupt_bind 49
#define ZX_SYS_interrupt_wait 50
#define ZX_SYS_interrupt_destroy 51
#define ZX_SYS_interrupt_ack 52
#define ZX_SYS_interrupt_trigger 53
#define ZX_SYS_interrupt_bind_vcpu 54
#define ZX_SYS_iommu_create 55
#define ZX_SYS_ioports_request 56
#define ZX_SYS_ioports_release 57
#define ZX_SYS_job_create 58
#define ZX_SYS_job_set_policy 59
#define ZX_SYS_job_set_critical 60
#define ZX_SYS_ktrace_read 61
#define ZX_SYS_ktrace_control 62
#define ZX_SYS_ktrace_write 63
#define ZX_SYS_nanosleep 64
#define ZX_SYS_ticks_get_via_kernel 65
#define ZX_SYS_msi_allocate 66
#define ZX_SYS_msi_create 67
#define ZX_SYS_mtrace_control 68
#define ZX_SYS_object_wait_one 69
#define ZX_SYS_object_wait_many 70
#define ZX_SYS_object_wait_async 71
#define ZX_SYS_object_signal 72
#define ZX_SYS_object_signal_peer 73
#define ZX_SYS_object_get_property 74
#define ZX_SYS_object_set_property 75
#define ZX_SYS_object_get_info 76
#define ZX_SYS_object_get_child 77
#define ZX_SYS_object_set_profile 78
#define ZX_SYS_pager_create 79
#define ZX_SYS_pager_create_vmo 80
#define ZX_SYS_pager_detach_vmo 81
#define ZX_SYS_pager_supply_pages 82
#define ZX_SYS_pager_op_range 83
#define ZX_SYS_pc_firmware_tables 84
#define ZX_SYS_pci_get_nth_device 85
#define ZX_SYS_pci_enable_bus_master 86
#define ZX_SYS_pci_reset_device 87
#define ZX_SYS_pci_config_read 88
#define ZX_SYS_pci_config_write 89
#define ZX_SYS_pci_cfg_pio_rw 90
#define ZX_SYS_pci_get_bar 91
#define ZX_SYS_pci_map_interrupt 92
#define ZX_SYS_pci_query_irq_mode 93
#define ZX_SYS_pci_set_irq_mode 94
#define ZX_SYS_pci_init 95
#define ZX_SYS_pci_add_subtract_io_range 96
#define ZX_SYS_pmt_unpin 97
#define ZX_SYS_port_create 98
#define ZX_SYS_port_queue 99
#define ZX_SYS_port_wait 100
#define ZX_SYS_port_cancel 101
#define ZX_SYS_process_exit 102
#define ZX_SYS_process_create 103
#define ZX_SYS_process_start 104
#define ZX_SYS_process_read_memory 105
#define ZX_SYS_process_write_memory 106
#define ZX_SYS_profile_create 107
#define ZX_SYS_resource_create 108
#define ZX_SYS_smc_call 109
#define ZX_SYS_socket_create 110
#define ZX_SYS_socket_write 111
#define ZX_SYS_socket_read 112
#define ZX_SYS_socket_shutdown 113
#define ZX_SYS_stream_create 114
#define ZX_SYS_stream_writev 115
#define ZX_SYS_stream_writev_at 116
#define ZX_SYS_stream_readv 117
#define ZX_SYS_stream_readv_at 118
#define ZX_SYS_stream_seek 119
#define ZX_SYS_syscall_test_0 120
#define ZX_SYS_syscall_test_1 121
#define ZX_SYS_syscall_test_2 122
#define ZX_SYS_syscall_test_3 123
#define ZX_SYS_syscall_test_4 124
#define ZX_SYS_syscall_test_5 125
#define ZX_SYS_syscall_test_6 126
#define ZX_SYS_syscall_test_7 127
#define ZX_SYS_syscall_test_8 128
#define ZX_SYS_syscall_test_wrapper 129
#define ZX_SYS_syscall_test_handle_create 130
#define ZX_SYS_system_get_event 131
#define ZX_SYS_system_mexec 132
#define ZX_SYS_system_mexec_payload_get 133
#define ZX_SYS_system_powerctl 134
#define ZX_SYS_task_suspend 135
#define ZX_SYS_task_suspend_token 136
#define ZX_SYS_task_create_exception_channel 137
#define ZX_SYS_task_kill 138
#define ZX_SYS_thread_exit 139
#define ZX_SYS_thread_create 140
#define ZX_SYS_thread_start 141
#define ZX_SYS_thread_read_state 142
#define ZX_SYS_thread_write_state 143
#define ZX_SYS_timer_create 144
#define ZX_SYS_timer_set 145
#define ZX_SYS_timer_cancel 146
#define ZX_SYS_vcpu_create 147
#define ZX_SYS_vcpu_resume 148
#define ZX_SYS_vcpu_interrupt 149
#define ZX_SYS_vcpu_read_state 150
#define ZX_SYS_vcpu_write_state 151
#define ZX_SYS_vmar_allocate 152
#define ZX_SYS_vmar_destroy 153
#define ZX_SYS_vmar_map 154
#define ZX_SYS_vmar_unmap 155
#define ZX_SYS_vmar_protect 156
#define ZX_SYS_vmar_op_range 157
#define ZX_SYS_vmo_create 158
#define ZX_SYS_vmo_read 159
#define ZX_SYS_vmo_write 160
#define ZX_SYS_vmo_get_size 161
#define ZX_SYS_vmo_set_size 162
#define ZX_SYS_vmo_op_range 163
#define ZX_SYS_vmo_create_child 164
#define ZX_SYS_vmo_set_cache_policy 165
#define ZX_SYS_vmo_replace_as_executable 166
#define ZX_SYS_vmo_create_contiguous 167
#define ZX_SYS_vmo_create_physical 168
#define ZX_SYS_COUNT 169
----- syscall-numbers.h END -----
----- testonly-public-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.
#ifndef _ZX_SYSCALL_DECL
#error "<zircon/testonly-syscalls.h> is the public API header"
#endif
_ZX_SYSCALL_DECL(syscall_test_0, zx_status_t, /* no attributes */, 0,
(), (void))
_ZX_SYSCALL_DECL(syscall_test_1, zx_status_t, /* no attributes */, 1,
(a), (
int32_t a))
_ZX_SYSCALL_DECL(syscall_test_2, zx_status_t, /* no attributes */, 2,
(a, b), (
int32_t a,
int32_t b))
_ZX_SYSCALL_DECL(syscall_test_3, zx_status_t, /* no attributes */, 3,
(a, b, c), (
int32_t a,
int32_t b,
int32_t c))
_ZX_SYSCALL_DECL(syscall_test_4, zx_status_t, /* no attributes */, 4,
(a, b, c, d), (
int32_t a,
int32_t b,
int32_t c,
int32_t d))
_ZX_SYSCALL_DECL(syscall_test_5, zx_status_t, /* no attributes */, 5,
(a, b, c, d, e), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e))
_ZX_SYSCALL_DECL(syscall_test_6, zx_status_t, /* no attributes */, 6,
(a, b, c, d, e, f), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e,
int32_t f))
_ZX_SYSCALL_DECL(syscall_test_7, zx_status_t, /* no attributes */, 7,
(a, b, c, d, e, f, g), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e,
int32_t f,
int32_t g))
_ZX_SYSCALL_DECL(syscall_test_8, zx_status_t, /* no attributes */, 8,
(a, b, c, d, e, f, g, h), (
int32_t a,
int32_t b,
int32_t c,
int32_t d,
int32_t e,
int32_t f,
int32_t g,
int32_t h))
_ZX_SYSCALL_DECL(syscall_test_wrapper, zx_status_t, /* no attributes */, 3,
(a, b, c), (
int32_t a,
int32_t b,
int32_t c))
_ZX_SYSCALL_DECL(syscall_test_handle_create, zx_status_t, /* no attributes */, 2,
(return_value, out), (
zx_status_t return_value,
_ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))
----- testonly-public-header.h END -----