----- 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(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(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_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_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_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_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_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_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_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_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_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_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": "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": [
      ],
      "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": [
      ],
      "requirements": [
      ],
      "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(use_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))

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(use_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(use_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_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(use_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))

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(use_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(use_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(use_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(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(use_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(use_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_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_clock_get 10
#define ZX_SYS_clock_adjust 11
#define ZX_SYS_clock_get_monotonic_via_kernel 12
#define ZX_SYS_clock_create 13
#define ZX_SYS_clock_read 14
#define ZX_SYS_clock_get_details 15
#define ZX_SYS_clock_update 16
#define ZX_SYS_cprng_draw_once 17
#define ZX_SYS_cprng_add_entropy 18
#define ZX_SYS_debug_read 19
#define ZX_SYS_debug_write 20
#define ZX_SYS_debug_send_command 21
#define ZX_SYS_debuglog_create 22
#define ZX_SYS_debuglog_write 23
#define ZX_SYS_debuglog_read 24
#define ZX_SYS_event_create 25
#define ZX_SYS_eventpair_create 26
#define ZX_SYS_exception_get_thread 27
#define ZX_SYS_exception_get_process 28
#define ZX_SYS_fifo_create 29
#define ZX_SYS_fifo_read 30
#define ZX_SYS_fifo_write 31
#define ZX_SYS_framebuffer_get_info 32
#define ZX_SYS_framebuffer_set_range 33
#define ZX_SYS_futex_wait 34
#define ZX_SYS_futex_wake 35
#define ZX_SYS_futex_requeue 36
#define ZX_SYS_futex_wake_single_owner 37
#define ZX_SYS_futex_requeue_single_owner 38
#define ZX_SYS_futex_get_owner 39
#define ZX_SYS_guest_create 40
#define ZX_SYS_guest_set_trap 41
#define ZX_SYS_handle_close 42
#define ZX_SYS_handle_close_many 43
#define ZX_SYS_handle_duplicate 44
#define ZX_SYS_handle_replace 45
#define ZX_SYS_interrupt_create 46
#define ZX_SYS_interrupt_bind 47
#define ZX_SYS_interrupt_wait 48
#define ZX_SYS_interrupt_destroy 49
#define ZX_SYS_interrupt_ack 50
#define ZX_SYS_interrupt_trigger 51
#define ZX_SYS_interrupt_bind_vcpu 52
#define ZX_SYS_iommu_create 53
#define ZX_SYS_ioports_request 54
#define ZX_SYS_ioports_release 55
#define ZX_SYS_job_create 56
#define ZX_SYS_job_set_policy 57
#define ZX_SYS_job_set_critical 58
#define ZX_SYS_ktrace_read 59
#define ZX_SYS_ktrace_control 60
#define ZX_SYS_ktrace_write 61
#define ZX_SYS_nanosleep 62
#define ZX_SYS_ticks_get_via_kernel 63
#define ZX_SYS_msi_allocate 64
#define ZX_SYS_msi_create 65
#define ZX_SYS_mtrace_control 66
#define ZX_SYS_object_wait_one 67
#define ZX_SYS_object_wait_many 68
#define ZX_SYS_object_wait_async 69
#define ZX_SYS_object_signal 70
#define ZX_SYS_object_signal_peer 71
#define ZX_SYS_object_get_property 72
#define ZX_SYS_object_set_property 73
#define ZX_SYS_object_get_info 74
#define ZX_SYS_object_get_child 75
#define ZX_SYS_object_set_profile 76
#define ZX_SYS_pager_create 77
#define ZX_SYS_pager_create_vmo 78
#define ZX_SYS_pager_detach_vmo 79
#define ZX_SYS_pager_supply_pages 80
#define ZX_SYS_pager_op_range 81
#define ZX_SYS_pc_firmware_tables 82
#define ZX_SYS_pci_get_nth_device 83
#define ZX_SYS_pci_enable_bus_master 84
#define ZX_SYS_pci_reset_device 85
#define ZX_SYS_pci_config_read 86
#define ZX_SYS_pci_config_write 87
#define ZX_SYS_pci_cfg_pio_rw 88
#define ZX_SYS_pci_get_bar 89
#define ZX_SYS_pci_map_interrupt 90
#define ZX_SYS_pci_query_irq_mode 91
#define ZX_SYS_pci_set_irq_mode 92
#define ZX_SYS_pci_init 93
#define ZX_SYS_pci_add_subtract_io_range 94
#define ZX_SYS_pmt_unpin 95
#define ZX_SYS_port_create 96
#define ZX_SYS_port_queue 97
#define ZX_SYS_port_wait 98
#define ZX_SYS_port_cancel 99
#define ZX_SYS_process_exit 100
#define ZX_SYS_process_create 101
#define ZX_SYS_process_start 102
#define ZX_SYS_process_read_memory 103
#define ZX_SYS_process_write_memory 104
#define ZX_SYS_profile_create 105
#define ZX_SYS_resource_create 106
#define ZX_SYS_smc_call 107
#define ZX_SYS_socket_create 108
#define ZX_SYS_socket_write 109
#define ZX_SYS_socket_read 110
#define ZX_SYS_socket_shutdown 111
#define ZX_SYS_stream_create 112
#define ZX_SYS_stream_writev 113
#define ZX_SYS_stream_writev_at 114
#define ZX_SYS_stream_readv 115
#define ZX_SYS_stream_readv_at 116
#define ZX_SYS_stream_seek 117
#define ZX_SYS_syscall_test_0 118
#define ZX_SYS_syscall_test_1 119
#define ZX_SYS_syscall_test_2 120
#define ZX_SYS_syscall_test_3 121
#define ZX_SYS_syscall_test_4 122
#define ZX_SYS_syscall_test_5 123
#define ZX_SYS_syscall_test_6 124
#define ZX_SYS_syscall_test_7 125
#define ZX_SYS_syscall_test_8 126
#define ZX_SYS_syscall_test_wrapper 127
#define ZX_SYS_syscall_test_handle_create 128
#define ZX_SYS_system_get_event 129
#define ZX_SYS_system_mexec 130
#define ZX_SYS_system_mexec_payload_get 131
#define ZX_SYS_system_powerctl 132
#define ZX_SYS_task_suspend 133
#define ZX_SYS_task_suspend_token 134
#define ZX_SYS_task_create_exception_channel 135
#define ZX_SYS_task_kill 136
#define ZX_SYS_thread_exit 137
#define ZX_SYS_thread_create 138
#define ZX_SYS_thread_start 139
#define ZX_SYS_thread_read_state 140
#define ZX_SYS_thread_write_state 141
#define ZX_SYS_timer_create 142
#define ZX_SYS_timer_set 143
#define ZX_SYS_timer_cancel 144
#define ZX_SYS_vcpu_create 145
#define ZX_SYS_vcpu_resume 146
#define ZX_SYS_vcpu_interrupt 147
#define ZX_SYS_vcpu_read_state 148
#define ZX_SYS_vcpu_write_state 149
#define ZX_SYS_vmar_allocate 150
#define ZX_SYS_vmar_destroy 151
#define ZX_SYS_vmar_map 152
#define ZX_SYS_vmar_unmap 153
#define ZX_SYS_vmar_protect 154
#define ZX_SYS_vmar_op_range 155
#define ZX_SYS_vmo_create 156
#define ZX_SYS_vmo_read 157
#define ZX_SYS_vmo_write 158
#define ZX_SYS_vmo_get_size 159
#define ZX_SYS_vmo_set_size 160
#define ZX_SYS_vmo_op_range 161
#define ZX_SYS_vmo_create_child 162
#define ZX_SYS_vmo_set_cache_policy 163
#define ZX_SYS_vmo_replace_as_executable 164
#define ZX_SYS_vmo_create_contiguous 165
#define ZX_SYS_vmo_create_physical 166
#define ZX_SYS_COUNT 167
----- 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 -----


