----- c-ulib-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

#ifndef LIB_ZXIO_TYPES_H_
#define LIB_ZXIO_TYPES_H_

#include <stdbool.h>
#include <stdint.h>
#include <zircon/compiler.h>

// This header defines the public types used in the zxio and zxio_ops interface.

__BEGIN_CDECLS

// Rights ----------------------------------------------------------------------

typedef uint32_t zx_rights_t;

#define ZX_RIGHT_NONE ((zx_rights_t)0x0u)

#define ZX_RIGHT_DUPLICATE ((zx_rights_t)0x1u)
#define ZX_RIGHT_TRANSFER ((zx_rights_t)0x2u)
#define ZX_RIGHT_READ ((zx_rights_t)0x4u)
#define ZX_RIGHT_WRITE ((zx_rights_t)0x8u)
#define ZX_RIGHT_EXECUTE ((zx_rights_t)0x10u)
#define ZX_RIGHT_MAP ((zx_rights_t)0x20u)
#define ZX_RIGHT_GET_PROPERTY ((zx_rights_t)0x40u)
#define ZX_RIGHT_SET_PROPERTY ((zx_rights_t)0x80u)
#define ZX_RIGHT_ENUMERATE ((zx_rights_t)0x100u)
#define ZX_RIGHT_DESTROY ((zx_rights_t)0x200u)
#define ZX_RIGHT_SET_POLICY ((zx_rights_t)0x400u)
#define ZX_RIGHT_GET_POLICY ((zx_rights_t)0x800u)
#define ZX_RIGHT_SIGNAL ((zx_rights_t)0x1000u)
#define ZX_RIGHT_SIGNAL_PEER ((zx_rights_t)0x2000u)
#define ZX_RIGHT_WAIT ((zx_rights_t)0x4000u)
#define ZX_RIGHT_INSPECT ((zx_rights_t)0x8000u)
#define ZX_RIGHT_MANAGE_JOB ((zx_rights_t)0x10000u)
#define ZX_RIGHT_MANAGE_PROCESS ((zx_rights_t)0x20000u)
#define ZX_RIGHT_MANAGE_THREAD ((zx_rights_t)0x40000u)
#define ZX_RIGHT_APPLY_PROFILE ((zx_rights_t)0x80000u)
#define ZX_RIGHT_SAME_RIGHTS ((zx_rights_t)0x80000000u)

#define ZX_RIGHT_ALL ((zx_rights_t)0x800fffffu)

// Clock -----------------------------------------------------------------------

typedef uint32_t zx_clock_t;

#define ZX_CLOCK_MONOTONIC ((zx_clock_t)0x0u)
#define ZX_CLOCK_UTC ((zx_clock_t)0x1u)
#define ZX_CLOCK_THREAD ((zx_clock_t)0x2u)

// Profile Info Type -----------------------------------------------------------

typedef uint32_t zx_profile_info_type_t;

#define ZX_PROFILE_INFO_TYPE_ZX_PROFILE_INFO_SCHEDULER ((zx_profile_info_type_t)0x1u)

// Stream Seek Origin ----------------------------------------------------------

typedef uint32_t zx_stream_seek_origin_t;

#define ZX_STREAM_SEEK_ORIGIN_START ((zx_stream_seek_origin_t)0x0u)
#define ZX_STREAM_SEEK_ORIGIN_CURRENT ((zx_stream_seek_origin_t)0x1u)
#define ZX_STREAM_SEEK_ORIGIN_END ((zx_stream_seek_origin_t)0x2u)

typedef uint32_t zx_handle_op_t;

typedef int32_t zx_futex_t;

typedef uint32_t zx_vm_option_t;

typedef int32_t zx_status_t;

typedef int64_t zx_time_t;

typedef int64_t zx_duration_t;

typedef int64_t zx_ticks_t;

typedef uint64_t zx_koid_t;

typedef uint64_t zx_vaddr_t;

typedef uint64_t zx_paddr_t;

typedef uint32_t zx_paddr32_t;

typedef uint64_t zx_gpaddr_t;

typedef uint64_t zx_off_t;

typedef uint32_t zx_procarg_t;

typedef uint32_t zx_signals_t;

typedef uint64_t zx_usize_t;

typedef uint64_t zx_uintptr_t;

__END_CDECLS

#endif  // LIB_ZXIO_TYPES_H_
----- c-ulib-header.h END -----


----- category.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

#define HAVE_SYSCALL_CATEGORY_blocking 1
SYSCALL_CATEGORY_BEGIN(blocking)
    SYSCALL_IN_CATEGORY(channel_call)
    SYSCALL_IN_CATEGORY(channel_call_etc)
    SYSCALL_IN_CATEGORY(futex_wait)
    SYSCALL_IN_CATEGORY(interrupt_wait)
    SYSCALL_IN_CATEGORY(nanosleep)
    SYSCALL_IN_CATEGORY(object_wait_one)
    SYSCALL_IN_CATEGORY(object_wait_many)
    SYSCALL_IN_CATEGORY(port_wait)
    SYSCALL_IN_CATEGORY(vcpu_resume)
    SYSCALL_IN_CATEGORY(vmo_read)
    SYSCALL_IN_CATEGORY(vmo_write)
    SYSCALL_IN_CATEGORY(vmo_op_range)
SYSCALL_CATEGORY_END(blocking)

#define HAVE_SYSCALL_CATEGORY_const 1
SYSCALL_CATEGORY_BEGIN(const)
    SYSCALL_IN_CATEGORY(ticks_per_second)
    SYSCALL_IN_CATEGORY(system_get_dcache_line_size)
    SYSCALL_IN_CATEGORY(system_get_num_cpus)
    SYSCALL_IN_CATEGORY(system_get_version_string)
SYSCALL_CATEGORY_END(const)

#define HAVE_SYSCALL_CATEGORY_noreturn 1
SYSCALL_CATEGORY_BEGIN(noreturn)
    SYSCALL_IN_CATEGORY(futex_wake_handle_close_thread_exit)
    SYSCALL_IN_CATEGORY(process_exit)
    SYSCALL_IN_CATEGORY(thread_exit)
SYSCALL_CATEGORY_END(noreturn)

#define HAVE_SYSCALL_CATEGORY_test_category1 1
SYSCALL_CATEGORY_BEGIN(test_category1)
    SYSCALL_IN_CATEGORY(syscall_test_1)
    SYSCALL_IN_CATEGORY(syscall_test_2)
SYSCALL_CATEGORY_END(test_category1)

#define HAVE_SYSCALL_CATEGORY_test_category2 1
SYSCALL_CATEGORY_BEGIN(test_category2)
    SYSCALL_IN_CATEGORY(syscall_test_3)
SYSCALL_CATEGORY_END(test_category2)

#define HAVE_SYSCALL_CATEGORY_vdsocall 1
SYSCALL_CATEGORY_BEGIN(vdsocall)
    SYSCALL_IN_CATEGORY(cache_flush)
    SYSCALL_IN_CATEGORY(channel_call)
    SYSCALL_IN_CATEGORY(channel_call_etc)
    SYSCALL_IN_CATEGORY(clock_get_monotonic)
    SYSCALL_IN_CATEGORY(cprng_draw)
    SYSCALL_IN_CATEGORY(ticks_get)
    SYSCALL_IN_CATEGORY(ticks_per_second)
    SYSCALL_IN_CATEGORY(deadline_after)
    SYSCALL_IN_CATEGORY(vmar_unmap_handle_close_thread_exit)
    SYSCALL_IN_CATEGORY(futex_wake_handle_close_thread_exit)
    SYSCALL_IN_CATEGORY(system_get_dcache_line_size)
    SYSCALL_IN_CATEGORY(system_get_num_cpus)
    SYSCALL_IN_CATEGORY(system_get_version_string)
    SYSCALL_IN_CATEGORY(system_get_physmem)
    SYSCALL_IN_CATEGORY(system_get_features)
SYSCALL_CATEGORY_END(vdsocall)

----- category.h END -----


----- go-syscall-arm64-asm.go START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

#include "textflag.h"

// func Sys_bti_create(iommu Handle, options uint32, bti_id uint64, out *Handle) Status
TEXT ·Sys_bti_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_bti_create(SB)

// func Sys_bti_pin(handle Handle, options uint32, vmo Handle, offset uint64, size uint64, addrs *Paddr, num_addrs uint, pmt *Handle) Status
TEXT ·Sys_bti_pin(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_bti_pin(SB)

// func Sys_bti_release_quarantine(handle Handle) Status
TEXT ·Sys_bti_release_quarantine(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_bti_release_quarantine(SB)

// func Sys_cache_flush(addr unsafe.Pointer, size uint, options uint32) Status
TEXT ·Sys_cache_flush(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_cache_flush(SB)

// func Sys_channel_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_channel_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_create(SB)

// func Sys_channel_read(handle Handle, options uint32, bytes unsafe.Pointer, handles *Handle, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_read(SB)

// func Sys_channel_read_etc(handle Handle, options uint32, bytes unsafe.Pointer, handles *HandleInfo, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_read_etc(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_read_etc(SB)

// func Sys_channel_write(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *Handle, num_handles uint32) Status
TEXT ·Sys_channel_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_write(SB)

// func Sys_channel_write_etc(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *HandleDisposition, num_handles uint32) Status
TEXT ·Sys_channel_write_etc(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_write_etc(SB)

// func Sys_channel_call_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_noretry(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_noretry(SB)

// func Sys_channel_call_finish(deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_finish(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_finish(SB)

// func Sys_channel_call(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call(SB)

// func Sys_channel_call_etc_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc_noretry(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_etc_noretry(SB)

// func Sys_channel_call_etc_finish(deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc_finish(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_etc_finish(SB)

// func Sys_channel_call_etc(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_etc(SB)

// func Sys_clock_get(clock_id uint32, out *Time) Status
TEXT ·Sys_clock_get(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_get(SB)

// func Sys_clock_get_monotonic() Time
TEXT ·Sys_clock_get_monotonic(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_get_monotonic(SB)

// func Sys_clock_adjust(handle Handle, clock_id uint32, offset int64) Status
TEXT ·Sys_clock_adjust(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_adjust(SB)

// func Sys_clock_get_monotonic_via_kernel() Time
TEXT ·Sys_clock_get_monotonic_via_kernel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_get_monotonic_via_kernel(SB)

// func Sys_clock_create(options uint64, args unsafe.Pointer, out *Handle) Status
TEXT ·Sys_clock_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_create(SB)

// func Sys_clock_read(handle Handle, now *Time) Status
TEXT ·Sys_clock_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_read(SB)

// func Sys_clock_get_details(handle Handle, options uint64, details unsafe.Pointer) Status
TEXT ·Sys_clock_get_details(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_get_details(SB)

// func Sys_clock_update(handle Handle, options uint64, args unsafe.Pointer) Status
TEXT ·Sys_clock_update(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_update(SB)

// func Sys_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_cprng_draw_once(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_cprng_draw_once(SB)

// func Sys_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
TEXT ·Sys_cprng_draw(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_cprng_draw(SB)

// func Sys_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_cprng_add_entropy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_cprng_add_entropy(SB)

// func Sys_debug_read(handle Handle, buffer *uint8, buffer_size uint, actual *uint) Status
TEXT ·Sys_debug_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debug_read(SB)

// func Sys_debug_write(buffer *uint8, buffer_size uint) Status
TEXT ·Sys_debug_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debug_write(SB)

// func Sys_debug_send_command(resource Handle, buffer *uint8, buffer_size uint) Status
TEXT ·Sys_debug_send_command(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debug_send_command(SB)

// func Sys_debuglog_create(resource Handle, options uint32, out *Handle) Status
TEXT ·Sys_debuglog_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debuglog_create(SB)

// func Sys_debuglog_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_debuglog_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debuglog_write(SB)

// func Sys_debuglog_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_debuglog_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debuglog_read(SB)

// func Sys_event_create(options uint32, out *Handle) Status
TEXT ·Sys_event_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_event_create(SB)

// func Sys_eventpair_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_eventpair_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_eventpair_create(SB)

// func Sys_exception_get_thread(handle Handle, out *Handle) Status
TEXT ·Sys_exception_get_thread(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_exception_get_thread(SB)

// func Sys_exception_get_process(handle Handle, out *Handle) Status
TEXT ·Sys_exception_get_process(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_exception_get_process(SB)

// func Sys_fifo_create(elem_count uint, elem_size uint, options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_fifo_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_fifo_create(SB)

// func Sys_fifo_read(handle Handle, elem_size uint, data unsafe.Pointer, data_size uint, actual_count *uint) Status
TEXT ·Sys_fifo_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_fifo_read(SB)

// func Sys_fifo_write(handle Handle, elem_size uint, data unsafe.Pointer, count uint, actual_count *uint) Status
TEXT ·Sys_fifo_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_fifo_write(SB)

// func Sys_framebuffer_get_info(resource Handle, format *uint32, width *uint32, height *uint32, stride *uint32) Status
TEXT ·Sys_framebuffer_get_info(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_framebuffer_get_info(SB)

// func Sys_framebuffer_set_range(resource Handle, vmo Handle, len uint32, format uint32, width uint32, height uint32, stride uint32) Status
TEXT ·Sys_framebuffer_set_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_framebuffer_set_range(SB)

// func Sys_futex_wait(value_ptr *int32, current_value int32, new_futex_owner Handle, deadline Time) Status
TEXT ·Sys_futex_wait(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_wait(SB)

// func Sys_futex_wake(value_ptr *int32, wake_count uint32) Status
TEXT ·Sys_futex_wake(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_wake(SB)

// func Sys_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
TEXT ·Sys_futex_requeue(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_requeue(SB)

// func Sys_futex_wake_single_owner(value_ptr *int32) Status
TEXT ·Sys_futex_wake_single_owner(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_wake_single_owner(SB)

// func Sys_futex_requeue_single_owner(value_ptr *int32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
TEXT ·Sys_futex_requeue_single_owner(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_requeue_single_owner(SB)

// func Sys_futex_get_owner(value_ptr *int32, koid *uint64) Status
TEXT ·Sys_futex_get_owner(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_get_owner(SB)

// func Sys_guest_create(resource Handle, options uint32, guest_handle *Handle, vmar_handle *Handle) Status
TEXT ·Sys_guest_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_guest_create(SB)

// func Sys_guest_set_trap(handle Handle, kind uint32, addr Vaddr, size uint, port_handle Handle, key uint64) Status
TEXT ·Sys_guest_set_trap(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_guest_set_trap(SB)

// func Sys_handle_close(handle Handle) Status
TEXT ·Sys_handle_close(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_handle_close(SB)

// func Sys_handle_close_many(handles *Handle, num_handles uint) Status
TEXT ·Sys_handle_close_many(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_handle_close_many(SB)

// func Sys_handle_duplicate(handle Handle, rights Rights, out *Handle) Status
TEXT ·Sys_handle_duplicate(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_handle_duplicate(SB)

// func Sys_handle_replace(handle Handle, rights Rights, out *Handle) Status
TEXT ·Sys_handle_replace(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_handle_replace(SB)

// func Sys_interrupt_create(src_obj Handle, src_num uint32, options uint32, out_handle *Handle) Status
TEXT ·Sys_interrupt_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_create(SB)

// func Sys_interrupt_bind(handle Handle, port_handle Handle, key uint64, options uint32) Status
TEXT ·Sys_interrupt_bind(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_bind(SB)

// func Sys_interrupt_wait(handle Handle, out_timestamp *Time) Status
TEXT ·Sys_interrupt_wait(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_wait(SB)

// func Sys_interrupt_destroy(handle Handle) Status
TEXT ·Sys_interrupt_destroy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_destroy(SB)

// func Sys_interrupt_ack(handle Handle) Status
TEXT ·Sys_interrupt_ack(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_ack(SB)

// func Sys_interrupt_trigger(handle Handle, options uint32, timestamp Time) Status
TEXT ·Sys_interrupt_trigger(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_trigger(SB)

// func Sys_interrupt_bind_vcpu(handle Handle, vcpu Handle, options uint32) Status
TEXT ·Sys_interrupt_bind_vcpu(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_bind_vcpu(SB)

// func Sys_iommu_create(resource Handle, typ uint32, desc unsafe.Pointer, desc_size uint, out *Handle) Status
TEXT ·Sys_iommu_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_iommu_create(SB)

// func Sys_ioports_request(resource Handle, io_addr uint16, len uint32) Status
TEXT ·Sys_ioports_request(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ioports_request(SB)

// func Sys_ioports_release(resource Handle, io_addr uint16, len uint32) Status
TEXT ·Sys_ioports_release(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ioports_release(SB)

// func Sys_job_create(parent_job Handle, options uint32, out *Handle) Status
TEXT ·Sys_job_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_job_create(SB)

// func Sys_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status
TEXT ·Sys_job_set_policy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_job_set_policy(SB)

// func Sys_job_set_critical(job Handle, options uint32, process Handle) Status
TEXT ·Sys_job_set_critical(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_job_set_critical(SB)

// func Sys_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status
TEXT ·Sys_ktrace_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ktrace_read(SB)

// func Sys_ktrace_control(handle Handle, action uint32, options uint32, ptr unsafe.Pointer) Status
TEXT ·Sys_ktrace_control(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ktrace_control(SB)

// func Sys_ktrace_write(handle Handle, id uint32, arg0 uint32, arg1 uint32) Status
TEXT ·Sys_ktrace_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ktrace_write(SB)

// func Sys_nanosleep(deadline Time) Status
TEXT ·Sys_nanosleep(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_nanosleep(SB)

// func Sys_ticks_get() int64
TEXT ·Sys_ticks_get(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ticks_get(SB)

// func Sys_ticks_per_second() int64
TEXT ·Sys_ticks_per_second(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ticks_per_second(SB)

// func Sys_deadline_after(nanoseconds Duration) Time
TEXT ·Sys_deadline_after(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_deadline_after(SB)

// func Sys_vmar_unmap_handle_close_thread_exit(vmar_handle Handle, addr Vaddr, size uint, close_handle Handle) Status
TEXT ·Sys_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB)

// func Sys_futex_wake_handle_close_thread_exit(value_ptr *int32, wake_count uint32, new_value int32, close_handle Handle)
TEXT ·Sys_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB)

// func Sys_ticks_get_via_kernel() int64
TEXT ·Sys_ticks_get_via_kernel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ticks_get_via_kernel(SB)

// func Sys_msi_allocate(handle Handle, count uint32, out_allocation *Handle) Status
TEXT ·Sys_msi_allocate(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_msi_allocate(SB)

// func Sys_msi_create(handle Handle, options uint32, msi_id uint32, vmo Handle, vmo_offset uint, out_interrupt *Handle) Status
TEXT ·Sys_msi_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_msi_create(SB)

// func Sys_mtrace_control(handle Handle, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) Status
TEXT ·Sys_mtrace_control(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_mtrace_control(SB)

// func Sys_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status
TEXT ·Sys_object_wait_one(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_wait_one(SB)

// func Sys_object_wait_many(items *WaitItem, num_items uint, deadline Time) Status
TEXT ·Sys_object_wait_many(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_wait_many(SB)

// func Sys_object_wait_async(handle Handle, port Handle, key uint64, signals Signals, options uint32) Status
TEXT ·Sys_object_wait_async(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_wait_async(SB)

// func Sys_object_signal(handle Handle, clear_mask uint32, set_mask uint32) Status
TEXT ·Sys_object_signal(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_signal(SB)

// func Sys_object_signal_peer(handle Handle, clear_mask uint32, set_mask uint32) Status
TEXT ·Sys_object_signal_peer(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_signal_peer(SB)

// func Sys_object_get_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
TEXT ·Sys_object_get_property(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_get_property(SB)

// func Sys_object_set_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
TEXT ·Sys_object_set_property(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_set_property(SB)

// func Sys_object_get_info(handle Handle, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint, avail *uint) Status
TEXT ·Sys_object_get_info(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_get_info(SB)

// func Sys_object_get_child(handle Handle, koid uint64, rights Rights, out *Handle) Status
TEXT ·Sys_object_get_child(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_get_child(SB)

// func Sys_object_set_profile(handle Handle, profile Handle, options uint32) Status
TEXT ·Sys_object_set_profile(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_set_profile(SB)

// func Sys_pager_create(options uint32, out *Handle) Status
TEXT ·Sys_pager_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_create(SB)

// func Sys_pager_create_vmo(pager Handle, options uint32, port Handle, key uint64, size uint64, out *Handle) Status
TEXT ·Sys_pager_create_vmo(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_create_vmo(SB)

// func Sys_pager_detach_vmo(pager Handle, vmo Handle) Status
TEXT ·Sys_pager_detach_vmo(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_detach_vmo(SB)

// func Sys_pager_supply_pages(pager Handle, pager_vmo Handle, offset uint64, length uint64, aux_vmo Handle, aux_offset uint64) Status
TEXT ·Sys_pager_supply_pages(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_supply_pages(SB)

// func Sys_pager_op_range(pager Handle, op uint32, pager_vmo Handle, offset uint64, length uint64, data uint64) Status
TEXT ·Sys_pager_op_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_op_range(SB)

// func Sys_pc_firmware_tables(handle Handle, acpi_rsdp *Paddr, smbios *Paddr) Status
TEXT ·Sys_pc_firmware_tables(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pc_firmware_tables(SB)

// func Sys_pci_get_nth_device(handle Handle, index uint32, out_info *uintptr, out_handle *Handle) Status
TEXT ·Sys_pci_get_nth_device(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_get_nth_device(SB)

// func Sys_pci_enable_bus_master(handle Handle, enable uint32) Status
TEXT ·Sys_pci_enable_bus_master(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_enable_bus_master(SB)

// func Sys_pci_reset_device(handle Handle) Status
TEXT ·Sys_pci_reset_device(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_reset_device(SB)

// func Sys_pci_config_read(handle Handle, offset uint16, width uint, out_val *uint32) Status
TEXT ·Sys_pci_config_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_config_read(SB)

// func Sys_pci_config_write(handle Handle, offset uint16, width uint, val uint32) Status
TEXT ·Sys_pci_config_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_config_write(SB)

// func Sys_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write uint32) Status
TEXT ·Sys_pci_cfg_pio_rw(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_cfg_pio_rw(SB)

// func Sys_pci_get_bar(handle Handle, bar_num uint32, out_bar *uintptr, out_handle *Handle) Status
TEXT ·Sys_pci_get_bar(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_get_bar(SB)

// func Sys_pci_map_interrupt(handle Handle, which_irq int32, out_handle *Handle) Status
TEXT ·Sys_pci_map_interrupt(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_map_interrupt(SB)

// func Sys_pci_query_irq_mode(handle Handle, mode uint32, out_max_irqs *uint32) Status
TEXT ·Sys_pci_query_irq_mode(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_query_irq_mode(SB)

// func Sys_pci_set_irq_mode(handle Handle, mode uint32, requested_irq_count uint32) Status
TEXT ·Sys_pci_set_irq_mode(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_set_irq_mode(SB)

// func Sys_pci_init(handle Handle, init_buf *uintptr, len uint32) Status
TEXT ·Sys_pci_init(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_init(SB)

// func Sys_pci_add_subtract_io_range(handle Handle, mmio uint32, base uint64, len uint64, add uint32) Status
TEXT ·Sys_pci_add_subtract_io_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_add_subtract_io_range(SB)

// func Sys_pmt_unpin(handle Handle) Status
TEXT ·Sys_pmt_unpin(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pmt_unpin(SB)

// func Sys_port_create(options uint32, out *Handle) Status
TEXT ·Sys_port_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_port_create(SB)

// func Sys_port_queue(handle Handle, packet *int) Status
TEXT ·Sys_port_queue(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_port_queue(SB)

// func Sys_port_wait(handle Handle, deadline Time, packet *int) Status
TEXT ·Sys_port_wait(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_port_wait(SB)

// func Sys_port_cancel(handle Handle, source Handle, key uint64) Status
TEXT ·Sys_port_cancel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_port_cancel(SB)

// func Sys_process_exit(retcode int64)
TEXT ·Sys_process_exit(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_exit(SB)

// func Sys_process_create(job Handle, name *uint8, name_size uint, options uint32, proc_handle *Handle, vmar_handle *Handle) Status
TEXT ·Sys_process_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_create(SB)

// func Sys_process_start(handle Handle, thread Handle, entry Vaddr, stack Vaddr, arg1 Handle, arg2 uintptr) Status
TEXT ·Sys_process_start(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_start(SB)

// func Sys_process_read_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_process_read_memory(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_read_memory(SB)

// func Sys_process_write_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_process_write_memory(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_write_memory(SB)

// func Sys_profile_create(root_job Handle, options uint32, profile *int, out *Handle) Status
TEXT ·Sys_profile_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_profile_create(SB)

// func Sys_resource_create(parent_rsrc Handle, options uint32, base uint64, size uint, name *uint8, name_size uint, resource_out *Handle) Status
TEXT ·Sys_resource_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_resource_create(SB)

// func Sys_smc_call(handle Handle, parameters *SMCParameters, out_smc_result *SMCResult) Status
TEXT ·Sys_smc_call(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_smc_call(SB)

// func Sys_socket_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_socket_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_socket_create(SB)

// func Sys_socket_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_socket_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_socket_write(SB)

// func Sys_socket_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_socket_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_socket_read(SB)

// func Sys_socket_shutdown(handle Handle, options uint32) Status
TEXT ·Sys_socket_shutdown(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_socket_shutdown(SB)

// func Sys_stream_create(options uint32, vmo Handle, seek uint64, out_stream *Handle) Status
TEXT ·Sys_stream_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_create(SB)

// func Sys_stream_writev(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_writev(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_writev(SB)

// func Sys_stream_writev_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_writev_at(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_writev_at(SB)

// func Sys_stream_readv(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_readv(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_readv(SB)

// func Sys_stream_readv_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_readv_at(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_readv_at(SB)

// func Sys_stream_seek(handle Handle, whence uint32, offset int64, out_seek *uint64) Status
TEXT ·Sys_stream_seek(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_seek(SB)

// func Sys_syscall_test_0() Status
TEXT ·Sys_syscall_test_0(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_0(SB)

// func Sys_syscall_test_1(a int32) Status
TEXT ·Sys_syscall_test_1(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_1(SB)

// func Sys_syscall_test_2(a int32, b int32) Status
TEXT ·Sys_syscall_test_2(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_2(SB)

// func Sys_syscall_test_3(a int32, b int32, c int32) Status
TEXT ·Sys_syscall_test_3(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_3(SB)

// func Sys_syscall_test_4(a int32, b int32, c int32, d int32) Status
TEXT ·Sys_syscall_test_4(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_4(SB)

// func Sys_syscall_test_5(a int32, b int32, c int32, d int32, e int32) Status
TEXT ·Sys_syscall_test_5(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_5(SB)

// func Sys_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) Status
TEXT ·Sys_syscall_test_6(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_6(SB)

// func Sys_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) Status
TEXT ·Sys_syscall_test_7(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_7(SB)

// func Sys_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) Status
TEXT ·Sys_syscall_test_8(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_8(SB)

// func Sys_syscall_test_wrapper(a int32, b int32, c int32) Status
TEXT ·Sys_syscall_test_wrapper(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_wrapper(SB)

// func Sys_syscall_test_handle_create(return_value Status, out *Handle) Status
TEXT ·Sys_syscall_test_handle_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_handle_create(SB)

// func Sys_system_get_dcache_line_size() uint32
TEXT ·Sys_system_get_dcache_line_size(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_dcache_line_size(SB)

// func Sys_system_get_num_cpus() uint32
TEXT ·Sys_system_get_num_cpus(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_num_cpus(SB)

// func Sys_system_get_version_string() unsafe.Pointer
TEXT ·Sys_system_get_version_string(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_version_string(SB)

// func Sys_system_get_physmem() uint64
TEXT ·Sys_system_get_physmem(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_physmem(SB)

// func Sys_system_get_features(kind uint32, features *uint32) Status
TEXT ·Sys_system_get_features(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_features(SB)

// func Sys_system_get_event(root_job Handle, kind uint32, event *Handle) Status
TEXT ·Sys_system_get_event(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_event(SB)

// func Sys_system_mexec(resource Handle, kernel_vmo Handle, bootimage_vmo Handle) Status
TEXT ·Sys_system_mexec(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_mexec(SB)

// func Sys_system_mexec_payload_get(resource Handle, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_system_mexec_payload_get(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_mexec_payload_get(SB)

// func Sys_system_powerctl(resource Handle, cmd uint32, arg *int) Status
TEXT ·Sys_system_powerctl(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_powerctl(SB)

// func Sys_task_suspend(handle Handle, token *Handle) Status
TEXT ·Sys_task_suspend(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_task_suspend(SB)

// func Sys_task_suspend_token(handle Handle, token *Handle) Status
TEXT ·Sys_task_suspend_token(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_task_suspend_token(SB)

// func Sys_task_create_exception_channel(handle Handle, options uint32, out *Handle) Status
TEXT ·Sys_task_create_exception_channel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_task_create_exception_channel(SB)

// func Sys_task_kill(handle Handle) Status
TEXT ·Sys_task_kill(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_task_kill(SB)

// func Sys_thread_exit()
TEXT ·Sys_thread_exit(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_exit(SB)

// func Sys_thread_create(process Handle, name *uint8, name_size uint, options uint32, out *Handle) Status
TEXT ·Sys_thread_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_create(SB)

// func Sys_thread_start(handle Handle, thread_entry Vaddr, stack Vaddr, arg1 uintptr, arg2 uintptr) Status
TEXT ·Sys_thread_start(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_start(SB)

// func Sys_thread_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_thread_read_state(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_read_state(SB)

// func Sys_thread_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_thread_write_state(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_write_state(SB)

// func Sys_timer_create(options uint32, clock_id uint32, out *Handle) Status
TEXT ·Sys_timer_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_timer_create(SB)

// func Sys_timer_set(handle Handle, deadline Time, slack Duration) Status
TEXT ·Sys_timer_set(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_timer_set(SB)

// func Sys_timer_cancel(handle Handle) Status
TEXT ·Sys_timer_cancel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_timer_cancel(SB)

// func Sys_vcpu_create(guest Handle, options uint32, entry Vaddr, out *Handle) Status
TEXT ·Sys_vcpu_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_create(SB)

// func Sys_vcpu_resume(handle Handle, packet *int) Status
TEXT ·Sys_vcpu_resume(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_resume(SB)

// func Sys_vcpu_interrupt(handle Handle, vector uint32) Status
TEXT ·Sys_vcpu_interrupt(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_interrupt(SB)

// func Sys_vcpu_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vcpu_read_state(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_read_state(SB)

// func Sys_vcpu_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vcpu_write_state(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_write_state(SB)

// func Sys_vmar_allocate(parent_vmar Handle, options VMFlag, offset uint, size uint, child_vmar *Handle, child_addr *Vaddr) Status
TEXT ·Sys_vmar_allocate(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_allocate(SB)

// func Sys_vmar_destroy(handle Handle) Status
TEXT ·Sys_vmar_destroy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_destroy(SB)

// func Sys_vmar_map(handle Handle, options VMFlag, vmar_offset uint, vmo Handle, vmo_offset uint64, len uint, mapped_addr *Vaddr) Status
TEXT ·Sys_vmar_map(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_map(SB)

// func Sys_vmar_unmap(handle Handle, addr Vaddr, len uint) Status
TEXT ·Sys_vmar_unmap(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_unmap(SB)

// func Sys_vmar_protect(handle Handle, options VMFlag, addr Vaddr, len uint) Status
TEXT ·Sys_vmar_protect(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_protect(SB)

// func Sys_vmar_op_range(handle Handle, op uint32, address Vaddr, size uint, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vmar_op_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_op_range(SB)

// func Sys_vmo_create(size uint64, options uint32, out *Handle) Status
TEXT ·Sys_vmo_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_create(SB)

// func Sys_vmo_read(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
TEXT ·Sys_vmo_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_read(SB)

// func Sys_vmo_write(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
TEXT ·Sys_vmo_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_write(SB)

// func Sys_vmo_get_size(handle Handle, size *uint64) Status
TEXT ·Sys_vmo_get_size(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_get_size(SB)

// func Sys_vmo_set_size(handle Handle, size uint64) Status
TEXT ·Sys_vmo_set_size(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_set_size(SB)

// func Sys_vmo_op_range(handle Handle, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vmo_op_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_op_range(SB)

// func Sys_vmo_create_child(handle Handle, options uint32, offset uint64, size uint64, out *Handle) Status
TEXT ·Sys_vmo_create_child(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_create_child(SB)

// func Sys_vmo_set_cache_policy(handle Handle, cache_policy uint32) Status
TEXT ·Sys_vmo_set_cache_policy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_set_cache_policy(SB)

// func Sys_vmo_replace_as_executable(handle Handle, vmex Handle, out *Handle) Status
TEXT ·Sys_vmo_replace_as_executable(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_replace_as_executable(SB)

// func Sys_vmo_create_contiguous(bti Handle, size uint, alignment_log2 uint32, out *Handle) Status
TEXT ·Sys_vmo_create_contiguous(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_create_contiguous(SB)

// func Sys_vmo_create_physical(resource Handle, paddr Paddr, size uint, out *Handle) Status
TEXT ·Sys_vmo_create_physical(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_create_physical(SB)

----- go-syscall-arm64-asm.go END -----


----- go-syscall-stubs.go START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

package zx

import "unsafe"

//go:noescape
//go:nosplit
func Sys_bti_create(iommu Handle, options uint32, bti_id uint64, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_bti_pin(handle Handle, options uint32, vmo Handle, offset uint64, size uint64, addrs *Paddr, num_addrs uint, pmt *Handle) Status

//go:noescape
//go:nosplit
func Sys_bti_release_quarantine(handle Handle) Status

//go:noescape
//go:nosplit
func Sys_cache_flush(addr unsafe.Pointer, size uint, options uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_create(options uint32, out0 *Handle, out1 *Handle) Status

//go:noescape
//go:nosplit
func Sys_channel_read(handle Handle, options uint32, bytes unsafe.Pointer, handles *Handle, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_read_etc(handle Handle, options uint32, bytes unsafe.Pointer, handles *HandleInfo, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_write(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *Handle, num_handles uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_write_etc(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *HandleDisposition, num_handles uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_call_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_call_finish(deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_call(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_call_etc_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_call_etc_finish(deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status

//go:noescape
//go:nosplit
func Sys_channel_call_etc(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status

//go:noescape
//go:nosplit
func Sys_clock_get(clock_id uint32, out *Time) Status

//go:noescape
//go:nosplit
func Sys_clock_get_monotonic() Time

//go:noescape
//go:nosplit
func Sys_clock_adjust(handle Handle, clock_id uint32, offset int64) Status

//go:noescape
//go:nosplit
func Sys_clock_get_monotonic_via_kernel() Time

//go:noescape
//go:nosplit
func Sys_clock_create(options uint64, args unsafe.Pointer, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_clock_read(handle Handle, now *Time) Status

//go:noescape
//go:nosplit
func Sys_clock_get_details(handle Handle, options uint64, details unsafe.Pointer) Status

//go:noescape
//go:nosplit
func Sys_clock_update(handle Handle, options uint64, args unsafe.Pointer) Status

//go:noescape
//go:nosplit
func Sys_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_cprng_draw(buffer unsafe.Pointer, buffer_size uint)

//go:noescape
//go:nosplit
func Sys_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_debug_read(handle Handle, buffer *uint8, buffer_size uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_debug_write(buffer *uint8, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_debug_send_command(resource Handle, buffer *uint8, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_debuglog_create(resource Handle, options uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_debuglog_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_debuglog_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_event_create(options uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_eventpair_create(options uint32, out0 *Handle, out1 *Handle) Status

//go:noescape
//go:nosplit
func Sys_exception_get_thread(handle Handle, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_exception_get_process(handle Handle, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_fifo_create(elem_count uint, elem_size uint, options uint32, out0 *Handle, out1 *Handle) Status

//go:noescape
//go:nosplit
func Sys_fifo_read(handle Handle, elem_size uint, data unsafe.Pointer, data_size uint, actual_count *uint) Status

//go:noescape
//go:nosplit
func Sys_fifo_write(handle Handle, elem_size uint, data unsafe.Pointer, count uint, actual_count *uint) Status

//go:noescape
//go:nosplit
func Sys_framebuffer_get_info(resource Handle, format *uint32, width *uint32, height *uint32, stride *uint32) Status

//go:noescape
//go:nosplit
func Sys_framebuffer_set_range(resource Handle, vmo Handle, len uint32, format uint32, width uint32, height uint32, stride uint32) Status

//go:noescape
//go:nosplit
func Sys_futex_wait(value_ptr *int32, current_value int32, new_futex_owner Handle, deadline Time) Status

//go:noescape
//go:nosplit
func Sys_futex_wake(value_ptr *int32, wake_count uint32) Status

//go:noescape
//go:nosplit
func Sys_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status

//go:noescape
//go:nosplit
func Sys_futex_wake_single_owner(value_ptr *int32) Status

//go:noescape
//go:nosplit
func Sys_futex_requeue_single_owner(value_ptr *int32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status

//go:noescape
//go:nosplit
func Sys_futex_get_owner(value_ptr *int32, koid *uint64) Status

//go:noescape
//go:nosplit
func Sys_guest_create(resource Handle, options uint32, guest_handle *Handle, vmar_handle *Handle) Status

//go:noescape
//go:nosplit
func Sys_guest_set_trap(handle Handle, kind uint32, addr Vaddr, size uint, port_handle Handle, key uint64) Status

//go:noescape
//go:nosplit
func Sys_handle_close(handle Handle) Status

//go:noescape
//go:nosplit
func Sys_handle_close_many(handles *Handle, num_handles uint) Status

//go:noescape
//go:nosplit
func Sys_handle_duplicate(handle Handle, rights Rights, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_handle_replace(handle Handle, rights Rights, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_interrupt_create(src_obj Handle, src_num uint32, options uint32, out_handle *Handle) Status

//go:noescape
//go:nosplit
func Sys_interrupt_bind(handle Handle, port_handle Handle, key uint64, options uint32) Status

//go:noescape
//go:nosplit
func Sys_interrupt_wait(handle Handle, out_timestamp *Time) Status

//go:noescape
//go:nosplit
func Sys_interrupt_destroy(handle Handle) Status

//go:noescape
//go:nosplit
func Sys_interrupt_ack(handle Handle) Status

//go:noescape
//go:nosplit
func Sys_interrupt_trigger(handle Handle, options uint32, timestamp Time) Status

//go:noescape
//go:nosplit
func Sys_interrupt_bind_vcpu(handle Handle, vcpu Handle, options uint32) Status

//go:noescape
//go:nosplit
func Sys_iommu_create(resource Handle, typ uint32, desc unsafe.Pointer, desc_size uint, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_ioports_request(resource Handle, io_addr uint16, len uint32) Status

//go:noescape
//go:nosplit
func Sys_ioports_release(resource Handle, io_addr uint16, len uint32) Status

//go:noescape
//go:nosplit
func Sys_job_create(parent_job Handle, options uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status

//go:noescape
//go:nosplit
func Sys_job_set_critical(job Handle, options uint32, process Handle) Status

//go:noescape
//go:nosplit
func Sys_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_ktrace_control(handle Handle, action uint32, options uint32, ptr unsafe.Pointer) Status

//go:noescape
//go:nosplit
func Sys_ktrace_write(handle Handle, id uint32, arg0 uint32, arg1 uint32) Status

//go:noescape
//go:nosplit
func Sys_nanosleep(deadline Time) Status

//go:noescape
//go:nosplit
func Sys_ticks_get() int64

//go:noescape
//go:nosplit
func Sys_ticks_per_second() int64

//go:noescape
//go:nosplit
func Sys_deadline_after(nanoseconds Duration) Time

//go:noescape
//go:nosplit
func Sys_vmar_unmap_handle_close_thread_exit(vmar_handle Handle, addr Vaddr, size uint, close_handle Handle) Status

//go:noescape
//go:nosplit
func Sys_futex_wake_handle_close_thread_exit(value_ptr *int32, wake_count uint32, new_value int32, close_handle Handle)

//go:noescape
//go:nosplit
func Sys_ticks_get_via_kernel() int64

//go:noescape
//go:nosplit
func Sys_msi_allocate(handle Handle, count uint32, out_allocation *Handle) Status

//go:noescape
//go:nosplit
func Sys_msi_create(handle Handle, options uint32, msi_id uint32, vmo Handle, vmo_offset uint, out_interrupt *Handle) Status

//go:noescape
//go:nosplit
func Sys_mtrace_control(handle Handle, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) Status

//go:noescape
//go:nosplit
func Sys_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status

//go:noescape
//go:nosplit
func Sys_object_wait_many(items *WaitItem, num_items uint, deadline Time) Status

//go:noescape
//go:nosplit
func Sys_object_wait_async(handle Handle, port Handle, key uint64, signals Signals, options uint32) Status

//go:noescape
//go:nosplit
func Sys_object_signal(handle Handle, clear_mask uint32, set_mask uint32) Status

//go:noescape
//go:nosplit
func Sys_object_signal_peer(handle Handle, clear_mask uint32, set_mask uint32) Status

//go:noescape
//go:nosplit
func Sys_object_get_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status

//go:noescape
//go:nosplit
func Sys_object_set_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status

//go:noescape
//go:nosplit
func Sys_object_get_info(handle Handle, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint, avail *uint) Status

//go:noescape
//go:nosplit
func Sys_object_get_child(handle Handle, koid uint64, rights Rights, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_object_set_profile(handle Handle, profile Handle, options uint32) Status

//go:noescape
//go:nosplit
func Sys_pager_create(options uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_pager_create_vmo(pager Handle, options uint32, port Handle, key uint64, size uint64, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_pager_detach_vmo(pager Handle, vmo Handle) Status

//go:noescape
//go:nosplit
func Sys_pager_supply_pages(pager Handle, pager_vmo Handle, offset uint64, length uint64, aux_vmo Handle, aux_offset uint64) Status

//go:noescape
//go:nosplit
func Sys_pager_op_range(pager Handle, op uint32, pager_vmo Handle, offset uint64, length uint64, data uint64) Status

//go:noescape
//go:nosplit
func Sys_pc_firmware_tables(handle Handle, acpi_rsdp *Paddr, smbios *Paddr) Status

//go:noescape
//go:nosplit
func Sys_pci_get_nth_device(handle Handle, index uint32, out_info *uintptr, out_handle *Handle) Status

//go:noescape
//go:nosplit
func Sys_pci_enable_bus_master(handle Handle, enable uint32) Status

//go:noescape
//go:nosplit
func Sys_pci_reset_device(handle Handle) Status

//go:noescape
//go:nosplit
func Sys_pci_config_read(handle Handle, offset uint16, width uint, out_val *uint32) Status

//go:noescape
//go:nosplit
func Sys_pci_config_write(handle Handle, offset uint16, width uint, val uint32) Status

//go:noescape
//go:nosplit
func Sys_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write uint32) Status

//go:noescape
//go:nosplit
func Sys_pci_get_bar(handle Handle, bar_num uint32, out_bar *uintptr, out_handle *Handle) Status

//go:noescape
//go:nosplit
func Sys_pci_map_interrupt(handle Handle, which_irq int32, out_handle *Handle) Status

//go:noescape
//go:nosplit
func Sys_pci_query_irq_mode(handle Handle, mode uint32, out_max_irqs *uint32) Status

//go:noescape
//go:nosplit
func Sys_pci_set_irq_mode(handle Handle, mode uint32, requested_irq_count uint32) Status

//go:noescape
//go:nosplit
func Sys_pci_init(handle Handle, init_buf *uintptr, len uint32) Status

//go:noescape
//go:nosplit
func Sys_pci_add_subtract_io_range(handle Handle, mmio uint32, base uint64, len uint64, add uint32) Status

//go:noescape
//go:nosplit
func Sys_pmt_unpin(handle Handle) Status

//go:noescape
//go:nosplit
func Sys_port_create(options uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_port_queue(handle Handle, packet *int) Status

//go:noescape
//go:nosplit
func Sys_port_wait(handle Handle, deadline Time, packet *int) Status

//go:noescape
//go:nosplit
func Sys_port_cancel(handle Handle, source Handle, key uint64) Status

//go:noescape
//go:nosplit
func Sys_process_exit(retcode int64)

//go:noescape
//go:nosplit
func Sys_process_create(job Handle, name *uint8, name_size uint, options uint32, proc_handle *Handle, vmar_handle *Handle) Status

//go:noescape
//go:nosplit
func Sys_process_start(handle Handle, thread Handle, entry Vaddr, stack Vaddr, arg1 Handle, arg2 uintptr) Status

//go:noescape
//go:nosplit
func Sys_process_read_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_process_write_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_profile_create(root_job Handle, options uint32, profile *int, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_resource_create(parent_rsrc Handle, options uint32, base uint64, size uint, name *uint8, name_size uint, resource_out *Handle) Status

//go:noescape
//go:nosplit
func Sys_smc_call(handle Handle, parameters *SMCParameters, out_smc_result *SMCResult) Status

//go:noescape
//go:nosplit
func Sys_socket_create(options uint32, out0 *Handle, out1 *Handle) Status

//go:noescape
//go:nosplit
func Sys_socket_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_socket_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_socket_shutdown(handle Handle, options uint32) Status

//go:noescape
//go:nosplit
func Sys_stream_create(options uint32, vmo Handle, seek uint64, out_stream *Handle) Status

//go:noescape
//go:nosplit
func Sys_stream_writev(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_stream_writev_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_stream_readv(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_stream_readv_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_stream_seek(handle Handle, whence uint32, offset int64, out_seek *uint64) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_0() Status

//go:noescape
//go:nosplit
func Sys_syscall_test_1(a int32) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_2(a int32, b int32) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_3(a int32, b int32, c int32) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_4(a int32, b int32, c int32, d int32) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_5(a int32, b int32, c int32, d int32, e int32) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_wrapper(a int32, b int32, c int32) Status

//go:noescape
//go:nosplit
func Sys_syscall_test_handle_create(return_value Status, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_system_get_dcache_line_size() uint32

//go:noescape
//go:nosplit
func Sys_system_get_num_cpus() uint32

//go:noescape
//go:nosplit
func Sys_system_get_version_string() unsafe.Pointer

//go:noescape
//go:nosplit
func Sys_system_get_physmem() uint64

//go:noescape
//go:nosplit
func Sys_system_get_features(kind uint32, features *uint32) Status

//go:noescape
//go:nosplit
func Sys_system_get_event(root_job Handle, kind uint32, event *Handle) Status

//go:noescape
//go:nosplit
func Sys_system_mexec(resource Handle, kernel_vmo Handle, bootimage_vmo Handle) Status

//go:noescape
//go:nosplit
func Sys_system_mexec_payload_get(resource Handle, buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_system_powerctl(resource Handle, cmd uint32, arg *int) Status

//go:noescape
//go:nosplit
func Sys_task_suspend(handle Handle, token *Handle) Status

//go:noescape
//go:nosplit
func Sys_task_suspend_token(handle Handle, token *Handle) Status

//go:noescape
//go:nosplit
func Sys_task_create_exception_channel(handle Handle, options uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_task_kill(handle Handle) Status

//go:noescape
//go:nosplit
func Sys_thread_exit()

//go:noescape
//go:nosplit
func Sys_thread_create(process Handle, name *uint8, name_size uint, options uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_thread_start(handle Handle, thread_entry Vaddr, stack Vaddr, arg1 uintptr, arg2 uintptr) Status

//go:noescape
//go:nosplit
func Sys_thread_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_thread_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_timer_create(options uint32, clock_id uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_timer_set(handle Handle, deadline Time, slack Duration) Status

//go:noescape
//go:nosplit
func Sys_timer_cancel(handle Handle) Status

//go:noescape
//go:nosplit
func Sys_vcpu_create(guest Handle, options uint32, entry Vaddr, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_vcpu_resume(handle Handle, packet *int) Status

//go:noescape
//go:nosplit
func Sys_vcpu_interrupt(handle Handle, vector uint32) Status

//go:noescape
//go:nosplit
func Sys_vcpu_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_vcpu_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_vmar_allocate(parent_vmar Handle, options VMFlag, offset uint, size uint, child_vmar *Handle, child_addr *Vaddr) Status

//go:noescape
//go:nosplit
func Sys_vmar_destroy(handle Handle) Status

//go:noescape
//go:nosplit
func Sys_vmar_map(handle Handle, options VMFlag, vmar_offset uint, vmo Handle, vmo_offset uint64, len uint, mapped_addr *Vaddr) Status

//go:noescape
//go:nosplit
func Sys_vmar_unmap(handle Handle, addr Vaddr, len uint) Status

//go:noescape
//go:nosplit
func Sys_vmar_protect(handle Handle, options VMFlag, addr Vaddr, len uint) Status

//go:noescape
//go:nosplit
func Sys_vmar_op_range(handle Handle, op uint32, address Vaddr, size uint, buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_vmo_create(size uint64, options uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_vmo_read(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_vmo_write(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_vmo_get_size(handle Handle, size *uint64) Status

//go:noescape
//go:nosplit
func Sys_vmo_set_size(handle Handle, size uint64) Status

//go:noescape
//go:nosplit
func Sys_vmo_op_range(handle Handle, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) Status

//go:noescape
//go:nosplit
func Sys_vmo_create_child(handle Handle, options uint32, offset uint64, size uint64, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_vmo_set_cache_policy(handle Handle, cache_policy uint32) Status

//go:noescape
//go:nosplit
func Sys_vmo_replace_as_executable(handle Handle, vmex Handle, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_vmo_create_contiguous(bti Handle, size uint, alignment_log2 uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_vmo_create_physical(resource Handle, paddr Paddr, size uint, out *Handle) Status

----- go-syscall-stubs.go END -----


----- go-syscall-x86-asm.go START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

#include "textflag.h"

// func Sys_bti_create(iommu Handle, options uint32, bti_id uint64, out *Handle) Status
TEXT ·Sys_bti_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_bti_create(SB)

// func Sys_bti_pin(handle Handle, options uint32, vmo Handle, offset uint64, size uint64, addrs *Paddr, num_addrs uint, pmt *Handle) Status
TEXT ·Sys_bti_pin(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_bti_pin(SB)

// func Sys_bti_release_quarantine(handle Handle) Status
TEXT ·Sys_bti_release_quarantine(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_bti_release_quarantine(SB)

// func Sys_cache_flush(addr unsafe.Pointer, size uint, options uint32) Status
TEXT ·Sys_cache_flush(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_cache_flush(SB)

// func Sys_channel_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_channel_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_create(SB)

// func Sys_channel_read(handle Handle, options uint32, bytes unsafe.Pointer, handles *Handle, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_read(SB)

// func Sys_channel_read_etc(handle Handle, options uint32, bytes unsafe.Pointer, handles *HandleInfo, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_read_etc(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_read_etc(SB)

// func Sys_channel_write(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *Handle, num_handles uint32) Status
TEXT ·Sys_channel_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_write(SB)

// func Sys_channel_write_etc(handle Handle, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles *HandleDisposition, num_handles uint32) Status
TEXT ·Sys_channel_write_etc(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_write_etc(SB)

// func Sys_channel_call_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_noretry(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_noretry(SB)

// func Sys_channel_call_finish(deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_finish(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_finish(SB)

// func Sys_channel_call(handle Handle, options uint32, deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call(SB)

// func Sys_channel_call_etc_noretry(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc_noretry(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_etc_noretry(SB)

// func Sys_channel_call_etc_finish(deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc_finish(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_etc_finish(SB)

// func Sys_channel_call_etc(handle Handle, options uint32, deadline Time, args *ChannelCallEtcArgs, actual_bytes *uint32, actual_handles *uint32) Status
TEXT ·Sys_channel_call_etc(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_channel_call_etc(SB)

// func Sys_clock_get(clock_id uint32, out *Time) Status
TEXT ·Sys_clock_get(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_get(SB)

// func Sys_clock_get_monotonic() Time
TEXT ·Sys_clock_get_monotonic(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_get_monotonic(SB)

// func Sys_clock_adjust(handle Handle, clock_id uint32, offset int64) Status
TEXT ·Sys_clock_adjust(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_adjust(SB)

// func Sys_clock_get_monotonic_via_kernel() Time
TEXT ·Sys_clock_get_monotonic_via_kernel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_get_monotonic_via_kernel(SB)

// func Sys_clock_create(options uint64, args unsafe.Pointer, out *Handle) Status
TEXT ·Sys_clock_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_create(SB)

// func Sys_clock_read(handle Handle, now *Time) Status
TEXT ·Sys_clock_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_read(SB)

// func Sys_clock_get_details(handle Handle, options uint64, details unsafe.Pointer) Status
TEXT ·Sys_clock_get_details(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_get_details(SB)

// func Sys_clock_update(handle Handle, options uint64, args unsafe.Pointer) Status
TEXT ·Sys_clock_update(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_clock_update(SB)

// func Sys_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_cprng_draw_once(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_cprng_draw_once(SB)

// func Sys_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
TEXT ·Sys_cprng_draw(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_cprng_draw(SB)

// func Sys_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_cprng_add_entropy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_cprng_add_entropy(SB)

// func Sys_debug_read(handle Handle, buffer *uint8, buffer_size uint, actual *uint) Status
TEXT ·Sys_debug_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debug_read(SB)

// func Sys_debug_write(buffer *uint8, buffer_size uint) Status
TEXT ·Sys_debug_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debug_write(SB)

// func Sys_debug_send_command(resource Handle, buffer *uint8, buffer_size uint) Status
TEXT ·Sys_debug_send_command(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debug_send_command(SB)

// func Sys_debuglog_create(resource Handle, options uint32, out *Handle) Status
TEXT ·Sys_debuglog_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debuglog_create(SB)

// func Sys_debuglog_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_debuglog_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debuglog_write(SB)

// func Sys_debuglog_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_debuglog_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_debuglog_read(SB)

// func Sys_event_create(options uint32, out *Handle) Status
TEXT ·Sys_event_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_event_create(SB)

// func Sys_eventpair_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_eventpair_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_eventpair_create(SB)

// func Sys_exception_get_thread(handle Handle, out *Handle) Status
TEXT ·Sys_exception_get_thread(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_exception_get_thread(SB)

// func Sys_exception_get_process(handle Handle, out *Handle) Status
TEXT ·Sys_exception_get_process(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_exception_get_process(SB)

// func Sys_fifo_create(elem_count uint, elem_size uint, options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_fifo_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_fifo_create(SB)

// func Sys_fifo_read(handle Handle, elem_size uint, data unsafe.Pointer, data_size uint, actual_count *uint) Status
TEXT ·Sys_fifo_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_fifo_read(SB)

// func Sys_fifo_write(handle Handle, elem_size uint, data unsafe.Pointer, count uint, actual_count *uint) Status
TEXT ·Sys_fifo_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_fifo_write(SB)

// func Sys_framebuffer_get_info(resource Handle, format *uint32, width *uint32, height *uint32, stride *uint32) Status
TEXT ·Sys_framebuffer_get_info(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_framebuffer_get_info(SB)

// func Sys_framebuffer_set_range(resource Handle, vmo Handle, len uint32, format uint32, width uint32, height uint32, stride uint32) Status
TEXT ·Sys_framebuffer_set_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_framebuffer_set_range(SB)

// func Sys_futex_wait(value_ptr *int32, current_value int32, new_futex_owner Handle, deadline Time) Status
TEXT ·Sys_futex_wait(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_wait(SB)

// func Sys_futex_wake(value_ptr *int32, wake_count uint32) Status
TEXT ·Sys_futex_wake(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_wake(SB)

// func Sys_futex_requeue(value_ptr *int32, wake_count uint32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
TEXT ·Sys_futex_requeue(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_requeue(SB)

// func Sys_futex_wake_single_owner(value_ptr *int32) Status
TEXT ·Sys_futex_wake_single_owner(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_wake_single_owner(SB)

// func Sys_futex_requeue_single_owner(value_ptr *int32, current_value int32, requeue_ptr *int32, requeue_count uint32, new_requeue_owner Handle) Status
TEXT ·Sys_futex_requeue_single_owner(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_requeue_single_owner(SB)

// func Sys_futex_get_owner(value_ptr *int32, koid *uint64) Status
TEXT ·Sys_futex_get_owner(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_get_owner(SB)

// func Sys_guest_create(resource Handle, options uint32, guest_handle *Handle, vmar_handle *Handle) Status
TEXT ·Sys_guest_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_guest_create(SB)

// func Sys_guest_set_trap(handle Handle, kind uint32, addr Vaddr, size uint, port_handle Handle, key uint64) Status
TEXT ·Sys_guest_set_trap(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_guest_set_trap(SB)

// func Sys_handle_close(handle Handle) Status
TEXT ·Sys_handle_close(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_handle_close(SB)

// func Sys_handle_close_many(handles *Handle, num_handles uint) Status
TEXT ·Sys_handle_close_many(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_handle_close_many(SB)

// func Sys_handle_duplicate(handle Handle, rights Rights, out *Handle) Status
TEXT ·Sys_handle_duplicate(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_handle_duplicate(SB)

// func Sys_handle_replace(handle Handle, rights Rights, out *Handle) Status
TEXT ·Sys_handle_replace(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_handle_replace(SB)

// func Sys_interrupt_create(src_obj Handle, src_num uint32, options uint32, out_handle *Handle) Status
TEXT ·Sys_interrupt_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_create(SB)

// func Sys_interrupt_bind(handle Handle, port_handle Handle, key uint64, options uint32) Status
TEXT ·Sys_interrupt_bind(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_bind(SB)

// func Sys_interrupt_wait(handle Handle, out_timestamp *Time) Status
TEXT ·Sys_interrupt_wait(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_wait(SB)

// func Sys_interrupt_destroy(handle Handle) Status
TEXT ·Sys_interrupt_destroy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_destroy(SB)

// func Sys_interrupt_ack(handle Handle) Status
TEXT ·Sys_interrupt_ack(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_ack(SB)

// func Sys_interrupt_trigger(handle Handle, options uint32, timestamp Time) Status
TEXT ·Sys_interrupt_trigger(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_trigger(SB)

// func Sys_interrupt_bind_vcpu(handle Handle, vcpu Handle, options uint32) Status
TEXT ·Sys_interrupt_bind_vcpu(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_interrupt_bind_vcpu(SB)

// func Sys_iommu_create(resource Handle, typ uint32, desc unsafe.Pointer, desc_size uint, out *Handle) Status
TEXT ·Sys_iommu_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_iommu_create(SB)

// func Sys_ioports_request(resource Handle, io_addr uint16, len uint32) Status
TEXT ·Sys_ioports_request(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ioports_request(SB)

// func Sys_ioports_release(resource Handle, io_addr uint16, len uint32) Status
TEXT ·Sys_ioports_release(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ioports_release(SB)

// func Sys_job_create(parent_job Handle, options uint32, out *Handle) Status
TEXT ·Sys_job_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_job_create(SB)

// func Sys_job_set_policy(handle Handle, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) Status
TEXT ·Sys_job_set_policy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_job_set_policy(SB)

// func Sys_job_set_critical(job Handle, options uint32, process Handle) Status
TEXT ·Sys_job_set_critical(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_job_set_critical(SB)

// func Sys_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status
TEXT ·Sys_ktrace_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ktrace_read(SB)

// func Sys_ktrace_control(handle Handle, action uint32, options uint32, ptr unsafe.Pointer) Status
TEXT ·Sys_ktrace_control(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ktrace_control(SB)

// func Sys_ktrace_write(handle Handle, id uint32, arg0 uint32, arg1 uint32) Status
TEXT ·Sys_ktrace_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ktrace_write(SB)

// func Sys_nanosleep(deadline Time) Status
TEXT ·Sys_nanosleep(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_nanosleep(SB)

// func Sys_ticks_get() int64
TEXT ·Sys_ticks_get(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ticks_get(SB)

// func Sys_ticks_per_second() int64
TEXT ·Sys_ticks_per_second(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ticks_per_second(SB)

// func Sys_deadline_after(nanoseconds Duration) Time
TEXT ·Sys_deadline_after(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_deadline_after(SB)

// func Sys_vmar_unmap_handle_close_thread_exit(vmar_handle Handle, addr Vaddr, size uint, close_handle Handle) Status
TEXT ·Sys_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB)

// func Sys_futex_wake_handle_close_thread_exit(value_ptr *int32, wake_count uint32, new_value int32, close_handle Handle)
TEXT ·Sys_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB)

// func Sys_ticks_get_via_kernel() int64
TEXT ·Sys_ticks_get_via_kernel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_ticks_get_via_kernel(SB)

// func Sys_msi_allocate(handle Handle, count uint32, out_allocation *Handle) Status
TEXT ·Sys_msi_allocate(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_msi_allocate(SB)

// func Sys_msi_create(handle Handle, options uint32, msi_id uint32, vmo Handle, vmo_offset uint, out_interrupt *Handle) Status
TEXT ·Sys_msi_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_msi_create(SB)

// func Sys_mtrace_control(handle Handle, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) Status
TEXT ·Sys_mtrace_control(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_mtrace_control(SB)

// func Sys_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status
TEXT ·Sys_object_wait_one(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_wait_one(SB)

// func Sys_object_wait_many(items *WaitItem, num_items uint, deadline Time) Status
TEXT ·Sys_object_wait_many(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_wait_many(SB)

// func Sys_object_wait_async(handle Handle, port Handle, key uint64, signals Signals, options uint32) Status
TEXT ·Sys_object_wait_async(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_wait_async(SB)

// func Sys_object_signal(handle Handle, clear_mask uint32, set_mask uint32) Status
TEXT ·Sys_object_signal(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_signal(SB)

// func Sys_object_signal_peer(handle Handle, clear_mask uint32, set_mask uint32) Status
TEXT ·Sys_object_signal_peer(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_signal_peer(SB)

// func Sys_object_get_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
TEXT ·Sys_object_get_property(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_get_property(SB)

// func Sys_object_set_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status
TEXT ·Sys_object_set_property(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_set_property(SB)

// func Sys_object_get_info(handle Handle, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint, avail *uint) Status
TEXT ·Sys_object_get_info(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_get_info(SB)

// func Sys_object_get_child(handle Handle, koid uint64, rights Rights, out *Handle) Status
TEXT ·Sys_object_get_child(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_get_child(SB)

// func Sys_object_set_profile(handle Handle, profile Handle, options uint32) Status
TEXT ·Sys_object_set_profile(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_object_set_profile(SB)

// func Sys_pager_create(options uint32, out *Handle) Status
TEXT ·Sys_pager_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_create(SB)

// func Sys_pager_create_vmo(pager Handle, options uint32, port Handle, key uint64, size uint64, out *Handle) Status
TEXT ·Sys_pager_create_vmo(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_create_vmo(SB)

// func Sys_pager_detach_vmo(pager Handle, vmo Handle) Status
TEXT ·Sys_pager_detach_vmo(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_detach_vmo(SB)

// func Sys_pager_supply_pages(pager Handle, pager_vmo Handle, offset uint64, length uint64, aux_vmo Handle, aux_offset uint64) Status
TEXT ·Sys_pager_supply_pages(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_supply_pages(SB)

// func Sys_pager_op_range(pager Handle, op uint32, pager_vmo Handle, offset uint64, length uint64, data uint64) Status
TEXT ·Sys_pager_op_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pager_op_range(SB)

// func Sys_pc_firmware_tables(handle Handle, acpi_rsdp *Paddr, smbios *Paddr) Status
TEXT ·Sys_pc_firmware_tables(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pc_firmware_tables(SB)

// func Sys_pci_get_nth_device(handle Handle, index uint32, out_info *uintptr, out_handle *Handle) Status
TEXT ·Sys_pci_get_nth_device(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_get_nth_device(SB)

// func Sys_pci_enable_bus_master(handle Handle, enable uint32) Status
TEXT ·Sys_pci_enable_bus_master(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_enable_bus_master(SB)

// func Sys_pci_reset_device(handle Handle) Status
TEXT ·Sys_pci_reset_device(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_reset_device(SB)

// func Sys_pci_config_read(handle Handle, offset uint16, width uint, out_val *uint32) Status
TEXT ·Sys_pci_config_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_config_read(SB)

// func Sys_pci_config_write(handle Handle, offset uint16, width uint, val uint32) Status
TEXT ·Sys_pci_config_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_config_write(SB)

// func Sys_pci_cfg_pio_rw(handle Handle, bus uint8, dev uint8, funk uint8, offset uint8, val *uint32, width uint, write uint32) Status
TEXT ·Sys_pci_cfg_pio_rw(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_cfg_pio_rw(SB)

// func Sys_pci_get_bar(handle Handle, bar_num uint32, out_bar *uintptr, out_handle *Handle) Status
TEXT ·Sys_pci_get_bar(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_get_bar(SB)

// func Sys_pci_map_interrupt(handle Handle, which_irq int32, out_handle *Handle) Status
TEXT ·Sys_pci_map_interrupt(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_map_interrupt(SB)

// func Sys_pci_query_irq_mode(handle Handle, mode uint32, out_max_irqs *uint32) Status
TEXT ·Sys_pci_query_irq_mode(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_query_irq_mode(SB)

// func Sys_pci_set_irq_mode(handle Handle, mode uint32, requested_irq_count uint32) Status
TEXT ·Sys_pci_set_irq_mode(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_set_irq_mode(SB)

// func Sys_pci_init(handle Handle, init_buf *uintptr, len uint32) Status
TEXT ·Sys_pci_init(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_init(SB)

// func Sys_pci_add_subtract_io_range(handle Handle, mmio uint32, base uint64, len uint64, add uint32) Status
TEXT ·Sys_pci_add_subtract_io_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pci_add_subtract_io_range(SB)

// func Sys_pmt_unpin(handle Handle) Status
TEXT ·Sys_pmt_unpin(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_pmt_unpin(SB)

// func Sys_port_create(options uint32, out *Handle) Status
TEXT ·Sys_port_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_port_create(SB)

// func Sys_port_queue(handle Handle, packet *int) Status
TEXT ·Sys_port_queue(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_port_queue(SB)

// func Sys_port_wait(handle Handle, deadline Time, packet *int) Status
TEXT ·Sys_port_wait(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_port_wait(SB)

// func Sys_port_cancel(handle Handle, source Handle, key uint64) Status
TEXT ·Sys_port_cancel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_port_cancel(SB)

// func Sys_process_exit(retcode int64)
TEXT ·Sys_process_exit(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_exit(SB)

// func Sys_process_create(job Handle, name *uint8, name_size uint, options uint32, proc_handle *Handle, vmar_handle *Handle) Status
TEXT ·Sys_process_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_create(SB)

// func Sys_process_start(handle Handle, thread Handle, entry Vaddr, stack Vaddr, arg1 Handle, arg2 uintptr) Status
TEXT ·Sys_process_start(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_start(SB)

// func Sys_process_read_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_process_read_memory(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_read_memory(SB)

// func Sys_process_write_memory(handle Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_process_write_memory(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_process_write_memory(SB)

// func Sys_profile_create(root_job Handle, options uint32, profile *int, out *Handle) Status
TEXT ·Sys_profile_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_profile_create(SB)

// func Sys_resource_create(parent_rsrc Handle, options uint32, base uint64, size uint, name *uint8, name_size uint, resource_out *Handle) Status
TEXT ·Sys_resource_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_resource_create(SB)

// func Sys_smc_call(handle Handle, parameters *SMCParameters, out_smc_result *SMCResult) Status
TEXT ·Sys_smc_call(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_smc_call(SB)

// func Sys_socket_create(options uint32, out0 *Handle, out1 *Handle) Status
TEXT ·Sys_socket_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_socket_create(SB)

// func Sys_socket_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_socket_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_socket_write(SB)

// func Sys_socket_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status
TEXT ·Sys_socket_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_socket_read(SB)

// func Sys_socket_shutdown(handle Handle, options uint32) Status
TEXT ·Sys_socket_shutdown(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_socket_shutdown(SB)

// func Sys_stream_create(options uint32, vmo Handle, seek uint64, out_stream *Handle) Status
TEXT ·Sys_stream_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_create(SB)

// func Sys_stream_writev(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_writev(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_writev(SB)

// func Sys_stream_writev_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_writev_at(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_writev_at(SB)

// func Sys_stream_readv(handle Handle, options uint32, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_readv(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_readv(SB)

// func Sys_stream_readv_at(handle Handle, options uint32, offset uint64, vector *uintptr, num_vector uint, actual *uint) Status
TEXT ·Sys_stream_readv_at(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_readv_at(SB)

// func Sys_stream_seek(handle Handle, whence uint32, offset int64, out_seek *uint64) Status
TEXT ·Sys_stream_seek(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_stream_seek(SB)

// func Sys_syscall_test_0() Status
TEXT ·Sys_syscall_test_0(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_0(SB)

// func Sys_syscall_test_1(a int32) Status
TEXT ·Sys_syscall_test_1(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_1(SB)

// func Sys_syscall_test_2(a int32, b int32) Status
TEXT ·Sys_syscall_test_2(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_2(SB)

// func Sys_syscall_test_3(a int32, b int32, c int32) Status
TEXT ·Sys_syscall_test_3(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_3(SB)

// func Sys_syscall_test_4(a int32, b int32, c int32, d int32) Status
TEXT ·Sys_syscall_test_4(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_4(SB)

// func Sys_syscall_test_5(a int32, b int32, c int32, d int32, e int32) Status
TEXT ·Sys_syscall_test_5(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_5(SB)

// func Sys_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) Status
TEXT ·Sys_syscall_test_6(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_6(SB)

// func Sys_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) Status
TEXT ·Sys_syscall_test_7(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_7(SB)

// func Sys_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) Status
TEXT ·Sys_syscall_test_8(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_8(SB)

// func Sys_syscall_test_wrapper(a int32, b int32, c int32) Status
TEXT ·Sys_syscall_test_wrapper(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_wrapper(SB)

// func Sys_syscall_test_handle_create(return_value Status, out *Handle) Status
TEXT ·Sys_syscall_test_handle_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_syscall_test_handle_create(SB)

// func Sys_system_get_dcache_line_size() uint32
TEXT ·Sys_system_get_dcache_line_size(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_dcache_line_size(SB)

// func Sys_system_get_num_cpus() uint32
TEXT ·Sys_system_get_num_cpus(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_num_cpus(SB)

// func Sys_system_get_version_string() unsafe.Pointer
TEXT ·Sys_system_get_version_string(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_version_string(SB)

// func Sys_system_get_physmem() uint64
TEXT ·Sys_system_get_physmem(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_physmem(SB)

// func Sys_system_get_features(kind uint32, features *uint32) Status
TEXT ·Sys_system_get_features(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_features(SB)

// func Sys_system_get_event(root_job Handle, kind uint32, event *Handle) Status
TEXT ·Sys_system_get_event(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_get_event(SB)

// func Sys_system_mexec(resource Handle, kernel_vmo Handle, bootimage_vmo Handle) Status
TEXT ·Sys_system_mexec(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_mexec(SB)

// func Sys_system_mexec_payload_get(resource Handle, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_system_mexec_payload_get(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_mexec_payload_get(SB)

// func Sys_system_powerctl(resource Handle, cmd uint32, arg *int) Status
TEXT ·Sys_system_powerctl(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_system_powerctl(SB)

// func Sys_task_suspend(handle Handle, token *Handle) Status
TEXT ·Sys_task_suspend(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_task_suspend(SB)

// func Sys_task_suspend_token(handle Handle, token *Handle) Status
TEXT ·Sys_task_suspend_token(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_task_suspend_token(SB)

// func Sys_task_create_exception_channel(handle Handle, options uint32, out *Handle) Status
TEXT ·Sys_task_create_exception_channel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_task_create_exception_channel(SB)

// func Sys_task_kill(handle Handle) Status
TEXT ·Sys_task_kill(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_task_kill(SB)

// func Sys_thread_exit()
TEXT ·Sys_thread_exit(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_exit(SB)

// func Sys_thread_create(process Handle, name *uint8, name_size uint, options uint32, out *Handle) Status
TEXT ·Sys_thread_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_create(SB)

// func Sys_thread_start(handle Handle, thread_entry Vaddr, stack Vaddr, arg1 uintptr, arg2 uintptr) Status
TEXT ·Sys_thread_start(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_start(SB)

// func Sys_thread_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_thread_read_state(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_read_state(SB)

// func Sys_thread_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_thread_write_state(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_thread_write_state(SB)

// func Sys_timer_create(options uint32, clock_id uint32, out *Handle) Status
TEXT ·Sys_timer_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_timer_create(SB)

// func Sys_timer_set(handle Handle, deadline Time, slack Duration) Status
TEXT ·Sys_timer_set(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_timer_set(SB)

// func Sys_timer_cancel(handle Handle) Status
TEXT ·Sys_timer_cancel(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_timer_cancel(SB)

// func Sys_vcpu_create(guest Handle, options uint32, entry Vaddr, out *Handle) Status
TEXT ·Sys_vcpu_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_create(SB)

// func Sys_vcpu_resume(handle Handle, packet *int) Status
TEXT ·Sys_vcpu_resume(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_resume(SB)

// func Sys_vcpu_interrupt(handle Handle, vector uint32) Status
TEXT ·Sys_vcpu_interrupt(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_interrupt(SB)

// func Sys_vcpu_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vcpu_read_state(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_read_state(SB)

// func Sys_vcpu_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vcpu_write_state(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vcpu_write_state(SB)

// func Sys_vmar_allocate(parent_vmar Handle, options VMFlag, offset uint, size uint, child_vmar *Handle, child_addr *Vaddr) Status
TEXT ·Sys_vmar_allocate(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_allocate(SB)

// func Sys_vmar_destroy(handle Handle) Status
TEXT ·Sys_vmar_destroy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_destroy(SB)

// func Sys_vmar_map(handle Handle, options VMFlag, vmar_offset uint, vmo Handle, vmo_offset uint64, len uint, mapped_addr *Vaddr) Status
TEXT ·Sys_vmar_map(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_map(SB)

// func Sys_vmar_unmap(handle Handle, addr Vaddr, len uint) Status
TEXT ·Sys_vmar_unmap(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_unmap(SB)

// func Sys_vmar_protect(handle Handle, options VMFlag, addr Vaddr, len uint) Status
TEXT ·Sys_vmar_protect(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_protect(SB)

// func Sys_vmar_op_range(handle Handle, op uint32, address Vaddr, size uint, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vmar_op_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmar_op_range(SB)

// func Sys_vmo_create(size uint64, options uint32, out *Handle) Status
TEXT ·Sys_vmo_create(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_create(SB)

// func Sys_vmo_read(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
TEXT ·Sys_vmo_read(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_read(SB)

// func Sys_vmo_write(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status
TEXT ·Sys_vmo_write(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_write(SB)

// func Sys_vmo_get_size(handle Handle, size *uint64) Status
TEXT ·Sys_vmo_get_size(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_get_size(SB)

// func Sys_vmo_set_size(handle Handle, size uint64) Status
TEXT ·Sys_vmo_set_size(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_set_size(SB)

// func Sys_vmo_op_range(handle Handle, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) Status
TEXT ·Sys_vmo_op_range(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_op_range(SB)

// func Sys_vmo_create_child(handle Handle, options uint32, offset uint64, size uint64, out *Handle) Status
TEXT ·Sys_vmo_create_child(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_create_child(SB)

// func Sys_vmo_set_cache_policy(handle Handle, cache_policy uint32) Status
TEXT ·Sys_vmo_set_cache_policy(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_set_cache_policy(SB)

// func Sys_vmo_replace_as_executable(handle Handle, vmex Handle, out *Handle) Status
TEXT ·Sys_vmo_replace_as_executable(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_replace_as_executable(SB)

// func Sys_vmo_create_contiguous(bti Handle, size uint, alignment_log2 uint32, out *Handle) Status
TEXT ·Sys_vmo_create_contiguous(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_create_contiguous(SB)

// func Sys_vmo_create_physical(resource Handle, paddr Paddr, size uint, out *Handle) Status
TEXT ·Sys_vmo_create_physical(SB),NOSPLIT,$0
	JMP runtime·vdsoCall_zx_vmo_create_physical(SB)

----- go-syscall-x86-asm.go END -----


----- go-vdso-arm64-calls.s START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

#include "go_asm.h"
#include "go_tls.h"
#include "textflag.h"
#include "funcdata.h"

// func vdsoCall_zx_bti_create(iommu uint32, options uint32, bti_id uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_bti_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW iommu+0(FP), R0
	MOVW options+4(FP), R1
	MOVD bti_id+8(FP), R2
	MOVD out+16(FP), R3
	BL vdso_zx_bti_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_bti_pin(handle uint32, options uint32, vmo uint32, offset uint64, size uint64, addrs unsafe.Pointer, num_addrs uint, pmt unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_bti_pin(SB),NOSPLIT,$0-60
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVW vmo+8(FP), R2
	MOVD offset+16(FP), R3
	MOVD size+24(FP), R4
	MOVD addrs+32(FP), R5
	MOVD num_addrs+40(FP), R6
	MOVD pmt+48(FP), R7
	BL vdso_zx_bti_pin(SB)
	MOVW R0, ret+56(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_bti_release_quarantine(handle uint32) int32
TEXT runtime·vdsoCall_zx_bti_release_quarantine(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	BL vdso_zx_bti_release_quarantine(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_cache_flush(addr unsafe.Pointer, size uint, options uint32) int32
TEXT runtime·vdsoCall_zx_cache_flush(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD addr+0(FP), R0
	MOVD size+8(FP), R1
	MOVW options+16(FP), R2
	BL vdso_zx_cache_flush(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW options+0(FP), R0
	MOVD out0+8(FP), R1
	MOVD out1+16(FP), R2
	BL vdso_zx_channel_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_read(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_read(SB),NOSPLIT,$0-52
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD bytes+8(FP), R2
	MOVD handles+16(FP), R3
	MOVW num_bytes+24(FP), R4
	MOVW num_handles+28(FP), R5
	MOVD actual_bytes+32(FP), R6
	MOVD actual_handles+40(FP), R7
	BL vdso_zx_channel_read(SB)
	MOVW R0, ret+48(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_read_etc(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_read_etc(SB),NOSPLIT,$0-52
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD bytes+8(FP), R2
	MOVD handles+16(FP), R3
	MOVW num_bytes+24(FP), R4
	MOVW num_handles+28(FP), R5
	MOVD actual_bytes+32(FP), R6
	MOVD actual_handles+40(FP), R7
	BL vdso_zx_channel_read_etc(SB)
	MOVW R0, ret+48(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_write(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
TEXT runtime·vdsoCall_zx_channel_write(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD bytes+8(FP), R2
	MOVW num_bytes+16(FP), R3
	MOVD handles+24(FP), R4
	MOVW num_handles+32(FP), R5
	BL vdso_zx_channel_write(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_write_etc(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
TEXT runtime·vdsoCall_zx_channel_write_etc(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD bytes+8(FP), R2
	MOVW num_bytes+16(FP), R3
	MOVD handles+24(FP), R4
	MOVW num_handles+32(FP), R5
	BL vdso_zx_channel_write_etc(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_call_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_noretry(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD deadline+8(FP), R2
	MOVD args+16(FP), R3
	MOVD actual_bytes+24(FP), R4
	MOVD actual_handles+32(FP), R5
	BL vdso_zx_channel_call_noretry(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_call_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_finish(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD deadline+0(FP), R0
	MOVD args+8(FP), R1
	MOVD actual_bytes+16(FP), R2
	MOVD actual_handles+24(FP), R3
	BL vdso_zx_channel_call_finish(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_call(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD deadline+8(FP), R2
	MOVD args+16(FP), R3
	MOVD actual_bytes+24(FP), R4
	MOVD actual_handles+32(FP), R5
	BL vdso_zx_channel_call(SB)
	MOVW R0, ret+40(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_call_etc_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc_noretry(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD deadline+8(FP), R2
	MOVD args+16(FP), R3
	MOVD actual_bytes+24(FP), R4
	MOVD actual_handles+32(FP), R5
	BL vdso_zx_channel_call_etc_noretry(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_call_etc_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc_finish(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD deadline+0(FP), R0
	MOVD args+8(FP), R1
	MOVD actual_bytes+16(FP), R2
	MOVD actual_handles+24(FP), R3
	BL vdso_zx_channel_call_etc_finish(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_channel_call_etc(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD deadline+8(FP), R2
	MOVD args+16(FP), R3
	MOVD actual_bytes+24(FP), R4
	MOVD actual_handles+32(FP), R5
	BL vdso_zx_channel_call_etc(SB)
	MOVW R0, ret+40(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_clock_get(clock_id uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_get(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW clock_id+0(FP), R0
	MOVD out+8(FP), R1
	BL vdso_zx_clock_get(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_clock_get_monotonic() int64
TEXT runtime·vdsoCall_zx_clock_get_monotonic(SB),NOSPLIT,$0-8
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_clock_get_monotonic(SB)
	MOVD R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_clock_adjust(handle uint32, clock_id uint32, offset int64) int32
TEXT runtime·vdsoCall_zx_clock_adjust(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW clock_id+4(FP), R1
	MOVD offset+8(FP), R2
	BL vdso_zx_clock_adjust(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_clock_get_monotonic_via_kernel() int64
TEXT runtime·vdsoCall_zx_clock_get_monotonic_via_kernel(SB),NOSPLIT,$0-8
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_clock_get_monotonic_via_kernel(SB)
	MOVD R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_clock_create(options uint64, args unsafe.Pointer, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD options+0(FP), R0
	MOVD args+8(FP), R1
	MOVD out+16(FP), R2
	BL vdso_zx_clock_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_clock_read(handle uint32, now unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_read(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD now+8(FP), R1
	BL vdso_zx_clock_read(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_clock_get_details(handle uint32, options uint64, details unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_get_details(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD options+8(FP), R1
	MOVD details+16(FP), R2
	BL vdso_zx_clock_get_details(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_clock_update(handle uint32, options uint64, args unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_update(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD options+8(FP), R1
	MOVD args+16(FP), R2
	BL vdso_zx_clock_update(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_cprng_draw_once(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD buffer+0(FP), R0
	MOVD buffer_size+8(FP), R1
	BL vdso_zx_cprng_draw_once(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
TEXT runtime·vdsoCall_zx_cprng_draw(SB),NOSPLIT,$0-16
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD buffer+0(FP), R0
	MOVD buffer_size+8(FP), R1
	BL vdso_zx_cprng_draw(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_cprng_add_entropy(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD buffer+0(FP), R0
	MOVD buffer_size+8(FP), R1
	BL vdso_zx_cprng_add_entropy(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_debug_read(handle uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_debug_read(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD buffer+8(FP), R1
	MOVD buffer_size+16(FP), R2
	MOVD actual+24(FP), R3
	BL vdso_zx_debug_read(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_debug_write(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debug_write(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD buffer+0(FP), R0
	MOVD buffer_size+8(FP), R1
	BL vdso_zx_debug_write(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_debug_send_command(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debug_send_command(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVD buffer+8(FP), R1
	MOVD buffer_size+16(FP), R2
	BL vdso_zx_debug_send_command(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_debuglog_create(resource uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_debuglog_create(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVW options+4(FP), R1
	MOVD out+8(FP), R2
	BL vdso_zx_debuglog_create(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_debuglog_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debuglog_write(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD buffer+8(FP), R2
	MOVD buffer_size+16(FP), R3
	BL vdso_zx_debuglog_write(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_debuglog_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debuglog_read(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD buffer+8(FP), R2
	MOVD buffer_size+16(FP), R3
	BL vdso_zx_debuglog_read(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_event_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_event_create(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW options+0(FP), R0
	MOVD out+8(FP), R1
	BL vdso_zx_event_create(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_eventpair_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_eventpair_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW options+0(FP), R0
	MOVD out0+8(FP), R1
	MOVD out1+16(FP), R2
	BL vdso_zx_eventpair_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_exception_get_thread(handle uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_exception_get_thread(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD out+8(FP), R1
	BL vdso_zx_exception_get_thread(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_exception_get_process(handle uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_exception_get_process(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD out+8(FP), R1
	BL vdso_zx_exception_get_process(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_fifo_create(elem_count uint, elem_size uint, options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_create(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD elem_count+0(FP), R0
	MOVD elem_size+8(FP), R1
	MOVW options+16(FP), R2
	MOVD out0+24(FP), R3
	MOVD out1+32(FP), R4
	BL vdso_zx_fifo_create(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_fifo_read(handle uint32, elem_size uint, data unsafe.Pointer, data_size uint, actual_count unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_read(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD elem_size+8(FP), R1
	MOVD data+16(FP), R2
	MOVD data_size+24(FP), R3
	MOVD actual_count+32(FP), R4
	BL vdso_zx_fifo_read(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_fifo_write(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_write(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD elem_size+8(FP), R1
	MOVD data+16(FP), R2
	MOVD count+24(FP), R3
	MOVD actual_count+32(FP), R4
	BL vdso_zx_fifo_write(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_framebuffer_get_info(resource uint32, format unsafe.Pointer, width unsafe.Pointer, height unsafe.Pointer, stride unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_framebuffer_get_info(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVD format+8(FP), R1
	MOVD width+16(FP), R2
	MOVD height+24(FP), R3
	MOVD stride+32(FP), R4
	BL vdso_zx_framebuffer_get_info(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_framebuffer_set_range(resource uint32, vmo uint32, len uint32, format uint32, width uint32, height uint32, stride uint32) int32
TEXT runtime·vdsoCall_zx_framebuffer_set_range(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVW vmo+4(FP), R1
	MOVW len+8(FP), R2
	MOVW format+12(FP), R3
	MOVW width+16(FP), R4
	MOVW height+20(FP), R5
	MOVW stride+24(FP), R6
	BL vdso_zx_framebuffer_set_range(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_futex_wait(value_ptr unsafe.Pointer, current_value int32, new_futex_owner uint32, deadline int64) int32
TEXT runtime·vdsoCall_zx_futex_wait(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD value_ptr+0(FP), R0
	MOVW current_value+8(FP), R1
	MOVW new_futex_owner+12(FP), R2
	MOVD deadline+16(FP), R3
	BL vdso_zx_futex_wait(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_futex_wake(value_ptr unsafe.Pointer, wake_count uint32) int32
TEXT runtime·vdsoCall_zx_futex_wake(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD value_ptr+0(FP), R0
	MOVW wake_count+8(FP), R1
	BL vdso_zx_futex_wake(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_futex_requeue(value_ptr unsafe.Pointer, wake_count uint32, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
TEXT runtime·vdsoCall_zx_futex_requeue(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD value_ptr+0(FP), R0
	MOVW wake_count+8(FP), R1
	MOVW current_value+12(FP), R2
	MOVD requeue_ptr+16(FP), R3
	MOVW requeue_count+24(FP), R4
	MOVW new_requeue_owner+28(FP), R5
	BL vdso_zx_futex_requeue(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_futex_wake_single_owner(value_ptr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_futex_wake_single_owner(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD value_ptr+0(FP), R0
	BL vdso_zx_futex_wake_single_owner(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_futex_requeue_single_owner(value_ptr unsafe.Pointer, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
TEXT runtime·vdsoCall_zx_futex_requeue_single_owner(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD value_ptr+0(FP), R0
	MOVW current_value+8(FP), R1
	MOVD requeue_ptr+16(FP), R2
	MOVW requeue_count+24(FP), R3
	MOVW new_requeue_owner+28(FP), R4
	BL vdso_zx_futex_requeue_single_owner(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_futex_get_owner(value_ptr unsafe.Pointer, koid unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_futex_get_owner(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD value_ptr+0(FP), R0
	MOVD koid+8(FP), R1
	BL vdso_zx_futex_get_owner(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_guest_create(resource uint32, options uint32, guest_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_guest_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVW options+4(FP), R1
	MOVD guest_handle+8(FP), R2
	MOVD vmar_handle+16(FP), R3
	BL vdso_zx_guest_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_guest_set_trap(handle uint32, kind uint32, addr uintptr, size uint, port_handle uint32, key uint64) int32
TEXT runtime·vdsoCall_zx_guest_set_trap(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW kind+4(FP), R1
	MOVD addr+8(FP), R2
	MOVD size+16(FP), R3
	MOVW port_handle+24(FP), R4
	MOVD key+32(FP), R5
	BL vdso_zx_guest_set_trap(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_handle_close(handle uint32) int32
TEXT runtime·vdsoCall_zx_handle_close(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	BL vdso_zx_handle_close(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_handle_close_many(handles unsafe.Pointer, num_handles uint) int32
TEXT runtime·vdsoCall_zx_handle_close_many(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD handles+0(FP), R0
	MOVD num_handles+8(FP), R1
	BL vdso_zx_handle_close_many(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_handle_duplicate(handle uint32, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_handle_duplicate(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW rights+4(FP), R1
	MOVD out+8(FP), R2
	BL vdso_zx_handle_duplicate(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_handle_replace(handle uint32, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_handle_replace(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW rights+4(FP), R1
	MOVD out+8(FP), R2
	BL vdso_zx_handle_replace(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_interrupt_create(src_obj uint32, src_num uint32, options uint32, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_interrupt_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW src_obj+0(FP), R0
	MOVW src_num+4(FP), R1
	MOVW options+8(FP), R2
	MOVD out_handle+16(FP), R3
	BL vdso_zx_interrupt_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_interrupt_bind(handle uint32, port_handle uint32, key uint64, options uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_bind(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW port_handle+4(FP), R1
	MOVD key+8(FP), R2
	MOVW options+16(FP), R3
	BL vdso_zx_interrupt_bind(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_interrupt_wait(handle uint32, out_timestamp unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_interrupt_wait(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVW handle+0(FP), R0
	MOVD out_timestamp+8(FP), R1
	BL vdso_zx_interrupt_wait(SB)
	MOVW R0, ret+16(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_interrupt_destroy(handle uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_destroy(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	BL vdso_zx_interrupt_destroy(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_interrupt_ack(handle uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_ack(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	BL vdso_zx_interrupt_ack(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_interrupt_trigger(handle uint32, options uint32, timestamp int64) int32
TEXT runtime·vdsoCall_zx_interrupt_trigger(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD timestamp+8(FP), R2
	BL vdso_zx_interrupt_trigger(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_interrupt_bind_vcpu(handle uint32, vcpu uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_bind_vcpu(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW vcpu+4(FP), R1
	MOVW options+8(FP), R2
	BL vdso_zx_interrupt_bind_vcpu(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_iommu_create(resource uint32, typ uint32, desc unsafe.Pointer, desc_size uint, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_iommu_create(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVW typ+4(FP), R1
	MOVD desc+8(FP), R2
	MOVD desc_size+16(FP), R3
	MOVD out+24(FP), R4
	BL vdso_zx_iommu_create(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_ioports_request(resource uint32, io_addr uint16, len uint32) int32
TEXT runtime·vdsoCall_zx_ioports_request(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVD io_addr+4(FP), R1
	MOVW len+8(FP), R2
	BL vdso_zx_ioports_request(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_ioports_release(resource uint32, io_addr uint16, len uint32) int32
TEXT runtime·vdsoCall_zx_ioports_release(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVD io_addr+4(FP), R1
	MOVW len+8(FP), R2
	BL vdso_zx_ioports_release(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_job_create(parent_job uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_job_create(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW parent_job+0(FP), R0
	MOVW options+4(FP), R1
	MOVD out+8(FP), R2
	BL vdso_zx_job_create(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_job_set_policy(handle uint32, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) int32
TEXT runtime·vdsoCall_zx_job_set_policy(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVW topic+8(FP), R2
	MOVD policy+16(FP), R3
	MOVW policy_size+24(FP), R4
	BL vdso_zx_job_set_policy(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_job_set_critical(job uint32, options uint32, process uint32) int32
TEXT runtime·vdsoCall_zx_job_set_critical(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW job+0(FP), R0
	MOVW options+4(FP), R1
	MOVW process+8(FP), R2
	BL vdso_zx_job_set_critical(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_ktrace_read(handle uint32, data unsafe.Pointer, offset uint32, data_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_ktrace_read(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD data+8(FP), R1
	MOVW offset+16(FP), R2
	MOVD data_size+24(FP), R3
	MOVD actual+32(FP), R4
	BL vdso_zx_ktrace_read(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_ktrace_control(handle uint32, action uint32, options uint32, ptr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_ktrace_control(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW action+4(FP), R1
	MOVW options+8(FP), R2
	MOVD ptr+16(FP), R3
	BL vdso_zx_ktrace_control(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_ktrace_write(handle uint32, id uint32, arg0 uint32, arg1 uint32) int32
TEXT runtime·vdsoCall_zx_ktrace_write(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW id+4(FP), R1
	MOVW arg0+8(FP), R2
	MOVW arg1+12(FP), R3
	BL vdso_zx_ktrace_write(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_nanosleep(deadline int64) int32
TEXT runtime·vdsoCall_zx_nanosleep(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD deadline+0(FP), R0
	BL vdso_zx_nanosleep(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_ticks_get() int64
TEXT runtime·vdsoCall_zx_ticks_get(SB),NOSPLIT,$0-8
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_ticks_get(SB)
	MOVD R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_ticks_per_second() int64
TEXT runtime·vdsoCall_zx_ticks_per_second(SB),NOSPLIT,$0-8
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_ticks_per_second(SB)
	MOVD R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_deadline_after(nanoseconds int64) int64
TEXT runtime·vdsoCall_zx_deadline_after(SB),NOSPLIT,$0-16
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD nanoseconds+0(FP), R0
	BL vdso_zx_deadline_after(SB)
	MOVD R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmar_unmap_handle_close_thread_exit(vmar_handle uint32, addr uintptr, size uint, close_handle uint32) int32
TEXT runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW vmar_handle+0(FP), R0
	MOVD addr+8(FP), R1
	MOVD size+16(FP), R2
	MOVW close_handle+24(FP), R3
	BL vdso_zx_vmar_unmap_handle_close_thread_exit(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_futex_wake_handle_close_thread_exit(value_ptr unsafe.Pointer, wake_count uint32, new_value int32, close_handle uint32)
TEXT runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$0-24
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD value_ptr+0(FP), R0
	MOVW wake_count+8(FP), R1
	MOVW new_value+12(FP), R2
	MOVW close_handle+16(FP), R3
	BL vdso_zx_futex_wake_handle_close_thread_exit(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_ticks_get_via_kernel() int64
TEXT runtime·vdsoCall_zx_ticks_get_via_kernel(SB),NOSPLIT,$0-8
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_ticks_get_via_kernel(SB)
	MOVD R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_msi_allocate(handle uint32, count uint32, out_allocation unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_msi_allocate(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW count+4(FP), R1
	MOVD out_allocation+8(FP), R2
	BL vdso_zx_msi_allocate(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_msi_create(handle uint32, options uint32, msi_id uint32, vmo uint32, vmo_offset uint, out_interrupt unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_msi_create(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVW msi_id+8(FP), R2
	MOVW vmo+12(FP), R3
	MOVD vmo_offset+16(FP), R4
	MOVD out_interrupt+24(FP), R5
	BL vdso_zx_msi_create(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_mtrace_control(handle uint32, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) int32
TEXT runtime·vdsoCall_zx_mtrace_control(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW kind+4(FP), R1
	MOVW action+8(FP), R2
	MOVW options+12(FP), R3
	MOVD ptr+16(FP), R4
	MOVD ptr_size+24(FP), R5
	BL vdso_zx_mtrace_control(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_wait_one(handle uint32, signals uint32, deadline int64, observed unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_wait_one(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVW handle+0(FP), R0
	MOVW signals+4(FP), R1
	MOVD deadline+8(FP), R2
	MOVD observed+16(FP), R3
	BL vdso_zx_object_wait_one(SB)
	MOVW R0, ret+24(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_wait_many(items unsafe.Pointer, num_items uint, deadline int64) int32
TEXT runtime·vdsoCall_zx_object_wait_many(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVD items+0(FP), R0
	MOVD num_items+8(FP), R1
	MOVD deadline+16(FP), R2
	BL vdso_zx_object_wait_many(SB)
	MOVW R0, ret+24(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_wait_async(handle uint32, port uint32, key uint64, signals uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_object_wait_async(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW port+4(FP), R1
	MOVD key+8(FP), R2
	MOVW signals+16(FP), R3
	MOVW options+20(FP), R4
	BL vdso_zx_object_wait_async(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_signal(handle uint32, clear_mask uint32, set_mask uint32) int32
TEXT runtime·vdsoCall_zx_object_signal(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW clear_mask+4(FP), R1
	MOVW set_mask+8(FP), R2
	BL vdso_zx_object_signal(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_signal_peer(handle uint32, clear_mask uint32, set_mask uint32) int32
TEXT runtime·vdsoCall_zx_object_signal_peer(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW clear_mask+4(FP), R1
	MOVW set_mask+8(FP), R2
	BL vdso_zx_object_signal_peer(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_get_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
TEXT runtime·vdsoCall_zx_object_get_property(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW property+4(FP), R1
	MOVD value+8(FP), R2
	MOVD value_size+16(FP), R3
	BL vdso_zx_object_get_property(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_set_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
TEXT runtime·vdsoCall_zx_object_set_property(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW property+4(FP), R1
	MOVD value+8(FP), R2
	MOVD value_size+16(FP), R3
	BL vdso_zx_object_set_property(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_get_info(handle uint32, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_get_info(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW topic+4(FP), R1
	MOVD buffer+8(FP), R2
	MOVD buffer_size+16(FP), R3
	MOVD actual+24(FP), R4
	MOVD avail+32(FP), R5
	BL vdso_zx_object_get_info(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_get_child(handle uint32, koid uint64, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_get_child(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD koid+8(FP), R1
	MOVW rights+16(FP), R2
	MOVD out+24(FP), R3
	BL vdso_zx_object_get_child(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_object_set_profile(handle uint32, profile uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_object_set_profile(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW profile+4(FP), R1
	MOVW options+8(FP), R2
	BL vdso_zx_object_set_profile(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pager_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pager_create(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW options+0(FP), R0
	MOVD out+8(FP), R1
	BL vdso_zx_pager_create(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pager_create_vmo(pager uint32, options uint32, port uint32, key uint64, size uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pager_create_vmo(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW pager+0(FP), R0
	MOVW options+4(FP), R1
	MOVW port+8(FP), R2
	MOVD key+16(FP), R3
	MOVD size+24(FP), R4
	MOVD out+32(FP), R5
	BL vdso_zx_pager_create_vmo(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pager_detach_vmo(pager uint32, vmo uint32) int32
TEXT runtime·vdsoCall_zx_pager_detach_vmo(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW pager+0(FP), R0
	MOVW vmo+4(FP), R1
	BL vdso_zx_pager_detach_vmo(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pager_supply_pages(pager uint32, pager_vmo uint32, offset uint64, length uint64, aux_vmo uint32, aux_offset uint64) int32
TEXT runtime·vdsoCall_zx_pager_supply_pages(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW pager+0(FP), R0
	MOVW pager_vmo+4(FP), R1
	MOVD offset+8(FP), R2
	MOVD length+16(FP), R3
	MOVW aux_vmo+24(FP), R4
	MOVD aux_offset+32(FP), R5
	BL vdso_zx_pager_supply_pages(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pager_op_range(pager uint32, op uint32, pager_vmo uint32, offset uint64, length uint64, data uint64) int32
TEXT runtime·vdsoCall_zx_pager_op_range(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW pager+0(FP), R0
	MOVW op+4(FP), R1
	MOVW pager_vmo+8(FP), R2
	MOVD offset+16(FP), R3
	MOVD length+24(FP), R4
	MOVD data+32(FP), R5
	BL vdso_zx_pager_op_range(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pc_firmware_tables(handle uint32, acpi_rsdp unsafe.Pointer, smbios unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pc_firmware_tables(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD acpi_rsdp+8(FP), R1
	MOVD smbios+16(FP), R2
	BL vdso_zx_pc_firmware_tables(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_get_nth_device(handle uint32, index uint32, out_info unsafe.Pointer, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_get_nth_device(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW index+4(FP), R1
	MOVD out_info+8(FP), R2
	MOVD out_handle+16(FP), R3
	BL vdso_zx_pci_get_nth_device(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_enable_bus_master(handle uint32, enable uint32) int32
TEXT runtime·vdsoCall_zx_pci_enable_bus_master(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW enable+4(FP), R1
	BL vdso_zx_pci_enable_bus_master(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_reset_device(handle uint32) int32
TEXT runtime·vdsoCall_zx_pci_reset_device(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	BL vdso_zx_pci_reset_device(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_config_read(handle uint32, offset uint16, width uint, out_val unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_config_read(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD offset+4(FP), R1
	MOVD width+8(FP), R2
	MOVD out_val+16(FP), R3
	BL vdso_zx_pci_config_read(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_config_write(handle uint32, offset uint16, width uint, val uint32) int32
TEXT runtime·vdsoCall_zx_pci_config_write(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD offset+4(FP), R1
	MOVD width+8(FP), R2
	MOVW val+16(FP), R3
	BL vdso_zx_pci_config_write(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_cfg_pio_rw(handle uint32, bus uint8, dev uint8, funk uint8, offset uint8, val unsafe.Pointer, width uint, write uint32) int32
TEXT runtime·vdsoCall_zx_pci_cfg_pio_rw(SB),NOSPLIT,$0-68
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD bus+8(FP), R1
	MOVD dev+16(FP), R2
	MOVD funk+24(FP), R3
	MOVD offset+32(FP), R4
	MOVD val+40(FP), R5
	MOVD width+48(FP), R6
	MOVW write+56(FP), R7
	BL vdso_zx_pci_cfg_pio_rw(SB)
	MOVW R0, ret+64(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_get_bar(handle uint32, bar_num uint32, out_bar unsafe.Pointer, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_get_bar(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW bar_num+4(FP), R1
	MOVD out_bar+8(FP), R2
	MOVD out_handle+16(FP), R3
	BL vdso_zx_pci_get_bar(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_map_interrupt(handle uint32, which_irq int32, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_map_interrupt(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW which_irq+4(FP), R1
	MOVD out_handle+8(FP), R2
	BL vdso_zx_pci_map_interrupt(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_query_irq_mode(handle uint32, mode uint32, out_max_irqs unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_query_irq_mode(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW mode+4(FP), R1
	MOVD out_max_irqs+8(FP), R2
	BL vdso_zx_pci_query_irq_mode(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_set_irq_mode(handle uint32, mode uint32, requested_irq_count uint32) int32
TEXT runtime·vdsoCall_zx_pci_set_irq_mode(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW mode+4(FP), R1
	MOVW requested_irq_count+8(FP), R2
	BL vdso_zx_pci_set_irq_mode(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_init(handle uint32, init_buf unsafe.Pointer, len uint32) int32
TEXT runtime·vdsoCall_zx_pci_init(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD init_buf+8(FP), R1
	MOVW len+16(FP), R2
	BL vdso_zx_pci_init(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pci_add_subtract_io_range(handle uint32, mmio uint32, base uint64, len uint64, add uint32) int32
TEXT runtime·vdsoCall_zx_pci_add_subtract_io_range(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW mmio+4(FP), R1
	MOVD base+8(FP), R2
	MOVD len+16(FP), R3
	MOVW add+24(FP), R4
	BL vdso_zx_pci_add_subtract_io_range(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_pmt_unpin(handle uint32) int32
TEXT runtime·vdsoCall_zx_pmt_unpin(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	BL vdso_zx_pmt_unpin(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_port_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_create(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW options+0(FP), R0
	MOVD out+8(FP), R1
	BL vdso_zx_port_create(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_port_queue(handle uint32, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_queue(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD packet+8(FP), R1
	BL vdso_zx_port_queue(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_port_wait(handle uint32, deadline int64, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_wait(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVW handle+0(FP), R0
	MOVD deadline+8(FP), R1
	MOVD packet+16(FP), R2
	BL vdso_zx_port_wait(SB)
	MOVW R0, ret+24(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_port_cancel(handle uint32, source uint32, key uint64) int32
TEXT runtime·vdsoCall_zx_port_cancel(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW source+4(FP), R1
	MOVD key+8(FP), R2
	BL vdso_zx_port_cancel(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_process_exit(retcode int64)
TEXT runtime·vdsoCall_zx_process_exit(SB),NOSPLIT,$0-8
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD retcode+0(FP), R0
	BL vdso_zx_process_exit(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_process_create(job uint32, name unsafe.Pointer, name_size uint, options uint32, proc_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_create(SB),NOSPLIT,$0-52
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW job+0(FP), R0
	MOVD name+8(FP), R1
	MOVD name_size+16(FP), R2
	MOVW options+24(FP), R3
	MOVD proc_handle+32(FP), R4
	MOVD vmar_handle+40(FP), R5
	BL vdso_zx_process_create(SB)
	MOVW R0, ret+48(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_process_start(handle uint32, thread uint32, entry uintptr, stack uintptr, arg1 uint32, arg2 uintptr) int32
TEXT runtime·vdsoCall_zx_process_start(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW thread+4(FP), R1
	MOVD entry+8(FP), R2
	MOVD stack+16(FP), R3
	MOVW arg1+24(FP), R4
	MOVD arg2+32(FP), R5
	BL vdso_zx_process_start(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_process_read_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_read_memory(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD vaddr+8(FP), R1
	MOVD buffer+16(FP), R2
	MOVD buffer_size+24(FP), R3
	MOVD actual+32(FP), R4
	BL vdso_zx_process_read_memory(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_process_write_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_write_memory(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD vaddr+8(FP), R1
	MOVD buffer+16(FP), R2
	MOVD buffer_size+24(FP), R3
	MOVD actual+32(FP), R4
	BL vdso_zx_process_write_memory(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_profile_create(root_job uint32, options uint32, profile unsafe.Pointer, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_profile_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW root_job+0(FP), R0
	MOVW options+4(FP), R1
	MOVD profile+8(FP), R2
	MOVD out+16(FP), R3
	BL vdso_zx_profile_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_resource_create(parent_rsrc uint32, options uint32, base uint64, size uint, name unsafe.Pointer, name_size uint, resource_out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_resource_create(SB),NOSPLIT,$0-52
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW parent_rsrc+0(FP), R0
	MOVW options+4(FP), R1
	MOVD base+8(FP), R2
	MOVD size+16(FP), R3
	MOVD name+24(FP), R4
	MOVD name_size+32(FP), R5
	MOVD resource_out+40(FP), R6
	BL vdso_zx_resource_create(SB)
	MOVW R0, ret+48(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_smc_call(handle uint32, parameters unsafe.Pointer, out_smc_result unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_smc_call(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD parameters+8(FP), R1
	MOVD out_smc_result+16(FP), R2
	BL vdso_zx_smc_call(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_socket_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW options+0(FP), R0
	MOVD out0+8(FP), R1
	MOVD out1+16(FP), R2
	BL vdso_zx_socket_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_socket_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_write(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD buffer+8(FP), R2
	MOVD buffer_size+16(FP), R3
	MOVD actual+24(FP), R4
	BL vdso_zx_socket_write(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_socket_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_read(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD buffer+8(FP), R2
	MOVD buffer_size+16(FP), R3
	MOVD actual+24(FP), R4
	BL vdso_zx_socket_read(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_socket_shutdown(handle uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_socket_shutdown(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	BL vdso_zx_socket_shutdown(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_stream_create(options uint32, vmo uint32, seek uint64, out_stream unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW options+0(FP), R0
	MOVW vmo+4(FP), R1
	MOVD seek+8(FP), R2
	MOVD out_stream+16(FP), R3
	BL vdso_zx_stream_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_stream_writev(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_writev(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD vector+8(FP), R2
	MOVD num_vector+16(FP), R3
	MOVD actual+24(FP), R4
	BL vdso_zx_stream_writev(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_stream_writev_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_writev_at(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD offset+8(FP), R2
	MOVD vector+16(FP), R3
	MOVD num_vector+24(FP), R4
	MOVD actual+32(FP), R5
	BL vdso_zx_stream_writev_at(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_stream_readv(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_readv(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD vector+8(FP), R2
	MOVD num_vector+16(FP), R3
	MOVD actual+24(FP), R4
	BL vdso_zx_stream_readv(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_stream_readv_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_readv_at(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD offset+8(FP), R2
	MOVD vector+16(FP), R3
	MOVD num_vector+24(FP), R4
	MOVD actual+32(FP), R5
	BL vdso_zx_stream_readv_at(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_stream_seek(handle uint32, whence uint32, offset int64, out_seek unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_seek(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW whence+4(FP), R1
	MOVD offset+8(FP), R2
	MOVD out_seek+16(FP), R3
	BL vdso_zx_stream_seek(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_0() int32
TEXT runtime·vdsoCall_zx_syscall_test_0(SB),NOSPLIT,$0-4
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_syscall_test_0(SB)
	MOVW R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_1(a int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_1(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW a+0(FP), R0
	BL vdso_zx_syscall_test_1(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_2(a int32, b int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_2(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW a+0(FP), R0
	MOVW b+4(FP), R1
	BL vdso_zx_syscall_test_2(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_3(a int32, b int32, c int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_3(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW a+0(FP), R0
	MOVW b+4(FP), R1
	MOVW c+8(FP), R2
	BL vdso_zx_syscall_test_3(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_4(a int32, b int32, c int32, d int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_4(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW a+0(FP), R0
	MOVW b+4(FP), R1
	MOVW c+8(FP), R2
	MOVW d+12(FP), R3
	BL vdso_zx_syscall_test_4(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_5(a int32, b int32, c int32, d int32, e int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_5(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW a+0(FP), R0
	MOVW b+4(FP), R1
	MOVW c+8(FP), R2
	MOVW d+12(FP), R3
	MOVW e+16(FP), R4
	BL vdso_zx_syscall_test_5(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_6(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW a+0(FP), R0
	MOVW b+4(FP), R1
	MOVW c+8(FP), R2
	MOVW d+12(FP), R3
	MOVW e+16(FP), R4
	MOVW f+20(FP), R5
	BL vdso_zx_syscall_test_6(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_7(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW a+0(FP), R0
	MOVW b+4(FP), R1
	MOVW c+8(FP), R2
	MOVW d+12(FP), R3
	MOVW e+16(FP), R4
	MOVW f+20(FP), R5
	MOVW g_+24(FP), R6
	BL vdso_zx_syscall_test_7(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_8(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW a+0(FP), R0
	MOVW b+4(FP), R1
	MOVW c+8(FP), R2
	MOVW d+12(FP), R3
	MOVW e+16(FP), R4
	MOVW f+20(FP), R5
	MOVW g_+24(FP), R6
	MOVW h+28(FP), R7
	BL vdso_zx_syscall_test_8(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_wrapper(a int32, b int32, c int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_wrapper(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW a+0(FP), R0
	MOVW b+4(FP), R1
	MOVW c+8(FP), R2
	BL vdso_zx_syscall_test_wrapper(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_syscall_test_handle_create(return_value int32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_syscall_test_handle_create(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW return_value+0(FP), R0
	MOVD out+8(FP), R1
	BL vdso_zx_syscall_test_handle_create(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_system_get_dcache_line_size() uint32
TEXT runtime·vdsoCall_zx_system_get_dcache_line_size(SB),NOSPLIT,$0-4
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_system_get_dcache_line_size(SB)
	MOVW R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_system_get_num_cpus() uint32
TEXT runtime·vdsoCall_zx_system_get_num_cpus(SB),NOSPLIT,$0-4
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_system_get_num_cpus(SB)
	MOVW R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_system_get_version_string() unsafe.Pointer
TEXT runtime·vdsoCall_zx_system_get_version_string(SB),NOSPLIT,$0-8
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_system_get_version_string(SB)
	MOVD R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_system_get_physmem() uint64
TEXT runtime·vdsoCall_zx_system_get_physmem(SB),NOSPLIT,$0-8
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_system_get_physmem(SB)
	MOVD R0, ret+0(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_system_get_features(kind uint32, features unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_get_features(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW kind+0(FP), R0
	MOVD features+8(FP), R1
	BL vdso_zx_system_get_features(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_system_get_event(root_job uint32, kind uint32, event unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_get_event(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW root_job+0(FP), R0
	MOVW kind+4(FP), R1
	MOVD event+8(FP), R2
	BL vdso_zx_system_get_event(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_system_mexec(resource uint32, kernel_vmo uint32, bootimage_vmo uint32) int32
TEXT runtime·vdsoCall_zx_system_mexec(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVW kernel_vmo+4(FP), R1
	MOVW bootimage_vmo+8(FP), R2
	BL vdso_zx_system_mexec(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_system_mexec_payload_get(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_system_mexec_payload_get(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVD buffer+8(FP), R1
	MOVD buffer_size+16(FP), R2
	BL vdso_zx_system_mexec_payload_get(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_system_powerctl(resource uint32, cmd uint32, arg unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_powerctl(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVW cmd+4(FP), R1
	MOVD arg+8(FP), R2
	BL vdso_zx_system_powerctl(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_task_suspend(handle uint32, token unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_suspend(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD token+8(FP), R1
	BL vdso_zx_task_suspend(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_task_suspend_token(handle uint32, token unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_suspend_token(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD token+8(FP), R1
	BL vdso_zx_task_suspend_token(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_task_create_exception_channel(handle uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_create_exception_channel(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD out+8(FP), R2
	BL vdso_zx_task_create_exception_channel(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_task_kill(handle uint32) int32
TEXT runtime·vdsoCall_zx_task_kill(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	BL vdso_zx_task_kill(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_thread_exit()
TEXT runtime·vdsoCall_zx_thread_exit(SB),NOSPLIT,$0-0
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	BL vdso_zx_thread_exit(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_thread_create(process uint32, name unsafe.Pointer, name_size uint, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_thread_create(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW process+0(FP), R0
	MOVD name+8(FP), R1
	MOVD name_size+16(FP), R2
	MOVW options+24(FP), R3
	MOVD out+32(FP), R4
	BL vdso_zx_thread_create(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_thread_start(handle uint32, thread_entry uintptr, stack uintptr, arg1 uintptr, arg2 uintptr) int32
TEXT runtime·vdsoCall_zx_thread_start(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD thread_entry+8(FP), R1
	MOVD stack+16(FP), R2
	MOVD arg1+24(FP), R3
	MOVD arg2+32(FP), R4
	BL vdso_zx_thread_start(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_thread_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_thread_read_state(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW kind+4(FP), R1
	MOVD buffer+8(FP), R2
	MOVD buffer_size+16(FP), R3
	BL vdso_zx_thread_read_state(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_thread_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_thread_write_state(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW kind+4(FP), R1
	MOVD buffer+8(FP), R2
	MOVD buffer_size+16(FP), R3
	BL vdso_zx_thread_write_state(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_timer_create(options uint32, clock_id uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_timer_create(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW options+0(FP), R0
	MOVW clock_id+4(FP), R1
	MOVD out+8(FP), R2
	BL vdso_zx_timer_create(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_timer_set(handle uint32, deadline int64, slack int64) int32
TEXT runtime·vdsoCall_zx_timer_set(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD deadline+8(FP), R1
	MOVD slack+16(FP), R2
	BL vdso_zx_timer_set(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_timer_cancel(handle uint32) int32
TEXT runtime·vdsoCall_zx_timer_cancel(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	BL vdso_zx_timer_cancel(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vcpu_create(guest uint32, options uint32, entry uintptr, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vcpu_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW guest+0(FP), R0
	MOVW options+4(FP), R1
	MOVD entry+8(FP), R2
	MOVD out+16(FP), R3
	BL vdso_zx_vcpu_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vcpu_resume(handle uint32, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vcpu_resume(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVW handle+0(FP), R0
	MOVD packet+8(FP), R1
	BL vdso_zx_vcpu_resume(SB)
	MOVW R0, ret+16(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vcpu_interrupt(handle uint32, vector uint32) int32
TEXT runtime·vdsoCall_zx_vcpu_interrupt(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW vector+4(FP), R1
	BL vdso_zx_vcpu_interrupt(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vcpu_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vcpu_read_state(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW kind+4(FP), R1
	MOVD buffer+8(FP), R2
	MOVD buffer_size+16(FP), R3
	BL vdso_zx_vcpu_read_state(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vcpu_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vcpu_write_state(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW kind+4(FP), R1
	MOVD buffer+8(FP), R2
	MOVD buffer_size+16(FP), R3
	BL vdso_zx_vcpu_write_state(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmar_allocate(parent_vmar uint32, options uint32, offset uint, size uint, child_vmar unsafe.Pointer, child_addr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmar_allocate(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW parent_vmar+0(FP), R0
	MOVW options+4(FP), R1
	MOVD offset+8(FP), R2
	MOVD size+16(FP), R3
	MOVD child_vmar+24(FP), R4
	MOVD child_addr+32(FP), R5
	BL vdso_zx_vmar_allocate(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmar_destroy(handle uint32) int32
TEXT runtime·vdsoCall_zx_vmar_destroy(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	BL vdso_zx_vmar_destroy(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmar_map(handle uint32, options uint32, vmar_offset uint, vmo uint32, vmo_offset uint64, len uint, mapped_addr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmar_map(SB),NOSPLIT,$0-52
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD vmar_offset+8(FP), R2
	MOVW vmo+16(FP), R3
	MOVD vmo_offset+24(FP), R4
	MOVD len+32(FP), R5
	MOVD mapped_addr+40(FP), R6
	BL vdso_zx_vmar_map(SB)
	MOVW R0, ret+48(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmar_unmap(handle uint32, addr uintptr, len uint) int32
TEXT runtime·vdsoCall_zx_vmar_unmap(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD addr+8(FP), R1
	MOVD len+16(FP), R2
	BL vdso_zx_vmar_unmap(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmar_protect(handle uint32, options uint32, addr uintptr, len uint) int32
TEXT runtime·vdsoCall_zx_vmar_protect(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD addr+8(FP), R2
	MOVD len+16(FP), R3
	BL vdso_zx_vmar_protect(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmar_op_range(handle uint32, op uint32, address uintptr, size uint, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmar_op_range(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW op+4(FP), R1
	MOVD address+8(FP), R2
	MOVD size+16(FP), R3
	MOVD buffer+24(FP), R4
	MOVD buffer_size+32(FP), R5
	BL vdso_zx_vmar_op_range(SB)
	MOVW R0, ret+40(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_create(size uint64, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create(SB),NOSPLIT,$0-28
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVD size+0(FP), R0
	MOVW options+8(FP), R1
	MOVD out+16(FP), R2
	BL vdso_zx_vmo_create(SB)
	MOVW R0, ret+24(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_read(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_read(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVW handle+0(FP), R0
	MOVD buffer+8(FP), R1
	MOVD offset+16(FP), R2
	MOVD buffer_size+24(FP), R3
	BL vdso_zx_vmo_read(SB)
	MOVW R0, ret+32(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_write(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_write(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVW handle+0(FP), R0
	MOVD buffer+8(FP), R1
	MOVD offset+16(FP), R2
	MOVD buffer_size+24(FP), R3
	BL vdso_zx_vmo_write(SB)
	MOVW R0, ret+32(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_get_size(handle uint32, size unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_get_size(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD size+8(FP), R1
	BL vdso_zx_vmo_get_size(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_set_size(handle uint32, size uint64) int32
TEXT runtime·vdsoCall_zx_vmo_set_size(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVD size+8(FP), R1
	BL vdso_zx_vmo_set_size(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_op_range(handle uint32, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_op_range(SB),NOSPLIT,$0-44
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	CALL runtime·entersyscall(SB)
	MOVW handle+0(FP), R0
	MOVW op+4(FP), R1
	MOVD offset+8(FP), R2
	MOVD size+16(FP), R3
	MOVD buffer+24(FP), R4
	MOVD buffer_size+32(FP), R5
	BL vdso_zx_vmo_op_range(SB)
	MOVW R0, ret+40(FP)
	BL runtime·exitsyscall(SB)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_create_child(handle uint32, options uint32, offset uint64, size uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_child(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW options+4(FP), R1
	MOVD offset+8(FP), R2
	MOVD size+16(FP), R3
	MOVD out+24(FP), R4
	BL vdso_zx_vmo_create_child(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_set_cache_policy(handle uint32, cache_policy uint32) int32
TEXT runtime·vdsoCall_zx_vmo_set_cache_policy(SB),NOSPLIT,$0-12
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW cache_policy+4(FP), R1
	BL vdso_zx_vmo_set_cache_policy(SB)
	MOVW R0, ret+8(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_replace_as_executable(handle uint32, vmex uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_replace_as_executable(SB),NOSPLIT,$0-20
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW handle+0(FP), R0
	MOVW vmex+4(FP), R1
	MOVD out+8(FP), R2
	BL vdso_zx_vmo_replace_as_executable(SB)
	MOVW R0, ret+16(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_create_contiguous(bti uint32, size uint, alignment_log2 uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_contiguous(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW bti+0(FP), R0
	MOVD size+8(FP), R1
	MOVW alignment_log2+16(FP), R2
	MOVD out+24(FP), R3
	BL vdso_zx_vmo_create_contiguous(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

// func vdsoCall_zx_vmo_create_physical(resource uint32, paddr uintptr, size uint, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_physical(SB),NOSPLIT,$0-36
	GO_ARGS
	NO_LOCAL_POINTERS
	MOVD g_m(g), R21
	MOVD LR, m_vdsoPC(R21)
	MOVD RSP, R20
	MOVD R20, m_vdsoSP(R21)
	MOVW resource+0(FP), R0
	MOVD paddr+8(FP), R1
	MOVD size+16(FP), R2
	MOVD out+24(FP), R3
	BL vdso_zx_vmo_create_physical(SB)
	MOVW R0, ret+32(FP)
	MOVD g_m(g), R21
	MOVD $0, m_vdsoSP(R21)
	RET

----- go-vdso-arm64-calls.s END -----


----- go-vdso-keys.go START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

package runtime

import "unsafe"

const (
	// vdsoArrayMax is the byte-size of a maximally sized array on this architecture.
	// See cmd/compile/internal/amd64/galign.go arch.MAXWIDTH initialization.
	vdsoArrayMax = 1<<50 - 1
)

var vdsoSymbolKeys = []vdsoSymbolKey{
	{"_zx_bti_create", 0x7833987, &vdso_zx_bti_create},
	{"_zx_bti_pin", 0x2aa0e6da, &vdso_zx_bti_pin},
	{"_zx_bti_release_quarantine", 0x441c1c6b, &vdso_zx_bti_release_quarantine},
	{"_zx_cache_flush", 0x319eccca, &vdso_zx_cache_flush},
	{"_zx_channel_create", 0xe5199281, &vdso_zx_channel_create},
	{"_zx_channel_read", 0xe7169b09, &vdso_zx_channel_read},
	{"_zx_channel_read_etc", 0x77c4cc84, &vdso_zx_channel_read_etc},
	{"_zx_channel_write", 0xca4bbc18, &vdso_zx_channel_write},
	{"_zx_channel_write_etc", 0x43b1dd13, &vdso_zx_channel_write_etc},
	{"_zx_channel_call_noretry", 0xb5ad0b5b, &vdso_zx_channel_call_noretry},
	{"_zx_channel_call_finish", 0x85ce3de9, &vdso_zx_channel_call_finish},
	{"_zx_channel_call", 0xe70e51c9, &vdso_zx_channel_call},
	{"_zx_channel_call_etc_noretry", 0xc3a3e7d6, &vdso_zx_channel_call_etc_noretry},
	{"_zx_channel_call_etc_finish", 0xd3cdf704, &vdso_zx_channel_call_etc_finish},
	{"_zx_channel_call_etc", 0x8639e344, &vdso_zx_channel_call_etc},
	{"_zx_clock_get", 0x3fb5d7c0, &vdso_zx_clock_get},
	{"_zx_clock_get_monotonic", 0xb00e6115, &vdso_zx_clock_get_monotonic},
	{"_zx_clock_adjust", 0x87cf38ab, &vdso_zx_clock_adjust},
	{"_zx_clock_get_monotonic_via_kernel", 0x3dc12b54, &vdso_zx_clock_get_monotonic_via_kernel},
	{"_zx_clock_create", 0x8d73ce14, &vdso_zx_clock_create},
	{"_zx_clock_read", 0x3676d5dc, &vdso_zx_clock_read},
	{"_zx_clock_get_details", 0xb7227265, &vdso_zx_clock_get_details},
	{"_zx_clock_update", 0xb74bec03, &vdso_zx_clock_update},
	{"_zx_cprng_draw_once", 0x40248ce0, &vdso_zx_cprng_draw_once},
	{"_zx_cprng_draw", 0x12929c5c, &vdso_zx_cprng_draw},
	{"_zx_cprng_add_entropy", 0x1617dd47, &vdso_zx_cprng_add_entropy},
	{"_zx_debug_read", 0x6c062397, &vdso_zx_debug_read},
	{"_zx_debug_write", 0xed2c5666, &vdso_zx_debug_write},
	{"_zx_debug_send_command", 0xac6e8203, &vdso_zx_debug_send_command},
	{"_zx_debuglog_create", 0x2504f1, &vdso_zx_debuglog_create},
	{"_zx_debuglog_write", 0x3f7aa088, &vdso_zx_debuglog_write},
	{"_zx_debuglog_read", 0x66c2b179, &vdso_zx_debuglog_read},
	{"_zx_event_create", 0x4c39490a, &vdso_zx_event_create},
	{"_zx_eventpair_create", 0xe3fd9c16, &vdso_zx_eventpair_create},
	{"_zx_exception_get_thread", 0xb1c70bba, &vdso_zx_exception_get_thread},
	{"_zx_exception_get_process", 0xcddbd761, &vdso_zx_exception_get_process},
	{"_zx_fifo_create", 0xf197cb2c, &vdso_zx_fifo_create},
	{"_zx_fifo_read", 0x3ec8acf4, &vdso_zx_fifo_read},
	{"_zx_fifo_write", 0x18400b63, &vdso_zx_fifo_write},
	{"_zx_framebuffer_get_info", 0xe6c88924, &vdso_zx_framebuffer_get_info},
	{"_zx_framebuffer_set_range", 0x364ad6b1, &vdso_zx_framebuffer_set_range},
	{"_zx_futex_wait", 0xb089e255, &vdso_zx_futex_wait},
	{"_zx_futex_wake", 0xb089e288, &vdso_zx_futex_wake},
	{"_zx_futex_requeue", 0xd509be7c, &vdso_zx_futex_requeue},
	{"_zx_futex_wake_single_owner", 0x63970173, &vdso_zx_futex_wake_single_owner},
	{"_zx_futex_requeue_single_owner", 0x8f9a9e7, &vdso_zx_futex_requeue_single_owner},
	{"_zx_futex_get_owner", 0xf16dec6a, &vdso_zx_futex_get_owner},
	{"_zx_guest_create", 0x6f318390, &vdso_zx_guest_create},
	{"_zx_guest_set_trap", 0xffe2547e, &vdso_zx_guest_set_trap},
	{"_zx_handle_close", 0xe769f876, &vdso_zx_handle_close},
	{"_zx_handle_close_many", 0x8a9a3aaa, &vdso_zx_handle_close_many},
	{"_zx_handle_duplicate", 0x3f0a83b, &vdso_zx_handle_duplicate},
	{"_zx_handle_replace", 0xdc2d9edc, &vdso_zx_handle_replace},
	{"_zx_interrupt_create", 0xaa939795, &vdso_zx_interrupt_create},
	{"_zx_interrupt_bind", 0xa25b97be, &vdso_zx_interrupt_bind},
	{"_zx_interrupt_wait", 0xa266f916, &vdso_zx_interrupt_wait},
	{"_zx_interrupt_destroy", 0x2cb5724b, &vdso_zx_interrupt_destroy},
	{"_zx_interrupt_ack", 0x3b390f10, &vdso_zx_interrupt_ack},
	{"_zx_interrupt_trigger", 0x19f00875, &vdso_zx_interrupt_trigger},
	{"_zx_interrupt_bind_vcpu", 0x505f9f1b, &vdso_zx_interrupt_bind_vcpu},
	{"_zx_iommu_create", 0x297b6af, &vdso_zx_iommu_create},
	{"_zx_ioports_request", 0xb8f1c0ad, &vdso_zx_ioports_request},
	{"_zx_ioports_release", 0xb88e6f05, &vdso_zx_ioports_release},
	{"_zx_job_create", 0x6b9cbb63, &vdso_zx_job_create},
	{"_zx_job_set_policy", 0xa45d60ea, &vdso_zx_job_set_policy},
	{"_zx_job_set_critical", 0x129ab785, &vdso_zx_job_set_critical},
	{"_zx_ktrace_read", 0x7a59dbca, &vdso_zx_ktrace_read},
	{"_zx_ktrace_control", 0x15debecf, &vdso_zx_ktrace_control},
	{"_zx_ktrace_write", 0xc5f714f9, &vdso_zx_ktrace_write},
	{"_zx_nanosleep", 0xe9d6145a, &vdso_zx_nanosleep},
	{"_zx_ticks_get", 0xaeb30a32, &vdso_zx_ticks_get},
	{"_zx_ticks_per_second", 0x6ed47574, &vdso_zx_ticks_per_second},
	{"_zx_deadline_after", 0x6253eb5c, &vdso_zx_deadline_after},
	{"_zx_vmar_unmap_handle_close_thread_exit", 0x5a372afb, &vdso_zx_vmar_unmap_handle_close_thread_exit},
	{"_zx_futex_wake_handle_close_thread_exit", 0x49731cb8, &vdso_zx_futex_wake_handle_close_thread_exit},
	{"_zx_ticks_get_via_kernel", 0x821bc851, &vdso_zx_ticks_get_via_kernel},
	{"_zx_msi_allocate", 0xf5370e42, &vdso_zx_msi_allocate},
	{"_zx_msi_create", 0xbf7b04f1, &vdso_zx_msi_create},
	{"_zx_mtrace_control", 0x8c5f3211, &vdso_zx_mtrace_control},
	{"_zx_object_wait_one", 0xed850621, &vdso_zx_object_wait_one},
	{"_zx_object_wait_many", 0x9e247bd4, &vdso_zx_object_wait_many},
	{"_zx_object_wait_async", 0x61e4dcdd, &vdso_zx_object_wait_async},
	{"_zx_object_signal", 0x460ab89, &vdso_zx_object_signal},
	{"_zx_object_signal_peer", 0xe90c8694, &vdso_zx_object_signal_peer},
	{"_zx_object_get_property", 0xd60c8aef, &vdso_zx_object_get_property},
	{"_zx_object_set_property", 0x2174eb7b, &vdso_zx_object_set_property},
	{"_zx_object_get_info", 0x7582ddf6, &vdso_zx_object_get_info},
	{"_zx_object_get_child", 0x256ecc2e, &vdso_zx_object_get_child},
	{"_zx_object_set_profile", 0x7d1d2727, &vdso_zx_object_set_profile},
	{"_zx_pager_create", 0x8d44ed57, &vdso_zx_pager_create},
	{"_zx_pager_create_vmo", 0x564fdd48, &vdso_zx_pager_create_vmo},
	{"_zx_pager_detach_vmo", 0x2072c15d, &vdso_zx_pager_detach_vmo},
	{"_zx_pager_supply_pages", 0x69d1fc7f, &vdso_zx_pager_supply_pages},
	{"_zx_pager_op_range", 0x5e8195ae, &vdso_zx_pager_op_range},
	{"_zx_pc_firmware_tables", 0x1a05d1fe, &vdso_zx_pc_firmware_tables},
	{"_zx_pci_get_nth_device", 0x32106f08, &vdso_zx_pci_get_nth_device},
	{"_zx_pci_enable_bus_master", 0x76091cab, &vdso_zx_pci_enable_bus_master},
	{"_zx_pci_reset_device", 0xc6496142, &vdso_zx_pci_reset_device},
	{"_zx_pci_config_read", 0xc765eb61, &vdso_zx_pci_config_read},
	{"_zx_pci_config_write", 0xb4851770, &vdso_zx_pci_config_write},
	{"_zx_pci_cfg_pio_rw", 0xda224f4f, &vdso_zx_pci_cfg_pio_rw},
	{"_zx_pci_get_bar", 0x14ec9dc4, &vdso_zx_pci_get_bar},
	{"_zx_pci_map_interrupt", 0x3c5aa3fa, &vdso_zx_pci_map_interrupt},
	{"_zx_pci_query_irq_mode", 0xdf173875, &vdso_zx_pci_query_irq_mode},
	{"_zx_pci_set_irq_mode", 0xedfcadcb, &vdso_zx_pci_set_irq_mode},
	{"_zx_pci_init", 0x4db59c04, &vdso_zx_pci_init},
	{"_zx_pci_add_subtract_io_range", 0x5fcd4b03, &vdso_zx_pci_add_subtract_io_range},
	{"_zx_pmt_unpin", 0x8e954c6f, &vdso_zx_pmt_unpin},
	{"_zx_port_create", 0x5294baed, &vdso_zx_port_create},
	{"_zx_port_queue", 0x8f22883e, &vdso_zx_port_queue},
	{"_zx_port_wait", 0xfc97666e, &vdso_zx_port_wait},
	{"_zx_port_cancel", 0x5166105f, &vdso_zx_port_cancel},
	{"_zx_process_exit", 0xc7f8a64d, &vdso_zx_process_exit},
	{"_zx_process_create", 0xa3a21647, &vdso_zx_process_create},
	{"_zx_process_start", 0xc80873a1, &vdso_zx_process_start},
	{"_zx_process_read_memory", 0x883ab627, &vdso_zx_process_read_memory},
	{"_zx_process_write_memory", 0x18162116, &vdso_zx_process_write_memory},
	{"_zx_profile_create", 0x28e1bf39, &vdso_zx_profile_create},
	{"_zx_resource_create", 0x22a0d150, &vdso_zx_resource_create},
	{"_zx_smc_call", 0x63f0533, &vdso_zx_smc_call},
	{"_zx_socket_create", 0xf536e851, &vdso_zx_socket_create},
	{"_zx_socket_write", 0x5e2d97e8, &vdso_zx_socket_write},
	{"_zx_socket_read", 0xb5443cd9, &vdso_zx_socket_read},
	{"_zx_socket_shutdown", 0x78afef9, &vdso_zx_socket_shutdown},
	{"_zx_stream_create", 0x5a685d14, &vdso_zx_stream_create},
	{"_zx_stream_writev", 0x89120a21, &vdso_zx_stream_writev},
	{"_zx_stream_writev_at", 0xcd618395, &vdso_zx_stream_writev_at},
	{"_zx_stream_readv", 0xae7040d2, &vdso_zx_stream_readv},
	{"_zx_stream_readv_at", 0x7bfd08a6, &vdso_zx_stream_readv_at},
	{"_zx_stream_seek", 0xcefc31c8, &vdso_zx_stream_seek},
	{"_zx_syscall_test_0", 0xb62fbcde, &vdso_zx_syscall_test_0},
	{"_zx_syscall_test_1", 0xb62fbcdf, &vdso_zx_syscall_test_1},
	{"_zx_syscall_test_2", 0xb62fbce0, &vdso_zx_syscall_test_2},
	{"_zx_syscall_test_3", 0xb62fbce1, &vdso_zx_syscall_test_3},
	{"_zx_syscall_test_4", 0xb62fbce2, &vdso_zx_syscall_test_4},
	{"_zx_syscall_test_5", 0xb62fbce3, &vdso_zx_syscall_test_5},
	{"_zx_syscall_test_6", 0xb62fbce4, &vdso_zx_syscall_test_6},
	{"_zx_syscall_test_7", 0xb62fbce5, &vdso_zx_syscall_test_7},
	{"_zx_syscall_test_8", 0xb62fbce6, &vdso_zx_syscall_test_8},
	{"_zx_syscall_test_wrapper", 0x4d7af9cf, &vdso_zx_syscall_test_wrapper},
	{"_zx_syscall_test_handle_create", 0xb996e56d, &vdso_zx_syscall_test_handle_create},
	{"_zx_system_get_dcache_line_size", 0x2d6d6511, &vdso_zx_system_get_dcache_line_size},
	{"_zx_system_get_num_cpus", 0x8e92a0c2, &vdso_zx_system_get_num_cpus},
	{"_zx_system_get_version_string", 0xf2daeaf4, &vdso_zx_system_get_version_string},
	{"_zx_system_get_physmem", 0x5a0e027b, &vdso_zx_system_get_physmem},
	{"_zx_system_get_features", 0x42682df7, &vdso_zx_system_get_features},
	{"_zx_system_get_event", 0x7a0b68da, &vdso_zx_system_get_event},
	{"_zx_system_mexec", 0xd142362b, &vdso_zx_system_mexec},
	{"_zx_system_mexec_payload_get", 0x34bd22b3, &vdso_zx_system_mexec_payload_get},
	{"_zx_system_powerctl", 0x43f6ae09, &vdso_zx_system_powerctl},
	{"_zx_task_suspend", 0xe13ad509, &vdso_zx_task_suspend},
	{"_zx_task_suspend_token", 0x341e98a9, &vdso_zx_task_suspend_token},
	{"_zx_task_create_exception_channel", 0x5318f181, &vdso_zx_task_create_exception_channel},
	{"_zx_task_kill", 0x1ae4e313, &vdso_zx_task_kill},
	{"_zx_thread_exit", 0xed44fe6, &vdso_zx_thread_exit},
	{"_zx_thread_create", 0x100e8a20, &vdso_zx_thread_create},
	{"_zx_thread_start", 0xea59505a, &vdso_zx_thread_start},
	{"_zx_thread_read_state", 0x82fd0a88, &vdso_zx_thread_read_state},
	{"_zx_thread_write_state", 0xb9265eb7, &vdso_zx_thread_write_state},
	{"_zx_timer_create", 0x943773a9, &vdso_zx_timer_create},
	{"_zx_timer_set", 0xa2689081, &vdso_zx_timer_set},
	{"_zx_timer_cancel", 0x9308c91b, &vdso_zx_timer_cancel},
	{"_zx_vcpu_create", 0x458b1fc6, &vdso_zx_vcpu_create},
	{"_zx_vcpu_resume", 0x67a54423, &vdso_zx_vcpu_resume},
	{"_zx_vcpu_interrupt", 0x4ddc6df, &vdso_zx_vcpu_interrupt},
	{"_zx_vcpu_read_state", 0xaa78032e, &vdso_zx_vcpu_read_state},
	{"_zx_vcpu_write_state", 0xd0006c1d, &vdso_zx_vcpu_write_state},
	{"_zx_vmar_allocate", 0x4cac85ef, &vdso_zx_vmar_allocate},
	{"_zx_vmar_destroy", 0xc2294134, &vdso_zx_vmar_destroy},
	{"_zx_vmar_map", 0xc7b00448, &vdso_zx_vmar_map},
	{"_zx_vmar_unmap", 0x745a1b6b, &vdso_zx_vmar_unmap},
	{"_zx_vmar_protect", 0x7bee8f8b, &vdso_zx_vmar_protect},
	{"_zx_vmar_op_range", 0x4e117375, &vdso_zx_vmar_op_range},
	{"_zx_vmo_create", 0xb27a765a, &vdso_zx_vmo_create},
	{"_zx_vmo_read", 0xe70ab4a2, &vdso_zx_vmo_read},
	{"_zx_vmo_write", 0xc8c308d1, &vdso_zx_vmo_write},
	{"_zx_vmo_get_size", 0x261c77c0, &vdso_zx_vmo_get_size},
	{"_zx_vmo_set_size", 0x3932724c, &vdso_zx_vmo_set_size},
	{"_zx_vmo_op_range", 0xa73d6b71, &vdso_zx_vmo_op_range},
	{"_zx_vmo_create_child", 0x72c8b3dd, &vdso_zx_vmo_create_child},
	{"_zx_vmo_set_cache_policy", 0xe509bad4, &vdso_zx_vmo_set_cache_policy},
	{"_zx_vmo_replace_as_executable", 0xbd38e576, &vdso_zx_vmo_replace_as_executable},
	{"_zx_vmo_create_contiguous", 0x466a8289, &vdso_zx_vmo_create_contiguous},
	{"_zx_vmo_create_physical", 0x659677b6, &vdso_zx_vmo_create_physical},
}

//go:cgo_import_dynamic vdso_zx_bti_create zx_bti_create
//go:cgo_import_dynamic vdso_zx_bti_pin zx_bti_pin
//go:cgo_import_dynamic vdso_zx_bti_release_quarantine zx_bti_release_quarantine
//go:cgo_import_dynamic vdso_zx_cache_flush zx_cache_flush
//go:cgo_import_dynamic vdso_zx_channel_create zx_channel_create
//go:cgo_import_dynamic vdso_zx_channel_read zx_channel_read
//go:cgo_import_dynamic vdso_zx_channel_read_etc zx_channel_read_etc
//go:cgo_import_dynamic vdso_zx_channel_write zx_channel_write
//go:cgo_import_dynamic vdso_zx_channel_write_etc zx_channel_write_etc
//go:cgo_import_dynamic vdso_zx_channel_call_noretry zx_channel_call_noretry
//go:cgo_import_dynamic vdso_zx_channel_call_finish zx_channel_call_finish
//go:cgo_import_dynamic vdso_zx_channel_call zx_channel_call
//go:cgo_import_dynamic vdso_zx_channel_call_etc_noretry zx_channel_call_etc_noretry
//go:cgo_import_dynamic vdso_zx_channel_call_etc_finish zx_channel_call_etc_finish
//go:cgo_import_dynamic vdso_zx_channel_call_etc zx_channel_call_etc
//go:cgo_import_dynamic vdso_zx_clock_get zx_clock_get
//go:cgo_import_dynamic vdso_zx_clock_get_monotonic zx_clock_get_monotonic
//go:cgo_import_dynamic vdso_zx_clock_adjust zx_clock_adjust
//go:cgo_import_dynamic vdso_zx_clock_get_monotonic_via_kernel zx_clock_get_monotonic_via_kernel
//go:cgo_import_dynamic vdso_zx_clock_create zx_clock_create
//go:cgo_import_dynamic vdso_zx_clock_read zx_clock_read
//go:cgo_import_dynamic vdso_zx_clock_get_details zx_clock_get_details
//go:cgo_import_dynamic vdso_zx_clock_update zx_clock_update
//go:cgo_import_dynamic vdso_zx_cprng_draw_once zx_cprng_draw_once
//go:cgo_import_dynamic vdso_zx_cprng_draw zx_cprng_draw
//go:cgo_import_dynamic vdso_zx_cprng_add_entropy zx_cprng_add_entropy
//go:cgo_import_dynamic vdso_zx_debug_read zx_debug_read
//go:cgo_import_dynamic vdso_zx_debug_write zx_debug_write
//go:cgo_import_dynamic vdso_zx_debug_send_command zx_debug_send_command
//go:cgo_import_dynamic vdso_zx_debuglog_create zx_debuglog_create
//go:cgo_import_dynamic vdso_zx_debuglog_write zx_debuglog_write
//go:cgo_import_dynamic vdso_zx_debuglog_read zx_debuglog_read
//go:cgo_import_dynamic vdso_zx_event_create zx_event_create
//go:cgo_import_dynamic vdso_zx_eventpair_create zx_eventpair_create
//go:cgo_import_dynamic vdso_zx_exception_get_thread zx_exception_get_thread
//go:cgo_import_dynamic vdso_zx_exception_get_process zx_exception_get_process
//go:cgo_import_dynamic vdso_zx_fifo_create zx_fifo_create
//go:cgo_import_dynamic vdso_zx_fifo_read zx_fifo_read
//go:cgo_import_dynamic vdso_zx_fifo_write zx_fifo_write
//go:cgo_import_dynamic vdso_zx_framebuffer_get_info zx_framebuffer_get_info
//go:cgo_import_dynamic vdso_zx_framebuffer_set_range zx_framebuffer_set_range
//go:cgo_import_dynamic vdso_zx_futex_wait zx_futex_wait
//go:cgo_import_dynamic vdso_zx_futex_wake zx_futex_wake
//go:cgo_import_dynamic vdso_zx_futex_requeue zx_futex_requeue
//go:cgo_import_dynamic vdso_zx_futex_wake_single_owner zx_futex_wake_single_owner
//go:cgo_import_dynamic vdso_zx_futex_requeue_single_owner zx_futex_requeue_single_owner
//go:cgo_import_dynamic vdso_zx_futex_get_owner zx_futex_get_owner
//go:cgo_import_dynamic vdso_zx_guest_create zx_guest_create
//go:cgo_import_dynamic vdso_zx_guest_set_trap zx_guest_set_trap
//go:cgo_import_dynamic vdso_zx_handle_close zx_handle_close
//go:cgo_import_dynamic vdso_zx_handle_close_many zx_handle_close_many
//go:cgo_import_dynamic vdso_zx_handle_duplicate zx_handle_duplicate
//go:cgo_import_dynamic vdso_zx_handle_replace zx_handle_replace
//go:cgo_import_dynamic vdso_zx_interrupt_create zx_interrupt_create
//go:cgo_import_dynamic vdso_zx_interrupt_bind zx_interrupt_bind
//go:cgo_import_dynamic vdso_zx_interrupt_wait zx_interrupt_wait
//go:cgo_import_dynamic vdso_zx_interrupt_destroy zx_interrupt_destroy
//go:cgo_import_dynamic vdso_zx_interrupt_ack zx_interrupt_ack
//go:cgo_import_dynamic vdso_zx_interrupt_trigger zx_interrupt_trigger
//go:cgo_import_dynamic vdso_zx_interrupt_bind_vcpu zx_interrupt_bind_vcpu
//go:cgo_import_dynamic vdso_zx_iommu_create zx_iommu_create
//go:cgo_import_dynamic vdso_zx_ioports_request zx_ioports_request
//go:cgo_import_dynamic vdso_zx_ioports_release zx_ioports_release
//go:cgo_import_dynamic vdso_zx_job_create zx_job_create
//go:cgo_import_dynamic vdso_zx_job_set_policy zx_job_set_policy
//go:cgo_import_dynamic vdso_zx_job_set_critical zx_job_set_critical
//go:cgo_import_dynamic vdso_zx_ktrace_read zx_ktrace_read
//go:cgo_import_dynamic vdso_zx_ktrace_control zx_ktrace_control
//go:cgo_import_dynamic vdso_zx_ktrace_write zx_ktrace_write
//go:cgo_import_dynamic vdso_zx_nanosleep zx_nanosleep
//go:cgo_import_dynamic vdso_zx_ticks_get zx_ticks_get
//go:cgo_import_dynamic vdso_zx_ticks_per_second zx_ticks_per_second
//go:cgo_import_dynamic vdso_zx_deadline_after zx_deadline_after
//go:cgo_import_dynamic vdso_zx_vmar_unmap_handle_close_thread_exit zx_vmar_unmap_handle_close_thread_exit
//go:cgo_import_dynamic vdso_zx_futex_wake_handle_close_thread_exit zx_futex_wake_handle_close_thread_exit
//go:cgo_import_dynamic vdso_zx_ticks_get_via_kernel zx_ticks_get_via_kernel
//go:cgo_import_dynamic vdso_zx_msi_allocate zx_msi_allocate
//go:cgo_import_dynamic vdso_zx_msi_create zx_msi_create
//go:cgo_import_dynamic vdso_zx_mtrace_control zx_mtrace_control
//go:cgo_import_dynamic vdso_zx_object_wait_one zx_object_wait_one
//go:cgo_import_dynamic vdso_zx_object_wait_many zx_object_wait_many
//go:cgo_import_dynamic vdso_zx_object_wait_async zx_object_wait_async
//go:cgo_import_dynamic vdso_zx_object_signal zx_object_signal
//go:cgo_import_dynamic vdso_zx_object_signal_peer zx_object_signal_peer
//go:cgo_import_dynamic vdso_zx_object_get_property zx_object_get_property
//go:cgo_import_dynamic vdso_zx_object_set_property zx_object_set_property
//go:cgo_import_dynamic vdso_zx_object_get_info zx_object_get_info
//go:cgo_import_dynamic vdso_zx_object_get_child zx_object_get_child
//go:cgo_import_dynamic vdso_zx_object_set_profile zx_object_set_profile
//go:cgo_import_dynamic vdso_zx_pager_create zx_pager_create
//go:cgo_import_dynamic vdso_zx_pager_create_vmo zx_pager_create_vmo
//go:cgo_import_dynamic vdso_zx_pager_detach_vmo zx_pager_detach_vmo
//go:cgo_import_dynamic vdso_zx_pager_supply_pages zx_pager_supply_pages
//go:cgo_import_dynamic vdso_zx_pager_op_range zx_pager_op_range
//go:cgo_import_dynamic vdso_zx_pc_firmware_tables zx_pc_firmware_tables
//go:cgo_import_dynamic vdso_zx_pci_get_nth_device zx_pci_get_nth_device
//go:cgo_import_dynamic vdso_zx_pci_enable_bus_master zx_pci_enable_bus_master
//go:cgo_import_dynamic vdso_zx_pci_reset_device zx_pci_reset_device
//go:cgo_import_dynamic vdso_zx_pci_config_read zx_pci_config_read
//go:cgo_import_dynamic vdso_zx_pci_config_write zx_pci_config_write
//go:cgo_import_dynamic vdso_zx_pci_cfg_pio_rw zx_pci_cfg_pio_rw
//go:cgo_import_dynamic vdso_zx_pci_get_bar zx_pci_get_bar
//go:cgo_import_dynamic vdso_zx_pci_map_interrupt zx_pci_map_interrupt
//go:cgo_import_dynamic vdso_zx_pci_query_irq_mode zx_pci_query_irq_mode
//go:cgo_import_dynamic vdso_zx_pci_set_irq_mode zx_pci_set_irq_mode
//go:cgo_import_dynamic vdso_zx_pci_init zx_pci_init
//go:cgo_import_dynamic vdso_zx_pci_add_subtract_io_range zx_pci_add_subtract_io_range
//go:cgo_import_dynamic vdso_zx_pmt_unpin zx_pmt_unpin
//go:cgo_import_dynamic vdso_zx_port_create zx_port_create
//go:cgo_import_dynamic vdso_zx_port_queue zx_port_queue
//go:cgo_import_dynamic vdso_zx_port_wait zx_port_wait
//go:cgo_import_dynamic vdso_zx_port_cancel zx_port_cancel
//go:cgo_import_dynamic vdso_zx_process_exit zx_process_exit
//go:cgo_import_dynamic vdso_zx_process_create zx_process_create
//go:cgo_import_dynamic vdso_zx_process_start zx_process_start
//go:cgo_import_dynamic vdso_zx_process_read_memory zx_process_read_memory
//go:cgo_import_dynamic vdso_zx_process_write_memory zx_process_write_memory
//go:cgo_import_dynamic vdso_zx_profile_create zx_profile_create
//go:cgo_import_dynamic vdso_zx_resource_create zx_resource_create
//go:cgo_import_dynamic vdso_zx_smc_call zx_smc_call
//go:cgo_import_dynamic vdso_zx_socket_create zx_socket_create
//go:cgo_import_dynamic vdso_zx_socket_write zx_socket_write
//go:cgo_import_dynamic vdso_zx_socket_read zx_socket_read
//go:cgo_import_dynamic vdso_zx_socket_shutdown zx_socket_shutdown
//go:cgo_import_dynamic vdso_zx_stream_create zx_stream_create
//go:cgo_import_dynamic vdso_zx_stream_writev zx_stream_writev
//go:cgo_import_dynamic vdso_zx_stream_writev_at zx_stream_writev_at
//go:cgo_import_dynamic vdso_zx_stream_readv zx_stream_readv
//go:cgo_import_dynamic vdso_zx_stream_readv_at zx_stream_readv_at
//go:cgo_import_dynamic vdso_zx_stream_seek zx_stream_seek
//go:cgo_import_dynamic vdso_zx_syscall_test_0 zx_syscall_test_0
//go:cgo_import_dynamic vdso_zx_syscall_test_1 zx_syscall_test_1
//go:cgo_import_dynamic vdso_zx_syscall_test_2 zx_syscall_test_2
//go:cgo_import_dynamic vdso_zx_syscall_test_3 zx_syscall_test_3
//go:cgo_import_dynamic vdso_zx_syscall_test_4 zx_syscall_test_4
//go:cgo_import_dynamic vdso_zx_syscall_test_5 zx_syscall_test_5
//go:cgo_import_dynamic vdso_zx_syscall_test_6 zx_syscall_test_6
//go:cgo_import_dynamic vdso_zx_syscall_test_7 zx_syscall_test_7
//go:cgo_import_dynamic vdso_zx_syscall_test_8 zx_syscall_test_8
//go:cgo_import_dynamic vdso_zx_syscall_test_wrapper zx_syscall_test_wrapper
//go:cgo_import_dynamic vdso_zx_syscall_test_handle_create zx_syscall_test_handle_create
//go:cgo_import_dynamic vdso_zx_system_get_dcache_line_size zx_system_get_dcache_line_size
//go:cgo_import_dynamic vdso_zx_system_get_num_cpus zx_system_get_num_cpus
//go:cgo_import_dynamic vdso_zx_system_get_version_string zx_system_get_version_string
//go:cgo_import_dynamic vdso_zx_system_get_physmem zx_system_get_physmem
//go:cgo_import_dynamic vdso_zx_system_get_features zx_system_get_features
//go:cgo_import_dynamic vdso_zx_system_get_event zx_system_get_event
//go:cgo_import_dynamic vdso_zx_system_mexec zx_system_mexec
//go:cgo_import_dynamic vdso_zx_system_mexec_payload_get zx_system_mexec_payload_get
//go:cgo_import_dynamic vdso_zx_system_powerctl zx_system_powerctl
//go:cgo_import_dynamic vdso_zx_task_suspend zx_task_suspend
//go:cgo_import_dynamic vdso_zx_task_suspend_token zx_task_suspend_token
//go:cgo_import_dynamic vdso_zx_task_create_exception_channel zx_task_create_exception_channel
//go:cgo_import_dynamic vdso_zx_task_kill zx_task_kill
//go:cgo_import_dynamic vdso_zx_thread_exit zx_thread_exit
//go:cgo_import_dynamic vdso_zx_thread_create zx_thread_create
//go:cgo_import_dynamic vdso_zx_thread_start zx_thread_start
//go:cgo_import_dynamic vdso_zx_thread_read_state zx_thread_read_state
//go:cgo_import_dynamic vdso_zx_thread_write_state zx_thread_write_state
//go:cgo_import_dynamic vdso_zx_timer_create zx_timer_create
//go:cgo_import_dynamic vdso_zx_timer_set zx_timer_set
//go:cgo_import_dynamic vdso_zx_timer_cancel zx_timer_cancel
//go:cgo_import_dynamic vdso_zx_vcpu_create zx_vcpu_create
//go:cgo_import_dynamic vdso_zx_vcpu_resume zx_vcpu_resume
//go:cgo_import_dynamic vdso_zx_vcpu_interrupt zx_vcpu_interrupt
//go:cgo_import_dynamic vdso_zx_vcpu_read_state zx_vcpu_read_state
//go:cgo_import_dynamic vdso_zx_vcpu_write_state zx_vcpu_write_state
//go:cgo_import_dynamic vdso_zx_vmar_allocate zx_vmar_allocate
//go:cgo_import_dynamic vdso_zx_vmar_destroy zx_vmar_destroy
//go:cgo_import_dynamic vdso_zx_vmar_map zx_vmar_map
//go:cgo_import_dynamic vdso_zx_vmar_unmap zx_vmar_unmap
//go:cgo_import_dynamic vdso_zx_vmar_protect zx_vmar_protect
//go:cgo_import_dynamic vdso_zx_vmar_op_range zx_vmar_op_range
//go:cgo_import_dynamic vdso_zx_vmo_create zx_vmo_create
//go:cgo_import_dynamic vdso_zx_vmo_read zx_vmo_read
//go:cgo_import_dynamic vdso_zx_vmo_write zx_vmo_write
//go:cgo_import_dynamic vdso_zx_vmo_get_size zx_vmo_get_size
//go:cgo_import_dynamic vdso_zx_vmo_set_size zx_vmo_set_size
//go:cgo_import_dynamic vdso_zx_vmo_op_range zx_vmo_op_range
//go:cgo_import_dynamic vdso_zx_vmo_create_child zx_vmo_create_child
//go:cgo_import_dynamic vdso_zx_vmo_set_cache_policy zx_vmo_set_cache_policy
//go:cgo_import_dynamic vdso_zx_vmo_replace_as_executable zx_vmo_replace_as_executable
//go:cgo_import_dynamic vdso_zx_vmo_create_contiguous zx_vmo_create_contiguous
//go:cgo_import_dynamic vdso_zx_vmo_create_physical zx_vmo_create_physical

//go:linkname vdso_zx_bti_create vdso_zx_bti_create
//go:linkname vdso_zx_bti_pin vdso_zx_bti_pin
//go:linkname vdso_zx_bti_release_quarantine vdso_zx_bti_release_quarantine
//go:linkname vdso_zx_cache_flush vdso_zx_cache_flush
//go:linkname vdso_zx_channel_create vdso_zx_channel_create
//go:linkname vdso_zx_channel_read vdso_zx_channel_read
//go:linkname vdso_zx_channel_read_etc vdso_zx_channel_read_etc
//go:linkname vdso_zx_channel_write vdso_zx_channel_write
//go:linkname vdso_zx_channel_write_etc vdso_zx_channel_write_etc
//go:linkname vdso_zx_channel_call_noretry vdso_zx_channel_call_noretry
//go:linkname vdso_zx_channel_call_finish vdso_zx_channel_call_finish
//go:linkname vdso_zx_channel_call vdso_zx_channel_call
//go:linkname vdso_zx_channel_call_etc_noretry vdso_zx_channel_call_etc_noretry
//go:linkname vdso_zx_channel_call_etc_finish vdso_zx_channel_call_etc_finish
//go:linkname vdso_zx_channel_call_etc vdso_zx_channel_call_etc
//go:linkname vdso_zx_clock_get vdso_zx_clock_get
//go:linkname vdso_zx_clock_get_monotonic vdso_zx_clock_get_monotonic
//go:linkname vdso_zx_clock_adjust vdso_zx_clock_adjust
//go:linkname vdso_zx_clock_get_monotonic_via_kernel vdso_zx_clock_get_monotonic_via_kernel
//go:linkname vdso_zx_clock_create vdso_zx_clock_create
//go:linkname vdso_zx_clock_read vdso_zx_clock_read
//go:linkname vdso_zx_clock_get_details vdso_zx_clock_get_details
//go:linkname vdso_zx_clock_update vdso_zx_clock_update
//go:linkname vdso_zx_cprng_draw_once vdso_zx_cprng_draw_once
//go:linkname vdso_zx_cprng_draw vdso_zx_cprng_draw
//go:linkname vdso_zx_cprng_add_entropy vdso_zx_cprng_add_entropy
//go:linkname vdso_zx_debug_read vdso_zx_debug_read
//go:linkname vdso_zx_debug_write vdso_zx_debug_write
//go:linkname vdso_zx_debug_send_command vdso_zx_debug_send_command
//go:linkname vdso_zx_debuglog_create vdso_zx_debuglog_create
//go:linkname vdso_zx_debuglog_write vdso_zx_debuglog_write
//go:linkname vdso_zx_debuglog_read vdso_zx_debuglog_read
//go:linkname vdso_zx_event_create vdso_zx_event_create
//go:linkname vdso_zx_eventpair_create vdso_zx_eventpair_create
//go:linkname vdso_zx_exception_get_thread vdso_zx_exception_get_thread
//go:linkname vdso_zx_exception_get_process vdso_zx_exception_get_process
//go:linkname vdso_zx_fifo_create vdso_zx_fifo_create
//go:linkname vdso_zx_fifo_read vdso_zx_fifo_read
//go:linkname vdso_zx_fifo_write vdso_zx_fifo_write
//go:linkname vdso_zx_framebuffer_get_info vdso_zx_framebuffer_get_info
//go:linkname vdso_zx_framebuffer_set_range vdso_zx_framebuffer_set_range
//go:linkname vdso_zx_futex_wait vdso_zx_futex_wait
//go:linkname vdso_zx_futex_wake vdso_zx_futex_wake
//go:linkname vdso_zx_futex_requeue vdso_zx_futex_requeue
//go:linkname vdso_zx_futex_wake_single_owner vdso_zx_futex_wake_single_owner
//go:linkname vdso_zx_futex_requeue_single_owner vdso_zx_futex_requeue_single_owner
//go:linkname vdso_zx_futex_get_owner vdso_zx_futex_get_owner
//go:linkname vdso_zx_guest_create vdso_zx_guest_create
//go:linkname vdso_zx_guest_set_trap vdso_zx_guest_set_trap
//go:linkname vdso_zx_handle_close vdso_zx_handle_close
//go:linkname vdso_zx_handle_close_many vdso_zx_handle_close_many
//go:linkname vdso_zx_handle_duplicate vdso_zx_handle_duplicate
//go:linkname vdso_zx_handle_replace vdso_zx_handle_replace
//go:linkname vdso_zx_interrupt_create vdso_zx_interrupt_create
//go:linkname vdso_zx_interrupt_bind vdso_zx_interrupt_bind
//go:linkname vdso_zx_interrupt_wait vdso_zx_interrupt_wait
//go:linkname vdso_zx_interrupt_destroy vdso_zx_interrupt_destroy
//go:linkname vdso_zx_interrupt_ack vdso_zx_interrupt_ack
//go:linkname vdso_zx_interrupt_trigger vdso_zx_interrupt_trigger
//go:linkname vdso_zx_interrupt_bind_vcpu vdso_zx_interrupt_bind_vcpu
//go:linkname vdso_zx_iommu_create vdso_zx_iommu_create
//go:linkname vdso_zx_ioports_request vdso_zx_ioports_request
//go:linkname vdso_zx_ioports_release vdso_zx_ioports_release
//go:linkname vdso_zx_job_create vdso_zx_job_create
//go:linkname vdso_zx_job_set_policy vdso_zx_job_set_policy
//go:linkname vdso_zx_job_set_critical vdso_zx_job_set_critical
//go:linkname vdso_zx_ktrace_read vdso_zx_ktrace_read
//go:linkname vdso_zx_ktrace_control vdso_zx_ktrace_control
//go:linkname vdso_zx_ktrace_write vdso_zx_ktrace_write
//go:linkname vdso_zx_nanosleep vdso_zx_nanosleep
//go:linkname vdso_zx_ticks_get vdso_zx_ticks_get
//go:linkname vdso_zx_ticks_per_second vdso_zx_ticks_per_second
//go:linkname vdso_zx_deadline_after vdso_zx_deadline_after
//go:linkname vdso_zx_vmar_unmap_handle_close_thread_exit vdso_zx_vmar_unmap_handle_close_thread_exit
//go:linkname vdso_zx_futex_wake_handle_close_thread_exit vdso_zx_futex_wake_handle_close_thread_exit
//go:linkname vdso_zx_ticks_get_via_kernel vdso_zx_ticks_get_via_kernel
//go:linkname vdso_zx_msi_allocate vdso_zx_msi_allocate
//go:linkname vdso_zx_msi_create vdso_zx_msi_create
//go:linkname vdso_zx_mtrace_control vdso_zx_mtrace_control
//go:linkname vdso_zx_object_wait_one vdso_zx_object_wait_one
//go:linkname vdso_zx_object_wait_many vdso_zx_object_wait_many
//go:linkname vdso_zx_object_wait_async vdso_zx_object_wait_async
//go:linkname vdso_zx_object_signal vdso_zx_object_signal
//go:linkname vdso_zx_object_signal_peer vdso_zx_object_signal_peer
//go:linkname vdso_zx_object_get_property vdso_zx_object_get_property
//go:linkname vdso_zx_object_set_property vdso_zx_object_set_property
//go:linkname vdso_zx_object_get_info vdso_zx_object_get_info
//go:linkname vdso_zx_object_get_child vdso_zx_object_get_child
//go:linkname vdso_zx_object_set_profile vdso_zx_object_set_profile
//go:linkname vdso_zx_pager_create vdso_zx_pager_create
//go:linkname vdso_zx_pager_create_vmo vdso_zx_pager_create_vmo
//go:linkname vdso_zx_pager_detach_vmo vdso_zx_pager_detach_vmo
//go:linkname vdso_zx_pager_supply_pages vdso_zx_pager_supply_pages
//go:linkname vdso_zx_pager_op_range vdso_zx_pager_op_range
//go:linkname vdso_zx_pc_firmware_tables vdso_zx_pc_firmware_tables
//go:linkname vdso_zx_pci_get_nth_device vdso_zx_pci_get_nth_device
//go:linkname vdso_zx_pci_enable_bus_master vdso_zx_pci_enable_bus_master
//go:linkname vdso_zx_pci_reset_device vdso_zx_pci_reset_device
//go:linkname vdso_zx_pci_config_read vdso_zx_pci_config_read
//go:linkname vdso_zx_pci_config_write vdso_zx_pci_config_write
//go:linkname vdso_zx_pci_cfg_pio_rw vdso_zx_pci_cfg_pio_rw
//go:linkname vdso_zx_pci_get_bar vdso_zx_pci_get_bar
//go:linkname vdso_zx_pci_map_interrupt vdso_zx_pci_map_interrupt
//go:linkname vdso_zx_pci_query_irq_mode vdso_zx_pci_query_irq_mode
//go:linkname vdso_zx_pci_set_irq_mode vdso_zx_pci_set_irq_mode
//go:linkname vdso_zx_pci_init vdso_zx_pci_init
//go:linkname vdso_zx_pci_add_subtract_io_range vdso_zx_pci_add_subtract_io_range
//go:linkname vdso_zx_pmt_unpin vdso_zx_pmt_unpin
//go:linkname vdso_zx_port_create vdso_zx_port_create
//go:linkname vdso_zx_port_queue vdso_zx_port_queue
//go:linkname vdso_zx_port_wait vdso_zx_port_wait
//go:linkname vdso_zx_port_cancel vdso_zx_port_cancel
//go:linkname vdso_zx_process_exit vdso_zx_process_exit
//go:linkname vdso_zx_process_create vdso_zx_process_create
//go:linkname vdso_zx_process_start vdso_zx_process_start
//go:linkname vdso_zx_process_read_memory vdso_zx_process_read_memory
//go:linkname vdso_zx_process_write_memory vdso_zx_process_write_memory
//go:linkname vdso_zx_profile_create vdso_zx_profile_create
//go:linkname vdso_zx_resource_create vdso_zx_resource_create
//go:linkname vdso_zx_smc_call vdso_zx_smc_call
//go:linkname vdso_zx_socket_create vdso_zx_socket_create
//go:linkname vdso_zx_socket_write vdso_zx_socket_write
//go:linkname vdso_zx_socket_read vdso_zx_socket_read
//go:linkname vdso_zx_socket_shutdown vdso_zx_socket_shutdown
//go:linkname vdso_zx_stream_create vdso_zx_stream_create
//go:linkname vdso_zx_stream_writev vdso_zx_stream_writev
//go:linkname vdso_zx_stream_writev_at vdso_zx_stream_writev_at
//go:linkname vdso_zx_stream_readv vdso_zx_stream_readv
//go:linkname vdso_zx_stream_readv_at vdso_zx_stream_readv_at
//go:linkname vdso_zx_stream_seek vdso_zx_stream_seek
//go:linkname vdso_zx_syscall_test_0 vdso_zx_syscall_test_0
//go:linkname vdso_zx_syscall_test_1 vdso_zx_syscall_test_1
//go:linkname vdso_zx_syscall_test_2 vdso_zx_syscall_test_2
//go:linkname vdso_zx_syscall_test_3 vdso_zx_syscall_test_3
//go:linkname vdso_zx_syscall_test_4 vdso_zx_syscall_test_4
//go:linkname vdso_zx_syscall_test_5 vdso_zx_syscall_test_5
//go:linkname vdso_zx_syscall_test_6 vdso_zx_syscall_test_6
//go:linkname vdso_zx_syscall_test_7 vdso_zx_syscall_test_7
//go:linkname vdso_zx_syscall_test_8 vdso_zx_syscall_test_8
//go:linkname vdso_zx_syscall_test_wrapper vdso_zx_syscall_test_wrapper
//go:linkname vdso_zx_syscall_test_handle_create vdso_zx_syscall_test_handle_create
//go:linkname vdso_zx_system_get_dcache_line_size vdso_zx_system_get_dcache_line_size
//go:linkname vdso_zx_system_get_num_cpus vdso_zx_system_get_num_cpus
//go:linkname vdso_zx_system_get_version_string vdso_zx_system_get_version_string
//go:linkname vdso_zx_system_get_physmem vdso_zx_system_get_physmem
//go:linkname vdso_zx_system_get_features vdso_zx_system_get_features
//go:linkname vdso_zx_system_get_event vdso_zx_system_get_event
//go:linkname vdso_zx_system_mexec vdso_zx_system_mexec
//go:linkname vdso_zx_system_mexec_payload_get vdso_zx_system_mexec_payload_get
//go:linkname vdso_zx_system_powerctl vdso_zx_system_powerctl
//go:linkname vdso_zx_task_suspend vdso_zx_task_suspend
//go:linkname vdso_zx_task_suspend_token vdso_zx_task_suspend_token
//go:linkname vdso_zx_task_create_exception_channel vdso_zx_task_create_exception_channel
//go:linkname vdso_zx_task_kill vdso_zx_task_kill
//go:linkname vdso_zx_thread_exit vdso_zx_thread_exit
//go:linkname vdso_zx_thread_create vdso_zx_thread_create
//go:linkname vdso_zx_thread_start vdso_zx_thread_start
//go:linkname vdso_zx_thread_read_state vdso_zx_thread_read_state
//go:linkname vdso_zx_thread_write_state vdso_zx_thread_write_state
//go:linkname vdso_zx_timer_create vdso_zx_timer_create
//go:linkname vdso_zx_timer_set vdso_zx_timer_set
//go:linkname vdso_zx_timer_cancel vdso_zx_timer_cancel
//go:linkname vdso_zx_vcpu_create vdso_zx_vcpu_create
//go:linkname vdso_zx_vcpu_resume vdso_zx_vcpu_resume
//go:linkname vdso_zx_vcpu_interrupt vdso_zx_vcpu_interrupt
//go:linkname vdso_zx_vcpu_read_state vdso_zx_vcpu_read_state
//go:linkname vdso_zx_vcpu_write_state vdso_zx_vcpu_write_state
//go:linkname vdso_zx_vmar_allocate vdso_zx_vmar_allocate
//go:linkname vdso_zx_vmar_destroy vdso_zx_vmar_destroy
//go:linkname vdso_zx_vmar_map vdso_zx_vmar_map
//go:linkname vdso_zx_vmar_unmap vdso_zx_vmar_unmap
//go:linkname vdso_zx_vmar_protect vdso_zx_vmar_protect
//go:linkname vdso_zx_vmar_op_range vdso_zx_vmar_op_range
//go:linkname vdso_zx_vmo_create vdso_zx_vmo_create
//go:linkname vdso_zx_vmo_read vdso_zx_vmo_read
//go:linkname vdso_zx_vmo_write vdso_zx_vmo_write
//go:linkname vdso_zx_vmo_get_size vdso_zx_vmo_get_size
//go:linkname vdso_zx_vmo_set_size vdso_zx_vmo_set_size
//go:linkname vdso_zx_vmo_op_range vdso_zx_vmo_op_range
//go:linkname vdso_zx_vmo_create_child vdso_zx_vmo_create_child
//go:linkname vdso_zx_vmo_set_cache_policy vdso_zx_vmo_set_cache_policy
//go:linkname vdso_zx_vmo_replace_as_executable vdso_zx_vmo_replace_as_executable
//go:linkname vdso_zx_vmo_create_contiguous vdso_zx_vmo_create_contiguous
//go:linkname vdso_zx_vmo_create_physical vdso_zx_vmo_create_physical

//go:noescape
//go:nosplit
func vdsoCall_zx_bti_create(iommu uint32, options uint32, bti_id uint64, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_bti_pin(handle uint32, options uint32, vmo uint32, offset uint64, size uint64, addrs unsafe.Pointer, num_addrs uint, pmt unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_bti_release_quarantine(handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_cache_flush(addr unsafe.Pointer, size uint, options uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_read(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_read_etc(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_write(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_write_etc(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_etc_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_etc_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_channel_call_etc(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_clock_get(clock_id uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_clock_get_monotonic() int64

//go:noescape
//go:nosplit
func vdsoCall_zx_clock_adjust(handle uint32, clock_id uint32, offset int64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_clock_get_monotonic_via_kernel() int64

//go:noescape
//go:nosplit
func vdsoCall_zx_clock_create(options uint64, args unsafe.Pointer, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_clock_read(handle uint32, now unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_clock_get_details(handle uint32, options uint64, details unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_clock_update(handle uint32, options uint64, args unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_cprng_draw(buffer unsafe.Pointer, buffer_size uint)

//go:noescape
//go:nosplit
func vdsoCall_zx_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_debug_read(handle uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_debug_write(buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_debug_send_command(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_debuglog_create(resource uint32, options uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_debuglog_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_debuglog_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_event_create(options uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_eventpair_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_exception_get_thread(handle uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_exception_get_process(handle uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_fifo_create(elem_count uint, elem_size uint, options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_fifo_read(handle uint32, elem_size uint, data unsafe.Pointer, data_size uint, actual_count unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_fifo_write(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_framebuffer_get_info(resource uint32, format unsafe.Pointer, width unsafe.Pointer, height unsafe.Pointer, stride unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_framebuffer_set_range(resource uint32, vmo uint32, len uint32, format uint32, width uint32, height uint32, stride uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_futex_wait(value_ptr unsafe.Pointer, current_value int32, new_futex_owner uint32, deadline int64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_futex_wake(value_ptr unsafe.Pointer, wake_count uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_futex_requeue(value_ptr unsafe.Pointer, wake_count uint32, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_futex_wake_single_owner(value_ptr unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_futex_requeue_single_owner(value_ptr unsafe.Pointer, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_futex_get_owner(value_ptr unsafe.Pointer, koid unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_guest_create(resource uint32, options uint32, guest_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_guest_set_trap(handle uint32, kind uint32, addr uintptr, size uint, port_handle uint32, key uint64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_handle_close(handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_handle_close_many(handles unsafe.Pointer, num_handles uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_handle_duplicate(handle uint32, rights uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_handle_replace(handle uint32, rights uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_create(src_obj uint32, src_num uint32, options uint32, out_handle unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_bind(handle uint32, port_handle uint32, key uint64, options uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_wait(handle uint32, out_timestamp unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_destroy(handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_ack(handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_trigger(handle uint32, options uint32, timestamp int64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_interrupt_bind_vcpu(handle uint32, vcpu uint32, options uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_iommu_create(resource uint32, typ uint32, desc unsafe.Pointer, desc_size uint, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_ioports_request(resource uint32, io_addr uint16, len uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_ioports_release(resource uint32, io_addr uint16, len uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_job_create(parent_job uint32, options uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_job_set_policy(handle uint32, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_job_set_critical(job uint32, options uint32, process uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_ktrace_read(handle uint32, data unsafe.Pointer, offset uint32, data_size uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_ktrace_control(handle uint32, action uint32, options uint32, ptr unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_ktrace_write(handle uint32, id uint32, arg0 uint32, arg1 uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_nanosleep(deadline int64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_ticks_get() int64

//go:noescape
//go:nosplit
func vdsoCall_zx_ticks_per_second() int64

//go:noescape
//go:nosplit
func vdsoCall_zx_deadline_after(nanoseconds int64) int64

//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_unmap_handle_close_thread_exit(vmar_handle uint32, addr uintptr, size uint, close_handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_futex_wake_handle_close_thread_exit(value_ptr unsafe.Pointer, wake_count uint32, new_value int32, close_handle uint32)

//go:noescape
//go:nosplit
func vdsoCall_zx_ticks_get_via_kernel() int64

//go:noescape
//go:nosplit
func vdsoCall_zx_msi_allocate(handle uint32, count uint32, out_allocation unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_msi_create(handle uint32, options uint32, msi_id uint32, vmo uint32, vmo_offset uint, out_interrupt unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_mtrace_control(handle uint32, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_wait_one(handle uint32, signals uint32, deadline int64, observed unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_wait_many(items unsafe.Pointer, num_items uint, deadline int64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_wait_async(handle uint32, port uint32, key uint64, signals uint32, options uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_signal(handle uint32, clear_mask uint32, set_mask uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_signal_peer(handle uint32, clear_mask uint32, set_mask uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_get_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_set_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_get_info(handle uint32, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_get_child(handle uint32, koid uint64, rights uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_object_set_profile(handle uint32, profile uint32, options uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pager_create(options uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pager_create_vmo(pager uint32, options uint32, port uint32, key uint64, size uint64, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pager_detach_vmo(pager uint32, vmo uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pager_supply_pages(pager uint32, pager_vmo uint32, offset uint64, length uint64, aux_vmo uint32, aux_offset uint64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pager_op_range(pager uint32, op uint32, pager_vmo uint32, offset uint64, length uint64, data uint64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pc_firmware_tables(handle uint32, acpi_rsdp unsafe.Pointer, smbios unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_get_nth_device(handle uint32, index uint32, out_info unsafe.Pointer, out_handle unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_enable_bus_master(handle uint32, enable uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_reset_device(handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_config_read(handle uint32, offset uint16, width uint, out_val unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_config_write(handle uint32, offset uint16, width uint, val uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_cfg_pio_rw(handle uint32, bus uint8, dev uint8, funk uint8, offset uint8, val unsafe.Pointer, width uint, write uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_get_bar(handle uint32, bar_num uint32, out_bar unsafe.Pointer, out_handle unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_map_interrupt(handle uint32, which_irq int32, out_handle unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_query_irq_mode(handle uint32, mode uint32, out_max_irqs unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_set_irq_mode(handle uint32, mode uint32, requested_irq_count uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_init(handle uint32, init_buf unsafe.Pointer, len uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pci_add_subtract_io_range(handle uint32, mmio uint32, base uint64, len uint64, add uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_pmt_unpin(handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_port_create(options uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_port_queue(handle uint32, packet unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_port_wait(handle uint32, deadline int64, packet unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_port_cancel(handle uint32, source uint32, key uint64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_process_exit(retcode int64)

//go:noescape
//go:nosplit
func vdsoCall_zx_process_create(job uint32, name unsafe.Pointer, name_size uint, options uint32, proc_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_process_start(handle uint32, thread uint32, entry uintptr, stack uintptr, arg1 uint32, arg2 uintptr) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_process_read_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_process_write_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_profile_create(root_job uint32, options uint32, profile unsafe.Pointer, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_resource_create(parent_rsrc uint32, options uint32, base uint64, size uint, name unsafe.Pointer, name_size uint, resource_out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_smc_call(handle uint32, parameters unsafe.Pointer, out_smc_result unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_socket_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_socket_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_socket_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_socket_shutdown(handle uint32, options uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_stream_create(options uint32, vmo uint32, seek uint64, out_stream unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_stream_writev(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_stream_writev_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_stream_readv(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_stream_readv_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_stream_seek(handle uint32, whence uint32, offset int64, out_seek unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_0() int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_1(a int32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_2(a int32, b int32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_3(a int32, b int32, c int32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_4(a int32, b int32, c int32, d int32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_5(a int32, b int32, c int32, d int32, e int32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_wrapper(a int32, b int32, c int32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_syscall_test_handle_create(return_value int32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_dcache_line_size() uint32

//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_num_cpus() uint32

//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_version_string() unsafe.Pointer

//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_physmem() uint64

//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_features(kind uint32, features unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_system_get_event(root_job uint32, kind uint32, event unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_system_mexec(resource uint32, kernel_vmo uint32, bootimage_vmo uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_system_mexec_payload_get(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_system_powerctl(resource uint32, cmd uint32, arg unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_task_suspend(handle uint32, token unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_task_suspend_token(handle uint32, token unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_task_create_exception_channel(handle uint32, options uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_task_kill(handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_thread_exit()

//go:noescape
//go:nosplit
func vdsoCall_zx_thread_create(process uint32, name unsafe.Pointer, name_size uint, options uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_thread_start(handle uint32, thread_entry uintptr, stack uintptr, arg1 uintptr, arg2 uintptr) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_thread_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_thread_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_timer_create(options uint32, clock_id uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_timer_set(handle uint32, deadline int64, slack int64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_timer_cancel(handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_create(guest uint32, options uint32, entry uintptr, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_resume(handle uint32, packet unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_interrupt(handle uint32, vector uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vcpu_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_allocate(parent_vmar uint32, options uint32, offset uint, size uint, child_vmar unsafe.Pointer, child_addr unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_destroy(handle uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_map(handle uint32, options uint32, vmar_offset uint, vmo uint32, vmo_offset uint64, len uint, mapped_addr unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_unmap(handle uint32, addr uintptr, len uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_protect(handle uint32, options uint32, addr uintptr, len uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmar_op_range(handle uint32, op uint32, address uintptr, size uint, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_create(size uint64, options uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_read(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_write(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_get_size(handle uint32, size unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_set_size(handle uint32, size uint64) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_op_range(handle uint32, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_create_child(handle uint32, options uint32, offset uint64, size uint64, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_set_cache_policy(handle uint32, cache_policy uint32) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_replace_as_executable(handle uint32, vmex uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_create_contiguous(bti uint32, size uint, alignment_log2 uint32, out unsafe.Pointer) int32

//go:noescape
//go:nosplit
func vdsoCall_zx_vmo_create_physical(resource uint32, paddr uintptr, size uint, out unsafe.Pointer) int32

var (
	vdso_zx_bti_create uintptr
	vdso_zx_bti_pin uintptr
	vdso_zx_bti_release_quarantine uintptr
	vdso_zx_cache_flush uintptr
	vdso_zx_channel_create uintptr
	vdso_zx_channel_read uintptr
	vdso_zx_channel_read_etc uintptr
	vdso_zx_channel_write uintptr
	vdso_zx_channel_write_etc uintptr
	vdso_zx_channel_call_noretry uintptr
	vdso_zx_channel_call_finish uintptr
	vdso_zx_channel_call uintptr
	vdso_zx_channel_call_etc_noretry uintptr
	vdso_zx_channel_call_etc_finish uintptr
	vdso_zx_channel_call_etc uintptr
	vdso_zx_clock_get uintptr
	vdso_zx_clock_get_monotonic uintptr
	vdso_zx_clock_adjust uintptr
	vdso_zx_clock_get_monotonic_via_kernel uintptr
	vdso_zx_clock_create uintptr
	vdso_zx_clock_read uintptr
	vdso_zx_clock_get_details uintptr
	vdso_zx_clock_update uintptr
	vdso_zx_cprng_draw_once uintptr
	vdso_zx_cprng_draw uintptr
	vdso_zx_cprng_add_entropy uintptr
	vdso_zx_debug_read uintptr
	vdso_zx_debug_write uintptr
	vdso_zx_debug_send_command uintptr
	vdso_zx_debuglog_create uintptr
	vdso_zx_debuglog_write uintptr
	vdso_zx_debuglog_read uintptr
	vdso_zx_event_create uintptr
	vdso_zx_eventpair_create uintptr
	vdso_zx_exception_get_thread uintptr
	vdso_zx_exception_get_process uintptr
	vdso_zx_fifo_create uintptr
	vdso_zx_fifo_read uintptr
	vdso_zx_fifo_write uintptr
	vdso_zx_framebuffer_get_info uintptr
	vdso_zx_framebuffer_set_range uintptr
	vdso_zx_futex_wait uintptr
	vdso_zx_futex_wake uintptr
	vdso_zx_futex_requeue uintptr
	vdso_zx_futex_wake_single_owner uintptr
	vdso_zx_futex_requeue_single_owner uintptr
	vdso_zx_futex_get_owner uintptr
	vdso_zx_guest_create uintptr
	vdso_zx_guest_set_trap uintptr
	vdso_zx_handle_close uintptr
	vdso_zx_handle_close_many uintptr
	vdso_zx_handle_duplicate uintptr
	vdso_zx_handle_replace uintptr
	vdso_zx_interrupt_create uintptr
	vdso_zx_interrupt_bind uintptr
	vdso_zx_interrupt_wait uintptr
	vdso_zx_interrupt_destroy uintptr
	vdso_zx_interrupt_ack uintptr
	vdso_zx_interrupt_trigger uintptr
	vdso_zx_interrupt_bind_vcpu uintptr
	vdso_zx_iommu_create uintptr
	vdso_zx_ioports_request uintptr
	vdso_zx_ioports_release uintptr
	vdso_zx_job_create uintptr
	vdso_zx_job_set_policy uintptr
	vdso_zx_job_set_critical uintptr
	vdso_zx_ktrace_read uintptr
	vdso_zx_ktrace_control uintptr
	vdso_zx_ktrace_write uintptr
	vdso_zx_nanosleep uintptr
	vdso_zx_ticks_get uintptr
	vdso_zx_ticks_per_second uintptr
	vdso_zx_deadline_after uintptr
	vdso_zx_vmar_unmap_handle_close_thread_exit uintptr
	vdso_zx_futex_wake_handle_close_thread_exit uintptr
	vdso_zx_ticks_get_via_kernel uintptr
	vdso_zx_msi_allocate uintptr
	vdso_zx_msi_create uintptr
	vdso_zx_mtrace_control uintptr
	vdso_zx_object_wait_one uintptr
	vdso_zx_object_wait_many uintptr
	vdso_zx_object_wait_async uintptr
	vdso_zx_object_signal uintptr
	vdso_zx_object_signal_peer uintptr
	vdso_zx_object_get_property uintptr
	vdso_zx_object_set_property uintptr
	vdso_zx_object_get_info uintptr
	vdso_zx_object_get_child uintptr
	vdso_zx_object_set_profile uintptr
	vdso_zx_pager_create uintptr
	vdso_zx_pager_create_vmo uintptr
	vdso_zx_pager_detach_vmo uintptr
	vdso_zx_pager_supply_pages uintptr
	vdso_zx_pager_op_range uintptr
	vdso_zx_pc_firmware_tables uintptr
	vdso_zx_pci_get_nth_device uintptr
	vdso_zx_pci_enable_bus_master uintptr
	vdso_zx_pci_reset_device uintptr
	vdso_zx_pci_config_read uintptr
	vdso_zx_pci_config_write uintptr
	vdso_zx_pci_cfg_pio_rw uintptr
	vdso_zx_pci_get_bar uintptr
	vdso_zx_pci_map_interrupt uintptr
	vdso_zx_pci_query_irq_mode uintptr
	vdso_zx_pci_set_irq_mode uintptr
	vdso_zx_pci_init uintptr
	vdso_zx_pci_add_subtract_io_range uintptr
	vdso_zx_pmt_unpin uintptr
	vdso_zx_port_create uintptr
	vdso_zx_port_queue uintptr
	vdso_zx_port_wait uintptr
	vdso_zx_port_cancel uintptr
	vdso_zx_process_exit uintptr
	vdso_zx_process_create uintptr
	vdso_zx_process_start uintptr
	vdso_zx_process_read_memory uintptr
	vdso_zx_process_write_memory uintptr
	vdso_zx_profile_create uintptr
	vdso_zx_resource_create uintptr
	vdso_zx_smc_call uintptr
	vdso_zx_socket_create uintptr
	vdso_zx_socket_write uintptr
	vdso_zx_socket_read uintptr
	vdso_zx_socket_shutdown uintptr
	vdso_zx_stream_create uintptr
	vdso_zx_stream_writev uintptr
	vdso_zx_stream_writev_at uintptr
	vdso_zx_stream_readv uintptr
	vdso_zx_stream_readv_at uintptr
	vdso_zx_stream_seek uintptr
	vdso_zx_syscall_test_0 uintptr
	vdso_zx_syscall_test_1 uintptr
	vdso_zx_syscall_test_2 uintptr
	vdso_zx_syscall_test_3 uintptr
	vdso_zx_syscall_test_4 uintptr
	vdso_zx_syscall_test_5 uintptr
	vdso_zx_syscall_test_6 uintptr
	vdso_zx_syscall_test_7 uintptr
	vdso_zx_syscall_test_8 uintptr
	vdso_zx_syscall_test_wrapper uintptr
	vdso_zx_syscall_test_handle_create uintptr
	vdso_zx_system_get_dcache_line_size uintptr
	vdso_zx_system_get_num_cpus uintptr
	vdso_zx_system_get_version_string uintptr
	vdso_zx_system_get_physmem uintptr
	vdso_zx_system_get_features uintptr
	vdso_zx_system_get_event uintptr
	vdso_zx_system_mexec uintptr
	vdso_zx_system_mexec_payload_get uintptr
	vdso_zx_system_powerctl uintptr
	vdso_zx_task_suspend uintptr
	vdso_zx_task_suspend_token uintptr
	vdso_zx_task_create_exception_channel uintptr
	vdso_zx_task_kill uintptr
	vdso_zx_thread_exit uintptr
	vdso_zx_thread_create uintptr
	vdso_zx_thread_start uintptr
	vdso_zx_thread_read_state uintptr
	vdso_zx_thread_write_state uintptr
	vdso_zx_timer_create uintptr
	vdso_zx_timer_set uintptr
	vdso_zx_timer_cancel uintptr
	vdso_zx_vcpu_create uintptr
	vdso_zx_vcpu_resume uintptr
	vdso_zx_vcpu_interrupt uintptr
	vdso_zx_vcpu_read_state uintptr
	vdso_zx_vcpu_write_state uintptr
	vdso_zx_vmar_allocate uintptr
	vdso_zx_vmar_destroy uintptr
	vdso_zx_vmar_map uintptr
	vdso_zx_vmar_unmap uintptr
	vdso_zx_vmar_protect uintptr
	vdso_zx_vmar_op_range uintptr
	vdso_zx_vmo_create uintptr
	vdso_zx_vmo_read uintptr
	vdso_zx_vmo_write uintptr
	vdso_zx_vmo_get_size uintptr
	vdso_zx_vmo_set_size uintptr
	vdso_zx_vmo_op_range uintptr
	vdso_zx_vmo_create_child uintptr
	vdso_zx_vmo_set_cache_policy uintptr
	vdso_zx_vmo_replace_as_executable uintptr
	vdso_zx_vmo_create_contiguous uintptr
	vdso_zx_vmo_create_physical uintptr
)
----- go-vdso-keys.go END -----


----- go-vdso-x86-calls.s START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

#include "go_asm.h"
#include "go_tls.h"
#include "textflag.h"
#include "funcdata.h"

// func vdsoCall_zx_bti_create(iommu uint32, options uint32, bti_id uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_bti_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL iommu+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ bti_id+8(FP), DX
	MOVQ out+16(FP), CX
	MOVQ vdso_zx_bti_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_bti_pin(handle uint32, options uint32, vmo uint32, offset uint64, size uint64, addrs unsafe.Pointer, num_addrs uint, pmt unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_bti_pin(SB),NOSPLIT,$40-60
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 56(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 56(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVL vmo+8(FP), DX
	MOVQ offset+16(FP), CX
	MOVQ size+24(FP), R8
	MOVQ addrs+32(FP), R9
	MOVQ num_addrs+40(FP), R12
	MOVQ pmt+48(FP), R13
	MOVQ SP, BP   // BP is preserved across vsdo call by the x86-64 ABI
	ANDQ $~15, SP // stack alignment for x86-64 ABI
	PUSHQ R13
	PUSHQ R12
	MOVQ vdso_zx_bti_pin(SB), AX
	CALL AX
	POPQ R12
	POPQ R13
	MOVQ BP, SP
	MOVL AX, ret+56(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_bti_release_quarantine(handle uint32) int32
TEXT runtime·vdsoCall_zx_bti_release_quarantine(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vdso_zx_bti_release_quarantine(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_cache_flush(addr unsafe.Pointer, size uint, options uint32) int32
TEXT runtime·vdsoCall_zx_cache_flush(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ addr+0(FP), DI
	MOVQ size+8(FP), SI
	MOVL options+16(FP), DX
	MOVQ vdso_zx_cache_flush(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL options+0(FP), DI
	MOVQ out0+8(FP), SI
	MOVQ out1+16(FP), DX
	MOVQ vdso_zx_channel_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_read(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_read(SB),NOSPLIT,$40-52
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 56(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 56(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ bytes+8(FP), DX
	MOVQ handles+16(FP), CX
	MOVL num_bytes+24(FP), R8
	MOVL num_handles+28(FP), R9
	MOVQ actual_bytes+32(FP), R12
	MOVQ actual_handles+40(FP), R13
	MOVQ SP, BP   // BP is preserved across vsdo call by the x86-64 ABI
	ANDQ $~15, SP // stack alignment for x86-64 ABI
	PUSHQ R13
	PUSHQ R12
	MOVQ vdso_zx_channel_read(SB), AX
	CALL AX
	POPQ R12
	POPQ R13
	MOVQ BP, SP
	MOVL AX, ret+48(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_read_etc(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_read_etc(SB),NOSPLIT,$40-52
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 56(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 56(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ bytes+8(FP), DX
	MOVQ handles+16(FP), CX
	MOVL num_bytes+24(FP), R8
	MOVL num_handles+28(FP), R9
	MOVQ actual_bytes+32(FP), R12
	MOVQ actual_handles+40(FP), R13
	MOVQ SP, BP   // BP is preserved across vsdo call by the x86-64 ABI
	ANDQ $~15, SP // stack alignment for x86-64 ABI
	PUSHQ R13
	PUSHQ R12
	MOVQ vdso_zx_channel_read_etc(SB), AX
	CALL AX
	POPQ R12
	POPQ R13
	MOVQ BP, SP
	MOVL AX, ret+48(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_write(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
TEXT runtime·vdsoCall_zx_channel_write(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ bytes+8(FP), DX
	MOVL num_bytes+16(FP), CX
	MOVQ handles+24(FP), R8
	MOVL num_handles+32(FP), R9
	MOVQ vdso_zx_channel_write(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_write_etc(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
TEXT runtime·vdsoCall_zx_channel_write_etc(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ bytes+8(FP), DX
	MOVL num_bytes+16(FP), CX
	MOVQ handles+24(FP), R8
	MOVL num_handles+32(FP), R9
	MOVQ vdso_zx_channel_write_etc(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_call_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_noretry(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ deadline+8(FP), DX
	MOVQ args+16(FP), CX
	MOVQ actual_bytes+24(FP), R8
	MOVQ actual_handles+32(FP), R9
	MOVQ vdso_zx_channel_call_noretry(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_call_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_finish(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ deadline+0(FP), DI
	MOVQ args+8(FP), SI
	MOVQ actual_bytes+16(FP), DX
	MOVQ actual_handles+24(FP), CX
	MOVQ vdso_zx_channel_call_finish(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_call(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ deadline+8(FP), DX
	MOVQ args+16(FP), CX
	MOVQ actual_bytes+24(FP), R8
	MOVQ actual_handles+32(FP), R9
	MOVQ vdso_zx_channel_call(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_call_etc_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc_noretry(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ deadline+8(FP), DX
	MOVQ args+16(FP), CX
	MOVQ actual_bytes+24(FP), R8
	MOVQ actual_handles+32(FP), R9
	MOVQ vdso_zx_channel_call_etc_noretry(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_call_etc_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc_finish(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ deadline+0(FP), DI
	MOVQ args+8(FP), SI
	MOVQ actual_bytes+16(FP), DX
	MOVQ actual_handles+24(FP), CX
	MOVQ vdso_zx_channel_call_etc_finish(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_channel_call_etc(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_channel_call_etc(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ deadline+8(FP), DX
	MOVQ args+16(FP), CX
	MOVQ actual_bytes+24(FP), R8
	MOVQ actual_handles+32(FP), R9
	MOVQ vdso_zx_channel_call_etc(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_clock_get(clock_id uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_get(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL clock_id+0(FP), DI
	MOVQ out+8(FP), SI
	MOVQ vdso_zx_clock_get(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_clock_get_monotonic() int64
TEXT runtime·vdsoCall_zx_clock_get_monotonic(SB),NOSPLIT,$8-8
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_clock_get_monotonic(SB), AX
	CALL AX
	MOVQ AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_clock_adjust(handle uint32, clock_id uint32, offset int64) int32
TEXT runtime·vdsoCall_zx_clock_adjust(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL clock_id+4(FP), SI
	MOVQ offset+8(FP), DX
	MOVQ vdso_zx_clock_adjust(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_clock_get_monotonic_via_kernel() int64
TEXT runtime·vdsoCall_zx_clock_get_monotonic_via_kernel(SB),NOSPLIT,$8-8
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_clock_get_monotonic_via_kernel(SB), AX
	CALL AX
	MOVQ AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_clock_create(options uint64, args unsafe.Pointer, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ options+0(FP), DI
	MOVQ args+8(FP), SI
	MOVQ out+16(FP), DX
	MOVQ vdso_zx_clock_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_clock_read(handle uint32, now unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_read(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ now+8(FP), SI
	MOVQ vdso_zx_clock_read(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_clock_get_details(handle uint32, options uint64, details unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_get_details(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ options+8(FP), SI
	MOVQ details+16(FP), DX
	MOVQ vdso_zx_clock_get_details(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_clock_update(handle uint32, options uint64, args unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_clock_update(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ options+8(FP), SI
	MOVQ args+16(FP), DX
	MOVQ vdso_zx_clock_update(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_cprng_draw_once(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ buffer+0(FP), DI
	MOVQ buffer_size+8(FP), SI
	MOVQ vdso_zx_cprng_draw_once(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
TEXT runtime·vdsoCall_zx_cprng_draw(SB),NOSPLIT,$8-16
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ buffer+0(FP), DI
	MOVQ buffer_size+8(FP), SI
	MOVQ vdso_zx_cprng_draw(SB), AX
	CALL AX
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_cprng_add_entropy(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ buffer+0(FP), DI
	MOVQ buffer_size+8(FP), SI
	MOVQ vdso_zx_cprng_add_entropy(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_debug_read(handle uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_debug_read(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ buffer+8(FP), SI
	MOVQ buffer_size+16(FP), DX
	MOVQ actual+24(FP), CX
	MOVQ vdso_zx_debug_read(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_debug_write(buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debug_write(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ buffer+0(FP), DI
	MOVQ buffer_size+8(FP), SI
	MOVQ vdso_zx_debug_write(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_debug_send_command(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debug_send_command(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVQ buffer+8(FP), SI
	MOVQ buffer_size+16(FP), DX
	MOVQ vdso_zx_debug_send_command(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_debuglog_create(resource uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_debuglog_create(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ out+8(FP), DX
	MOVQ vdso_zx_debuglog_create(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_debuglog_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debuglog_write(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ buffer+8(FP), DX
	MOVQ buffer_size+16(FP), CX
	MOVQ vdso_zx_debuglog_write(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_debuglog_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_debuglog_read(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ buffer+8(FP), DX
	MOVQ buffer_size+16(FP), CX
	MOVQ vdso_zx_debuglog_read(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_event_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_event_create(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL options+0(FP), DI
	MOVQ out+8(FP), SI
	MOVQ vdso_zx_event_create(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_eventpair_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_eventpair_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL options+0(FP), DI
	MOVQ out0+8(FP), SI
	MOVQ out1+16(FP), DX
	MOVQ vdso_zx_eventpair_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_exception_get_thread(handle uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_exception_get_thread(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ out+8(FP), SI
	MOVQ vdso_zx_exception_get_thread(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_exception_get_process(handle uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_exception_get_process(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ out+8(FP), SI
	MOVQ vdso_zx_exception_get_process(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_fifo_create(elem_count uint, elem_size uint, options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_create(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ elem_count+0(FP), DI
	MOVQ elem_size+8(FP), SI
	MOVL options+16(FP), DX
	MOVQ out0+24(FP), CX
	MOVQ out1+32(FP), R8
	MOVQ vdso_zx_fifo_create(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_fifo_read(handle uint32, elem_size uint, data unsafe.Pointer, data_size uint, actual_count unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_read(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ elem_size+8(FP), SI
	MOVQ data+16(FP), DX
	MOVQ data_size+24(FP), CX
	MOVQ actual_count+32(FP), R8
	MOVQ vdso_zx_fifo_read(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_fifo_write(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_fifo_write(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ elem_size+8(FP), SI
	MOVQ data+16(FP), DX
	MOVQ count+24(FP), CX
	MOVQ actual_count+32(FP), R8
	MOVQ vdso_zx_fifo_write(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_framebuffer_get_info(resource uint32, format unsafe.Pointer, width unsafe.Pointer, height unsafe.Pointer, stride unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_framebuffer_get_info(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVQ format+8(FP), SI
	MOVQ width+16(FP), DX
	MOVQ height+24(FP), CX
	MOVQ stride+32(FP), R8
	MOVQ vdso_zx_framebuffer_get_info(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_framebuffer_set_range(resource uint32, vmo uint32, len uint32, format uint32, width uint32, height uint32, stride uint32) int32
TEXT runtime·vdsoCall_zx_framebuffer_set_range(SB),NOSPLIT,$32-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 48(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 48(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVL vmo+4(FP), SI
	MOVL len+8(FP), DX
	MOVL format+12(FP), CX
	MOVL width+16(FP), R8
	MOVL height+20(FP), R9
	MOVL stride+24(FP), R12
	MOVQ SP, BP   // BP is preserved across vsdo call by the x86-64 ABI
	ANDQ $~15, SP // stack alignment for x86-64 ABI
	PUSHQ R12
	MOVQ vdso_zx_framebuffer_set_range(SB), AX
	CALL AX
	POPQ R12
	MOVQ BP, SP
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_futex_wait(value_ptr unsafe.Pointer, current_value int32, new_futex_owner uint32, deadline int64) int32
TEXT runtime·vdsoCall_zx_futex_wait(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ value_ptr+0(FP), DI
	MOVL current_value+8(FP), SI
	MOVL new_futex_owner+12(FP), DX
	MOVQ deadline+16(FP), CX
	MOVQ vdso_zx_futex_wait(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_futex_wake(value_ptr unsafe.Pointer, wake_count uint32) int32
TEXT runtime·vdsoCall_zx_futex_wake(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ value_ptr+0(FP), DI
	MOVL wake_count+8(FP), SI
	MOVQ vdso_zx_futex_wake(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_futex_requeue(value_ptr unsafe.Pointer, wake_count uint32, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
TEXT runtime·vdsoCall_zx_futex_requeue(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ value_ptr+0(FP), DI
	MOVL wake_count+8(FP), SI
	MOVL current_value+12(FP), DX
	MOVQ requeue_ptr+16(FP), CX
	MOVL requeue_count+24(FP), R8
	MOVL new_requeue_owner+28(FP), R9
	MOVQ vdso_zx_futex_requeue(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_futex_wake_single_owner(value_ptr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_futex_wake_single_owner(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ value_ptr+0(FP), DI
	MOVQ vdso_zx_futex_wake_single_owner(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_futex_requeue_single_owner(value_ptr unsafe.Pointer, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
TEXT runtime·vdsoCall_zx_futex_requeue_single_owner(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ value_ptr+0(FP), DI
	MOVL current_value+8(FP), SI
	MOVQ requeue_ptr+16(FP), DX
	MOVL requeue_count+24(FP), CX
	MOVL new_requeue_owner+28(FP), R8
	MOVQ vdso_zx_futex_requeue_single_owner(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_futex_get_owner(value_ptr unsafe.Pointer, koid unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_futex_get_owner(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ value_ptr+0(FP), DI
	MOVQ koid+8(FP), SI
	MOVQ vdso_zx_futex_get_owner(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_guest_create(resource uint32, options uint32, guest_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_guest_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ guest_handle+8(FP), DX
	MOVQ vmar_handle+16(FP), CX
	MOVQ vdso_zx_guest_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_guest_set_trap(handle uint32, kind uint32, addr uintptr, size uint, port_handle uint32, key uint64) int32
TEXT runtime·vdsoCall_zx_guest_set_trap(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL kind+4(FP), SI
	MOVQ addr+8(FP), DX
	MOVQ size+16(FP), CX
	MOVL port_handle+24(FP), R8
	MOVQ key+32(FP), R9
	MOVQ vdso_zx_guest_set_trap(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_handle_close(handle uint32) int32
TEXT runtime·vdsoCall_zx_handle_close(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vdso_zx_handle_close(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_handle_close_many(handles unsafe.Pointer, num_handles uint) int32
TEXT runtime·vdsoCall_zx_handle_close_many(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ handles+0(FP), DI
	MOVQ num_handles+8(FP), SI
	MOVQ vdso_zx_handle_close_many(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_handle_duplicate(handle uint32, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_handle_duplicate(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL rights+4(FP), SI
	MOVQ out+8(FP), DX
	MOVQ vdso_zx_handle_duplicate(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_handle_replace(handle uint32, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_handle_replace(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL rights+4(FP), SI
	MOVQ out+8(FP), DX
	MOVQ vdso_zx_handle_replace(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_interrupt_create(src_obj uint32, src_num uint32, options uint32, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_interrupt_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL src_obj+0(FP), DI
	MOVL src_num+4(FP), SI
	MOVL options+8(FP), DX
	MOVQ out_handle+16(FP), CX
	MOVQ vdso_zx_interrupt_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_interrupt_bind(handle uint32, port_handle uint32, key uint64, options uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_bind(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL port_handle+4(FP), SI
	MOVQ key+8(FP), DX
	MOVL options+16(FP), CX
	MOVQ vdso_zx_interrupt_bind(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_interrupt_wait(handle uint32, out_timestamp unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_interrupt_wait(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVL handle+0(FP), DI
	MOVQ out_timestamp+8(FP), SI
	MOVQ vdso_zx_interrupt_wait(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_interrupt_destroy(handle uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_destroy(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vdso_zx_interrupt_destroy(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_interrupt_ack(handle uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_ack(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vdso_zx_interrupt_ack(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_interrupt_trigger(handle uint32, options uint32, timestamp int64) int32
TEXT runtime·vdsoCall_zx_interrupt_trigger(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ timestamp+8(FP), DX
	MOVQ vdso_zx_interrupt_trigger(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_interrupt_bind_vcpu(handle uint32, vcpu uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_interrupt_bind_vcpu(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL vcpu+4(FP), SI
	MOVL options+8(FP), DX
	MOVQ vdso_zx_interrupt_bind_vcpu(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_iommu_create(resource uint32, typ uint32, desc unsafe.Pointer, desc_size uint, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_iommu_create(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVL typ+4(FP), SI
	MOVQ desc+8(FP), DX
	MOVQ desc_size+16(FP), CX
	MOVQ out+24(FP), R8
	MOVQ vdso_zx_iommu_create(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_ioports_request(resource uint32, io_addr uint16, len uint32) int32
TEXT runtime·vdsoCall_zx_ioports_request(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVQ io_addr+4(FP), SI
	MOVL len+8(FP), DX
	MOVQ vdso_zx_ioports_request(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_ioports_release(resource uint32, io_addr uint16, len uint32) int32
TEXT runtime·vdsoCall_zx_ioports_release(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVQ io_addr+4(FP), SI
	MOVL len+8(FP), DX
	MOVQ vdso_zx_ioports_release(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_job_create(parent_job uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_job_create(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL parent_job+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ out+8(FP), DX
	MOVQ vdso_zx_job_create(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_job_set_policy(handle uint32, options uint32, topic uint32, policy unsafe.Pointer, policy_size uint32) int32
TEXT runtime·vdsoCall_zx_job_set_policy(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVL topic+8(FP), DX
	MOVQ policy+16(FP), CX
	MOVL policy_size+24(FP), R8
	MOVQ vdso_zx_job_set_policy(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_job_set_critical(job uint32, options uint32, process uint32) int32
TEXT runtime·vdsoCall_zx_job_set_critical(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL job+0(FP), DI
	MOVL options+4(FP), SI
	MOVL process+8(FP), DX
	MOVQ vdso_zx_job_set_critical(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_ktrace_read(handle uint32, data unsafe.Pointer, offset uint32, data_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_ktrace_read(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ data+8(FP), SI
	MOVL offset+16(FP), DX
	MOVQ data_size+24(FP), CX
	MOVQ actual+32(FP), R8
	MOVQ vdso_zx_ktrace_read(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_ktrace_control(handle uint32, action uint32, options uint32, ptr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_ktrace_control(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL action+4(FP), SI
	MOVL options+8(FP), DX
	MOVQ ptr+16(FP), CX
	MOVQ vdso_zx_ktrace_control(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_ktrace_write(handle uint32, id uint32, arg0 uint32, arg1 uint32) int32
TEXT runtime·vdsoCall_zx_ktrace_write(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL id+4(FP), SI
	MOVL arg0+8(FP), DX
	MOVL arg1+12(FP), CX
	MOVQ vdso_zx_ktrace_write(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_nanosleep(deadline int64) int32
TEXT runtime·vdsoCall_zx_nanosleep(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ deadline+0(FP), DI
	MOVQ vdso_zx_nanosleep(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_ticks_get() int64
TEXT runtime·vdsoCall_zx_ticks_get(SB),NOSPLIT,$8-8
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_ticks_get(SB), AX
	CALL AX
	MOVQ AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_ticks_per_second() int64
TEXT runtime·vdsoCall_zx_ticks_per_second(SB),NOSPLIT,$8-8
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_ticks_per_second(SB), AX
	CALL AX
	MOVQ AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_deadline_after(nanoseconds int64) int64
TEXT runtime·vdsoCall_zx_deadline_after(SB),NOSPLIT,$8-16
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ nanoseconds+0(FP), DI
	MOVQ vdso_zx_deadline_after(SB), AX
	CALL AX
	MOVQ AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmar_unmap_handle_close_thread_exit(vmar_handle uint32, addr uintptr, size uint, close_handle uint32) int32
TEXT runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL vmar_handle+0(FP), DI
	MOVQ addr+8(FP), SI
	MOVQ size+16(FP), DX
	MOVL close_handle+24(FP), CX
	MOVQ vdso_zx_vmar_unmap_handle_close_thread_exit(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_futex_wake_handle_close_thread_exit(value_ptr unsafe.Pointer, wake_count uint32, new_value int32, close_handle uint32)
TEXT runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$8-24
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ value_ptr+0(FP), DI
	MOVL wake_count+8(FP), SI
	MOVL new_value+12(FP), DX
	MOVL close_handle+16(FP), CX
	MOVQ vdso_zx_futex_wake_handle_close_thread_exit(SB), AX
	CALL AX
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_ticks_get_via_kernel() int64
TEXT runtime·vdsoCall_zx_ticks_get_via_kernel(SB),NOSPLIT,$8-8
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_ticks_get_via_kernel(SB), AX
	CALL AX
	MOVQ AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_msi_allocate(handle uint32, count uint32, out_allocation unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_msi_allocate(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL count+4(FP), SI
	MOVQ out_allocation+8(FP), DX
	MOVQ vdso_zx_msi_allocate(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_msi_create(handle uint32, options uint32, msi_id uint32, vmo uint32, vmo_offset uint, out_interrupt unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_msi_create(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVL msi_id+8(FP), DX
	MOVL vmo+12(FP), CX
	MOVQ vmo_offset+16(FP), R8
	MOVQ out_interrupt+24(FP), R9
	MOVQ vdso_zx_msi_create(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_mtrace_control(handle uint32, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) int32
TEXT runtime·vdsoCall_zx_mtrace_control(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL kind+4(FP), SI
	MOVL action+8(FP), DX
	MOVL options+12(FP), CX
	MOVQ ptr+16(FP), R8
	MOVQ ptr_size+24(FP), R9
	MOVQ vdso_zx_mtrace_control(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_wait_one(handle uint32, signals uint32, deadline int64, observed unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_wait_one(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVL handle+0(FP), DI
	MOVL signals+4(FP), SI
	MOVQ deadline+8(FP), DX
	MOVQ observed+16(FP), CX
	MOVQ vdso_zx_object_wait_one(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_wait_many(items unsafe.Pointer, num_items uint, deadline int64) int32
TEXT runtime·vdsoCall_zx_object_wait_many(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVQ items+0(FP), DI
	MOVQ num_items+8(FP), SI
	MOVQ deadline+16(FP), DX
	MOVQ vdso_zx_object_wait_many(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_wait_async(handle uint32, port uint32, key uint64, signals uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_object_wait_async(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL port+4(FP), SI
	MOVQ key+8(FP), DX
	MOVL signals+16(FP), CX
	MOVL options+20(FP), R8
	MOVQ vdso_zx_object_wait_async(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_signal(handle uint32, clear_mask uint32, set_mask uint32) int32
TEXT runtime·vdsoCall_zx_object_signal(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL clear_mask+4(FP), SI
	MOVL set_mask+8(FP), DX
	MOVQ vdso_zx_object_signal(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_signal_peer(handle uint32, clear_mask uint32, set_mask uint32) int32
TEXT runtime·vdsoCall_zx_object_signal_peer(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL clear_mask+4(FP), SI
	MOVL set_mask+8(FP), DX
	MOVQ vdso_zx_object_signal_peer(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_get_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
TEXT runtime·vdsoCall_zx_object_get_property(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL property+4(FP), SI
	MOVQ value+8(FP), DX
	MOVQ value_size+16(FP), CX
	MOVQ vdso_zx_object_get_property(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_set_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
TEXT runtime·vdsoCall_zx_object_set_property(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL property+4(FP), SI
	MOVQ value+8(FP), DX
	MOVQ value_size+16(FP), CX
	MOVQ vdso_zx_object_set_property(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_get_info(handle uint32, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_get_info(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL topic+4(FP), SI
	MOVQ buffer+8(FP), DX
	MOVQ buffer_size+16(FP), CX
	MOVQ actual+24(FP), R8
	MOVQ avail+32(FP), R9
	MOVQ vdso_zx_object_get_info(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_get_child(handle uint32, koid uint64, rights uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_object_get_child(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ koid+8(FP), SI
	MOVL rights+16(FP), DX
	MOVQ out+24(FP), CX
	MOVQ vdso_zx_object_get_child(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_object_set_profile(handle uint32, profile uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_object_set_profile(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL profile+4(FP), SI
	MOVL options+8(FP), DX
	MOVQ vdso_zx_object_set_profile(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pager_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pager_create(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL options+0(FP), DI
	MOVQ out+8(FP), SI
	MOVQ vdso_zx_pager_create(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pager_create_vmo(pager uint32, options uint32, port uint32, key uint64, size uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pager_create_vmo(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL pager+0(FP), DI
	MOVL options+4(FP), SI
	MOVL port+8(FP), DX
	MOVQ key+16(FP), CX
	MOVQ size+24(FP), R8
	MOVQ out+32(FP), R9
	MOVQ vdso_zx_pager_create_vmo(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pager_detach_vmo(pager uint32, vmo uint32) int32
TEXT runtime·vdsoCall_zx_pager_detach_vmo(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL pager+0(FP), DI
	MOVL vmo+4(FP), SI
	MOVQ vdso_zx_pager_detach_vmo(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pager_supply_pages(pager uint32, pager_vmo uint32, offset uint64, length uint64, aux_vmo uint32, aux_offset uint64) int32
TEXT runtime·vdsoCall_zx_pager_supply_pages(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL pager+0(FP), DI
	MOVL pager_vmo+4(FP), SI
	MOVQ offset+8(FP), DX
	MOVQ length+16(FP), CX
	MOVL aux_vmo+24(FP), R8
	MOVQ aux_offset+32(FP), R9
	MOVQ vdso_zx_pager_supply_pages(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pager_op_range(pager uint32, op uint32, pager_vmo uint32, offset uint64, length uint64, data uint64) int32
TEXT runtime·vdsoCall_zx_pager_op_range(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL pager+0(FP), DI
	MOVL op+4(FP), SI
	MOVL pager_vmo+8(FP), DX
	MOVQ offset+16(FP), CX
	MOVQ length+24(FP), R8
	MOVQ data+32(FP), R9
	MOVQ vdso_zx_pager_op_range(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pc_firmware_tables(handle uint32, acpi_rsdp unsafe.Pointer, smbios unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pc_firmware_tables(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ acpi_rsdp+8(FP), SI
	MOVQ smbios+16(FP), DX
	MOVQ vdso_zx_pc_firmware_tables(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_get_nth_device(handle uint32, index uint32, out_info unsafe.Pointer, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_get_nth_device(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL index+4(FP), SI
	MOVQ out_info+8(FP), DX
	MOVQ out_handle+16(FP), CX
	MOVQ vdso_zx_pci_get_nth_device(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_enable_bus_master(handle uint32, enable uint32) int32
TEXT runtime·vdsoCall_zx_pci_enable_bus_master(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL enable+4(FP), SI
	MOVQ vdso_zx_pci_enable_bus_master(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_reset_device(handle uint32) int32
TEXT runtime·vdsoCall_zx_pci_reset_device(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vdso_zx_pci_reset_device(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_config_read(handle uint32, offset uint16, width uint, out_val unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_config_read(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ offset+4(FP), SI
	MOVQ width+8(FP), DX
	MOVQ out_val+16(FP), CX
	MOVQ vdso_zx_pci_config_read(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_config_write(handle uint32, offset uint16, width uint, val uint32) int32
TEXT runtime·vdsoCall_zx_pci_config_write(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ offset+4(FP), SI
	MOVQ width+8(FP), DX
	MOVL val+16(FP), CX
	MOVQ vdso_zx_pci_config_write(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_cfg_pio_rw(handle uint32, bus uint8, dev uint8, funk uint8, offset uint8, val unsafe.Pointer, width uint, write uint32) int32
TEXT runtime·vdsoCall_zx_pci_cfg_pio_rw(SB),NOSPLIT,$40-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 56(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 56(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ bus+4(FP), SI
	MOVQ dev+5(FP), DX
	MOVQ funk+6(FP), CX
	MOVQ offset+7(FP), R8
	MOVQ val+8(FP), R9
	MOVQ width+16(FP), R12
	MOVL write+24(FP), R13
	MOVQ SP, BP   // BP is preserved across vsdo call by the x86-64 ABI
	ANDQ $~15, SP // stack alignment for x86-64 ABI
	PUSHQ R13
	PUSHQ R12
	MOVQ vdso_zx_pci_cfg_pio_rw(SB), AX
	CALL AX
	POPQ R12
	POPQ R13
	MOVQ BP, SP
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_get_bar(handle uint32, bar_num uint32, out_bar unsafe.Pointer, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_get_bar(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL bar_num+4(FP), SI
	MOVQ out_bar+8(FP), DX
	MOVQ out_handle+16(FP), CX
	MOVQ vdso_zx_pci_get_bar(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_map_interrupt(handle uint32, which_irq int32, out_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_map_interrupt(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL which_irq+4(FP), SI
	MOVQ out_handle+8(FP), DX
	MOVQ vdso_zx_pci_map_interrupt(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_query_irq_mode(handle uint32, mode uint32, out_max_irqs unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_pci_query_irq_mode(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL mode+4(FP), SI
	MOVQ out_max_irqs+8(FP), DX
	MOVQ vdso_zx_pci_query_irq_mode(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_set_irq_mode(handle uint32, mode uint32, requested_irq_count uint32) int32
TEXT runtime·vdsoCall_zx_pci_set_irq_mode(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL mode+4(FP), SI
	MOVL requested_irq_count+8(FP), DX
	MOVQ vdso_zx_pci_set_irq_mode(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_init(handle uint32, init_buf unsafe.Pointer, len uint32) int32
TEXT runtime·vdsoCall_zx_pci_init(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ init_buf+8(FP), SI
	MOVL len+16(FP), DX
	MOVQ vdso_zx_pci_init(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pci_add_subtract_io_range(handle uint32, mmio uint32, base uint64, len uint64, add uint32) int32
TEXT runtime·vdsoCall_zx_pci_add_subtract_io_range(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL mmio+4(FP), SI
	MOVQ base+8(FP), DX
	MOVQ len+16(FP), CX
	MOVL add+24(FP), R8
	MOVQ vdso_zx_pci_add_subtract_io_range(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_pmt_unpin(handle uint32) int32
TEXT runtime·vdsoCall_zx_pmt_unpin(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vdso_zx_pmt_unpin(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_port_create(options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_create(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL options+0(FP), DI
	MOVQ out+8(FP), SI
	MOVQ vdso_zx_port_create(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_port_queue(handle uint32, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_queue(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ packet+8(FP), SI
	MOVQ vdso_zx_port_queue(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_port_wait(handle uint32, deadline int64, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_port_wait(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVL handle+0(FP), DI
	MOVQ deadline+8(FP), SI
	MOVQ packet+16(FP), DX
	MOVQ vdso_zx_port_wait(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_port_cancel(handle uint32, source uint32, key uint64) int32
TEXT runtime·vdsoCall_zx_port_cancel(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL source+4(FP), SI
	MOVQ key+8(FP), DX
	MOVQ vdso_zx_port_cancel(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_process_exit(retcode int64)
TEXT runtime·vdsoCall_zx_process_exit(SB),NOSPLIT,$8-8
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ retcode+0(FP), DI
	MOVQ vdso_zx_process_exit(SB), AX
	CALL AX
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_process_create(job uint32, name unsafe.Pointer, name_size uint, options uint32, proc_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_create(SB),NOSPLIT,$8-52
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL job+0(FP), DI
	MOVQ name+8(FP), SI
	MOVQ name_size+16(FP), DX
	MOVL options+24(FP), CX
	MOVQ proc_handle+32(FP), R8
	MOVQ vmar_handle+40(FP), R9
	MOVQ vdso_zx_process_create(SB), AX
	CALL AX
	MOVL AX, ret+48(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_process_start(handle uint32, thread uint32, entry uintptr, stack uintptr, arg1 uint32, arg2 uintptr) int32
TEXT runtime·vdsoCall_zx_process_start(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL thread+4(FP), SI
	MOVQ entry+8(FP), DX
	MOVQ stack+16(FP), CX
	MOVL arg1+24(FP), R8
	MOVQ arg2+32(FP), R9
	MOVQ vdso_zx_process_start(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_process_read_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_read_memory(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vaddr+8(FP), SI
	MOVQ buffer+16(FP), DX
	MOVQ buffer_size+24(FP), CX
	MOVQ actual+32(FP), R8
	MOVQ vdso_zx_process_read_memory(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_process_write_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_process_write_memory(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vaddr+8(FP), SI
	MOVQ buffer+16(FP), DX
	MOVQ buffer_size+24(FP), CX
	MOVQ actual+32(FP), R8
	MOVQ vdso_zx_process_write_memory(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_profile_create(root_job uint32, options uint32, profile unsafe.Pointer, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_profile_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL root_job+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ profile+8(FP), DX
	MOVQ out+16(FP), CX
	MOVQ vdso_zx_profile_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_resource_create(parent_rsrc uint32, options uint32, base uint64, size uint, name unsafe.Pointer, name_size uint, resource_out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_resource_create(SB),NOSPLIT,$32-52
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 48(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 48(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL parent_rsrc+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ base+8(FP), DX
	MOVQ size+16(FP), CX
	MOVQ name+24(FP), R8
	MOVQ name_size+32(FP), R9
	MOVQ resource_out+40(FP), R12
	MOVQ SP, BP   // BP is preserved across vsdo call by the x86-64 ABI
	ANDQ $~15, SP // stack alignment for x86-64 ABI
	PUSHQ R12
	MOVQ vdso_zx_resource_create(SB), AX
	CALL AX
	POPQ R12
	MOVQ BP, SP
	MOVL AX, ret+48(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_smc_call(handle uint32, parameters unsafe.Pointer, out_smc_result unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_smc_call(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ parameters+8(FP), SI
	MOVQ out_smc_result+16(FP), DX
	MOVQ vdso_zx_smc_call(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_socket_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL options+0(FP), DI
	MOVQ out0+8(FP), SI
	MOVQ out1+16(FP), DX
	MOVQ vdso_zx_socket_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_socket_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_write(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ buffer+8(FP), DX
	MOVQ buffer_size+16(FP), CX
	MOVQ actual+24(FP), R8
	MOVQ vdso_zx_socket_write(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_socket_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_socket_read(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ buffer+8(FP), DX
	MOVQ buffer_size+16(FP), CX
	MOVQ actual+24(FP), R8
	MOVQ vdso_zx_socket_read(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_socket_shutdown(handle uint32, options uint32) int32
TEXT runtime·vdsoCall_zx_socket_shutdown(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ vdso_zx_socket_shutdown(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_stream_create(options uint32, vmo uint32, seek uint64, out_stream unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL options+0(FP), DI
	MOVL vmo+4(FP), SI
	MOVQ seek+8(FP), DX
	MOVQ out_stream+16(FP), CX
	MOVQ vdso_zx_stream_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_stream_writev(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_writev(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ vector+8(FP), DX
	MOVQ num_vector+16(FP), CX
	MOVQ actual+24(FP), R8
	MOVQ vdso_zx_stream_writev(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_stream_writev_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_writev_at(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ offset+8(FP), DX
	MOVQ vector+16(FP), CX
	MOVQ num_vector+24(FP), R8
	MOVQ actual+32(FP), R9
	MOVQ vdso_zx_stream_writev_at(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_stream_readv(handle uint32, options uint32, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_readv(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ vector+8(FP), DX
	MOVQ num_vector+16(FP), CX
	MOVQ actual+24(FP), R8
	MOVQ vdso_zx_stream_readv(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_stream_readv_at(handle uint32, options uint32, offset uint64, vector unsafe.Pointer, num_vector uint, actual unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_readv_at(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ offset+8(FP), DX
	MOVQ vector+16(FP), CX
	MOVQ num_vector+24(FP), R8
	MOVQ actual+32(FP), R9
	MOVQ vdso_zx_stream_readv_at(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_stream_seek(handle uint32, whence uint32, offset int64, out_seek unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_stream_seek(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL whence+4(FP), SI
	MOVQ offset+8(FP), DX
	MOVQ out_seek+16(FP), CX
	MOVQ vdso_zx_stream_seek(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_0() int32
TEXT runtime·vdsoCall_zx_syscall_test_0(SB),NOSPLIT,$8-4
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_syscall_test_0(SB), AX
	CALL AX
	MOVL AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_1(a int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_1(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL a+0(FP), DI
	MOVQ vdso_zx_syscall_test_1(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_2(a int32, b int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_2(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL a+0(FP), DI
	MOVL b+4(FP), SI
	MOVQ vdso_zx_syscall_test_2(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_3(a int32, b int32, c int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_3(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL a+0(FP), DI
	MOVL b+4(FP), SI
	MOVL c+8(FP), DX
	MOVQ vdso_zx_syscall_test_3(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_4(a int32, b int32, c int32, d int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_4(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL a+0(FP), DI
	MOVL b+4(FP), SI
	MOVL c+8(FP), DX
	MOVL d+12(FP), CX
	MOVQ vdso_zx_syscall_test_4(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_5(a int32, b int32, c int32, d int32, e int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_5(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL a+0(FP), DI
	MOVL b+4(FP), SI
	MOVL c+8(FP), DX
	MOVL d+12(FP), CX
	MOVL e+16(FP), R8
	MOVQ vdso_zx_syscall_test_5(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_6(a int32, b int32, c int32, d int32, e int32, f int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_6(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL a+0(FP), DI
	MOVL b+4(FP), SI
	MOVL c+8(FP), DX
	MOVL d+12(FP), CX
	MOVL e+16(FP), R8
	MOVL f+20(FP), R9
	MOVQ vdso_zx_syscall_test_6(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_7(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_7(SB),NOSPLIT,$32-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 48(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 48(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL a+0(FP), DI
	MOVL b+4(FP), SI
	MOVL c+8(FP), DX
	MOVL d+12(FP), CX
	MOVL e+16(FP), R8
	MOVL f+20(FP), R9
	MOVL g_+24(FP), R12
	MOVQ SP, BP   // BP is preserved across vsdo call by the x86-64 ABI
	ANDQ $~15, SP // stack alignment for x86-64 ABI
	PUSHQ R12
	MOVQ vdso_zx_syscall_test_7(SB), AX
	CALL AX
	POPQ R12
	MOVQ BP, SP
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_8(a int32, b int32, c int32, d int32, e int32, f int32, g_ int32, h int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_8(SB),NOSPLIT,$40-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 56(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 56(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL a+0(FP), DI
	MOVL b+4(FP), SI
	MOVL c+8(FP), DX
	MOVL d+12(FP), CX
	MOVL e+16(FP), R8
	MOVL f+20(FP), R9
	MOVL g_+24(FP), R12
	MOVL h+28(FP), R13
	MOVQ SP, BP   // BP is preserved across vsdo call by the x86-64 ABI
	ANDQ $~15, SP // stack alignment for x86-64 ABI
	PUSHQ R13
	PUSHQ R12
	MOVQ vdso_zx_syscall_test_8(SB), AX
	CALL AX
	POPQ R12
	POPQ R13
	MOVQ BP, SP
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_wrapper(a int32, b int32, c int32) int32
TEXT runtime·vdsoCall_zx_syscall_test_wrapper(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL a+0(FP), DI
	MOVL b+4(FP), SI
	MOVL c+8(FP), DX
	MOVQ vdso_zx_syscall_test_wrapper(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_syscall_test_handle_create(return_value int32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_syscall_test_handle_create(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL return_value+0(FP), DI
	MOVQ out+8(FP), SI
	MOVQ vdso_zx_syscall_test_handle_create(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_system_get_dcache_line_size() uint32
TEXT runtime·vdsoCall_zx_system_get_dcache_line_size(SB),NOSPLIT,$8-4
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_system_get_dcache_line_size(SB), AX
	CALL AX
	MOVL AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_system_get_num_cpus() uint32
TEXT runtime·vdsoCall_zx_system_get_num_cpus(SB),NOSPLIT,$8-4
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_system_get_num_cpus(SB), AX
	CALL AX
	MOVL AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_system_get_version_string() unsafe.Pointer
TEXT runtime·vdsoCall_zx_system_get_version_string(SB),NOSPLIT,$8-8
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_system_get_version_string(SB), AX
	CALL AX
	MOVQ AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_system_get_physmem() uint64
TEXT runtime·vdsoCall_zx_system_get_physmem(SB),NOSPLIT,$8-8
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_system_get_physmem(SB), AX
	CALL AX
	MOVQ AX, ret+0(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_system_get_features(kind uint32, features unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_get_features(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL kind+0(FP), DI
	MOVQ features+8(FP), SI
	MOVQ vdso_zx_system_get_features(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_system_get_event(root_job uint32, kind uint32, event unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_get_event(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL root_job+0(FP), DI
	MOVL kind+4(FP), SI
	MOVQ event+8(FP), DX
	MOVQ vdso_zx_system_get_event(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_system_mexec(resource uint32, kernel_vmo uint32, bootimage_vmo uint32) int32
TEXT runtime·vdsoCall_zx_system_mexec(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVL kernel_vmo+4(FP), SI
	MOVL bootimage_vmo+8(FP), DX
	MOVQ vdso_zx_system_mexec(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_system_mexec_payload_get(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_system_mexec_payload_get(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVQ buffer+8(FP), SI
	MOVQ buffer_size+16(FP), DX
	MOVQ vdso_zx_system_mexec_payload_get(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_system_powerctl(resource uint32, cmd uint32, arg unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_system_powerctl(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVL cmd+4(FP), SI
	MOVQ arg+8(FP), DX
	MOVQ vdso_zx_system_powerctl(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_task_suspend(handle uint32, token unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_suspend(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ token+8(FP), SI
	MOVQ vdso_zx_task_suspend(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_task_suspend_token(handle uint32, token unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_suspend_token(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ token+8(FP), SI
	MOVQ vdso_zx_task_suspend_token(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_task_create_exception_channel(handle uint32, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_task_create_exception_channel(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ out+8(FP), DX
	MOVQ vdso_zx_task_create_exception_channel(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_task_kill(handle uint32) int32
TEXT runtime·vdsoCall_zx_task_kill(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vdso_zx_task_kill(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_thread_exit()
TEXT runtime·vdsoCall_zx_thread_exit(SB),NOSPLIT,$8-0
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ vdso_zx_thread_exit(SB), AX
	CALL AX
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_thread_create(process uint32, name unsafe.Pointer, name_size uint, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_thread_create(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL process+0(FP), DI
	MOVQ name+8(FP), SI
	MOVQ name_size+16(FP), DX
	MOVL options+24(FP), CX
	MOVQ out+32(FP), R8
	MOVQ vdso_zx_thread_create(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_thread_start(handle uint32, thread_entry uintptr, stack uintptr, arg1 uintptr, arg2 uintptr) int32
TEXT runtime·vdsoCall_zx_thread_start(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ thread_entry+8(FP), SI
	MOVQ stack+16(FP), DX
	MOVQ arg1+24(FP), CX
	MOVQ arg2+32(FP), R8
	MOVQ vdso_zx_thread_start(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_thread_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_thread_read_state(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL kind+4(FP), SI
	MOVQ buffer+8(FP), DX
	MOVQ buffer_size+16(FP), CX
	MOVQ vdso_zx_thread_read_state(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_thread_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_thread_write_state(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL kind+4(FP), SI
	MOVQ buffer+8(FP), DX
	MOVQ buffer_size+16(FP), CX
	MOVQ vdso_zx_thread_write_state(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_timer_create(options uint32, clock_id uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_timer_create(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL options+0(FP), DI
	MOVL clock_id+4(FP), SI
	MOVQ out+8(FP), DX
	MOVQ vdso_zx_timer_create(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_timer_set(handle uint32, deadline int64, slack int64) int32
TEXT runtime·vdsoCall_zx_timer_set(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ deadline+8(FP), SI
	MOVQ slack+16(FP), DX
	MOVQ vdso_zx_timer_set(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_timer_cancel(handle uint32) int32
TEXT runtime·vdsoCall_zx_timer_cancel(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vdso_zx_timer_cancel(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vcpu_create(guest uint32, options uint32, entry uintptr, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vcpu_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL guest+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ entry+8(FP), DX
	MOVQ out+16(FP), CX
	MOVQ vdso_zx_vcpu_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vcpu_resume(handle uint32, packet unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vcpu_resume(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVL handle+0(FP), DI
	MOVQ packet+8(FP), SI
	MOVQ vdso_zx_vcpu_resume(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vcpu_interrupt(handle uint32, vector uint32) int32
TEXT runtime·vdsoCall_zx_vcpu_interrupt(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL vector+4(FP), SI
	MOVQ vdso_zx_vcpu_interrupt(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vcpu_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vcpu_read_state(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL kind+4(FP), SI
	MOVQ buffer+8(FP), DX
	MOVQ buffer_size+16(FP), CX
	MOVQ vdso_zx_vcpu_read_state(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vcpu_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vcpu_write_state(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL kind+4(FP), SI
	MOVQ buffer+8(FP), DX
	MOVQ buffer_size+16(FP), CX
	MOVQ vdso_zx_vcpu_write_state(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmar_allocate(parent_vmar uint32, options uint32, offset uint, size uint, child_vmar unsafe.Pointer, child_addr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmar_allocate(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL parent_vmar+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ offset+8(FP), DX
	MOVQ size+16(FP), CX
	MOVQ child_vmar+24(FP), R8
	MOVQ child_addr+32(FP), R9
	MOVQ vdso_zx_vmar_allocate(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmar_destroy(handle uint32) int32
TEXT runtime·vdsoCall_zx_vmar_destroy(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ vdso_zx_vmar_destroy(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmar_map(handle uint32, options uint32, vmar_offset uint, vmo uint32, vmo_offset uint64, len uint, mapped_addr unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmar_map(SB),NOSPLIT,$32-52
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 48(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 48(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ vmar_offset+8(FP), DX
	MOVL vmo+16(FP), CX
	MOVQ vmo_offset+24(FP), R8
	MOVQ len+32(FP), R9
	MOVQ mapped_addr+40(FP), R12
	MOVQ SP, BP   // BP is preserved across vsdo call by the x86-64 ABI
	ANDQ $~15, SP // stack alignment for x86-64 ABI
	PUSHQ R12
	MOVQ vdso_zx_vmar_map(SB), AX
	CALL AX
	POPQ R12
	MOVQ BP, SP
	MOVL AX, ret+48(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmar_unmap(handle uint32, addr uintptr, len uint) int32
TEXT runtime·vdsoCall_zx_vmar_unmap(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ addr+8(FP), SI
	MOVQ len+16(FP), DX
	MOVQ vdso_zx_vmar_unmap(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmar_protect(handle uint32, options uint32, addr uintptr, len uint) int32
TEXT runtime·vdsoCall_zx_vmar_protect(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ addr+8(FP), DX
	MOVQ len+16(FP), CX
	MOVQ vdso_zx_vmar_protect(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmar_op_range(handle uint32, op uint32, address uintptr, size uint, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmar_op_range(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL op+4(FP), SI
	MOVQ address+8(FP), DX
	MOVQ size+16(FP), CX
	MOVQ buffer+24(FP), R8
	MOVQ buffer_size+32(FP), R9
	MOVQ vdso_zx_vmar_op_range(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_create(size uint64, options uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create(SB),NOSPLIT,$8-28
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVQ size+0(FP), DI
	MOVL options+8(FP), SI
	MOVQ out+16(FP), DX
	MOVQ vdso_zx_vmo_create(SB), AX
	CALL AX
	MOVL AX, ret+24(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_read(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_read(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVL handle+0(FP), DI
	MOVQ buffer+8(FP), SI
	MOVQ offset+16(FP), DX
	MOVQ buffer_size+24(FP), CX
	MOVQ vdso_zx_vmo_read(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_write(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_write(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVL handle+0(FP), DI
	MOVQ buffer+8(FP), SI
	MOVQ offset+16(FP), DX
	MOVQ buffer_size+24(FP), CX
	MOVQ vdso_zx_vmo_write(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_get_size(handle uint32, size unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_get_size(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ size+8(FP), SI
	MOVQ vdso_zx_vmo_get_size(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_set_size(handle uint32, size uint64) int32
TEXT runtime·vdsoCall_zx_vmo_set_size(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVQ size+8(FP), SI
	MOVQ vdso_zx_vmo_set_size(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_op_range(handle uint32, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) int32
TEXT runtime·vdsoCall_zx_vmo_op_range(SB),NOSPLIT,$8-44
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	CALL runtime·entersyscall(SB)
	MOVL handle+0(FP), DI
	MOVL op+4(FP), SI
	MOVQ offset+8(FP), DX
	MOVQ size+16(FP), CX
	MOVQ buffer+24(FP), R8
	MOVQ buffer_size+32(FP), R9
	MOVQ vdso_zx_vmo_op_range(SB), AX
	CALL AX
	MOVL AX, ret+40(FP)
	CALL runtime·exitsyscall(SB)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_create_child(handle uint32, options uint32, offset uint64, size uint64, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_child(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL options+4(FP), SI
	MOVQ offset+8(FP), DX
	MOVQ size+16(FP), CX
	MOVQ out+24(FP), R8
	MOVQ vdso_zx_vmo_create_child(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_set_cache_policy(handle uint32, cache_policy uint32) int32
TEXT runtime·vdsoCall_zx_vmo_set_cache_policy(SB),NOSPLIT,$8-12
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL cache_policy+4(FP), SI
	MOVQ vdso_zx_vmo_set_cache_policy(SB), AX
	CALL AX
	MOVL AX, ret+8(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_replace_as_executable(handle uint32, vmex uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_replace_as_executable(SB),NOSPLIT,$8-20
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL handle+0(FP), DI
	MOVL vmex+4(FP), SI
	MOVQ out+8(FP), DX
	MOVQ vdso_zx_vmo_replace_as_executable(SB), AX
	CALL AX
	MOVL AX, ret+16(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_create_contiguous(bti uint32, size uint, alignment_log2 uint32, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_contiguous(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL bti+0(FP), DI
	MOVQ size+8(FP), SI
	MOVL alignment_log2+16(FP), DX
	MOVQ out+24(FP), CX
	MOVQ vdso_zx_vmo_create_contiguous(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

// func vdsoCall_zx_vmo_create_physical(resource uint32, paddr uintptr, size uint, out unsafe.Pointer) int32
TEXT runtime·vdsoCall_zx_vmo_create_physical(SB),NOSPLIT,$8-36
	GO_ARGS
	NO_LOCAL_POINTERS
	get_tls(CX)
	MOVQ g(CX), AX
	MOVQ g_m(AX), R14
	PUSHQ R14
	MOVQ 24(SP), DX
	MOVQ DX, m_vdsoPC(R14)
	LEAQ 24(SP), DX
	MOVQ DX, m_vdsoSP(R14)
	MOVL resource+0(FP), DI
	MOVQ paddr+8(FP), SI
	MOVQ size+16(FP), DX
	MOVQ out+24(FP), CX
	MOVQ vdso_zx_vmo_create_physical(SB), AX
	CALL AX
	MOVL AX, ret+32(FP)
	POPQ R14
	MOVQ $0, m_vdsoSP(R14)
	RET

----- go-vdso-x86-calls.s END -----


----- json.json START -----
{
  "syscalls": [
    {
      "name": "bti_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "new", "bus", "transaction", "initiator", "."
      ],
      "requirements": [
        "iommu", "must", "be", "of", "type", "ZX_OBJ_TYPE_IOMMU", "and", "have", "ZX_RIGHT_NONE", "."
      ],
      "arguments": [
        {
          "name": "iommu",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "bti_id",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "bti_pin",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Pin", "pages", "and", "grant", "devices", "access", "to", "them", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_BTI", "and", "have", "ZX_RIGHT_MAP", ".",
        "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_MAP", ".",
        "If", "options", "&", "ZX_BTI_PERM_READ", ",", "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", ".",
        "If", "options", "&", "ZX_BTI_PERM_WRITE", ",", "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", ".",
        "If", "options", "&", "ZX_BTI_PERM_EXECUTE", ",", "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "addrs",
          "type": "zx_paddr_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "num_addrs",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "pmt",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "bti_release_quarantine",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Releases", "all", "quarantined", "PMTs", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_BTI", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "cache_flush",
      "attributes": [
        "*",
        "vdsocall"
      ],
      "top_description": [
        "Flush", "CPU", "data", "and", "/", "or", "instruction", "caches", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "addr",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "channel", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out0",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "out1",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_read",
      "attributes": [
        "*",
        "handle_unchecked"
      ],
      "top_description": [
        "Read", "a", "message", "from", "a", "channel", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "bytes",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "handles",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "num_bytes",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "num_handles",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual_bytes",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_handles",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_read_etc",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "a", "message", "from", "a", "channel", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "bytes",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "handles",
          "type": "zx_handle_info_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "num_bytes",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "num_handles",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual_bytes",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_handles",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_write",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "a", "message", "to", "a", "channel", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_WRITE", ".",
        "Every", "entry", "of", "handles", "must", "have", "ZX_RIGHT_TRANSFER", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "bytes",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "num_bytes",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "handles",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "num_handles",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_write_etc",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "a", "message", "to", "a", "channel", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_WRITE", ".",
        "Every", "entry", "of", "handles", "must", "have", "ZX_RIGHT_TRANSFER", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "bytes",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "num_bytes",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "handles",
          "type": "zx_handle_disposition_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "num_handles",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_call_noretry",
      "attributes": [
        "*",
        "internal"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", ".",
        "All", "wr_handles", "of", "args", "must", "have", "ZX_RIGHT_TRANSFER", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "args",
          "type": "zx_channel_call_args_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "actual_bytes",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_handles",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_call_finish",
      "attributes": [
        "*",
        "internal"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "args",
          "type": "zx_channel_call_args_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "actual_bytes",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_handles",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_call",
      "attributes": [
        "*",
        "blocking",
        "vdsocall"
      ],
      "top_description": [
        "Send", "a", "message", "to", "a", "channel", "and", "await", "a", "reply", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", ".",
        "All", "wr_handles", "of", "args", "must", "have", "ZX_RIGHT_TRANSFER", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "args",
          "type": "zx_channel_call_args_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "actual_bytes",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_handles",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_call_etc_noretry",
      "attributes": [
        "*",
        "internal"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", ".",
        "All", "wr_handles", "of", "args", "must", "have", "ZX_RIGHT_TRANSFER", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "args",
          "type": "zx_channel_call_etc_args_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_bytes",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_handles",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_call_etc_finish",
      "attributes": [
        "*",
        "internal"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "args",
          "type": "zx_channel_call_etc_args_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_bytes",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_handles",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "channel_call_etc",
      "attributes": [
        "*",
        "blocking",
        "vdsocall"
      ],
      "top_description": [
        "Send", "a", "message", "to", "a", "channel", "and", "await", "a", "reply", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CHANNEL", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", ".",
        "All", "wr_handles", "of", "args", "must", "have", "ZX_RIGHT_TRANSFER", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "args",
          "type": "zx_channel_call_etc_args_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_bytes",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "actual_handles",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "clock_get",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Acquire", "the", "current", "time", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "clock_id",
          "type": "zx_clock_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_time_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "clock_get_monotonic",
      "attributes": [
        "*",
        "vdsocall"
      ],
      "top_description": [
        "Acquire", "the", "current", "monotonic", "time", "."
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "zx_time_t"
    },
    {
      "name": "clock_adjust",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "clock_id",
          "type": "zx_clock_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "int64_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "clock_get_monotonic_via_kernel",
      "attributes": [
        "*",
        "internal"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "zx_time_t"
    },
    {
      "name": "clock_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "new", "clock", "object", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "options",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "args",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "clock_read",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Perform", "a", "basic", "read", "of", "the", "clock", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CLOCK", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "now",
          "type": "zx_time_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "clock_get_details",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Fetch", "all", "of", "the", "low", "level", "details", "of", "the", "clock", "'", "s", "current", "status", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CLOCK", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "details",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "clock_update",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Make", "adjustments", "to", "a", "clock", "object", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_CLOCK", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "args",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "cprng_draw_once",
      "attributes": [
        "*",
        "internal"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "cprng_draw",
      "attributes": [
        "*",
        "vdsocall"
      ],
      "top_description": [
        "Draw", "from", "the", "kernel", "'", "s", "CPRNG", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "void"
    },
    {
      "name": "cprng_add_entropy",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Add", "entropy", "to", "the", "kernel", "CPRNG", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "debug_read",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "a", "message", "from", "the", "debug", "serial", "port", "."
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "char",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "debug_write",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "a", "message", "to", "the", "debug", "serial", "port", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "buffer",
          "type": "char",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "debug_send_command",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "char",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "debuglog_create",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "debuglog_write",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_LOG", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "debuglog_read",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_LOG", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "event_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "an", "event", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "eventpair_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "an", "event", "pair", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out0",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "out1",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "exception_get_thread",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "handle", "for", "the", "exception", "'", "s", "thread", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_EXCEPTION", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "exception_get_process",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "handle", "for", "the", "exception", "'", "s", "process", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_EXCEPTION", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "fifo_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "fifo", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "elem_count",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "elem_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out0",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "out1",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "fifo_read",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "data", "from", "a", "fifo", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_FIFO", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "elem_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "data",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "data_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual_count",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "fifo_write",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "data", "to", "a", "fifo", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_FIFO", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "elem_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "data",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "count",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual_count",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "framebuffer_get_info",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "format",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "width",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "height",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "stride",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "framebuffer_set_range",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "len",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "format",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "width",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "height",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "stride",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "futex_wait",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Wait", "on", "a", "futex", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "value_ptr",
          "type": "zx_futex_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "current_value",
          "type": "zx_futex_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "new_futex_owner",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "futex_wake",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Wake", "some", "number", "of", "threads", "waiting", "on", "a", "futex", ",", "and", "set", "the", "ownership", "of", "the", "futex", "to", "nothing", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "value_ptr",
          "type": "zx_futex_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "wake_count",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "futex_requeue",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Wake", "some", "number", "of", "threads", "waiting", "on", "a", "futex", ",", "and", "move", "more", "waiters", "to", "another", "wait", "queue", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "value_ptr",
          "type": "zx_futex_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "wake_count",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "current_value",
          "type": "zx_futex_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "requeue_ptr",
          "type": "zx_futex_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "requeue_count",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "new_requeue_owner",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "futex_wake_single_owner",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Wake", "one", "thread", "waiting", "on", "a", "futex", ",", "and", "set", "the", "ownership", "of", "the", "futex", "to", "that", "thread", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "value_ptr",
          "type": "zx_futex_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "futex_requeue_single_owner",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Wake", "one", "thread", "waiting", "on", "a", "futex", ",", "and", "requeue", "more", "waiters", "to", "another", "futex", "wait", "queue", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "value_ptr",
          "type": "zx_futex_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "current_value",
          "type": "zx_futex_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "requeue_ptr",
          "type": "zx_futex_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "requeue_count",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "new_requeue_owner",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "futex_get_owner",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Fetch", "the", "koid", "current", "owner", "of", "a", "futex", ",", "if", "any", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "value_ptr",
          "type": "zx_futex_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "koid",
          "type": "zx_koid_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "guest_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "guest", "."
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_HYPERVISOR", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "guest_handle",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "vmar_handle",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "guest_set_trap",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Sets", "a", "trap", "within", "a", "guest", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_GUEST", "and", "have", "ZX_RIGHT_WRITE", ".",
        "port_handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "kind",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "addr",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "port_handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "key",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "handle_close",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Close", "a", "handle", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "handle_close_many",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Close", "a", "number", "of", "handles", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "handles",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "num_handles",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "handle_duplicate",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Duplicate", "a", "handle", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_DUPLICATE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "rights",
          "type": "zx_rights_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "handle_replace",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Replace", "a", "handle", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "rights",
          "type": "zx_rights_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "interrupt_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "an", "interrupt", "object", "."
      ],
      "requirements": [
        "src_obj", "must", "have", "resource", "kind", "ZX_RSRC_KIND_IRQ", "."
      ],
      "arguments": [
        {
          "name": "src_obj",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "src_num",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_handle",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "interrupt_bind",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Bind", "an", "interrupt", "object", "to", "a", "port", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_READ", ".",
        "port_handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "port_handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "key",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "interrupt_wait",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Wait", "for", "an", "interrupt", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_WAIT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_timestamp",
          "type": "zx_time_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "interrupt_destroy",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Destroys", "an", "interrupt", "object", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "interrupt_ack",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Acknowledge", "an", "interrupt", "and", "re", "-", "arm", "it", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "interrupt_trigger",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Triggers", "a", "virtual", "interrupt", "object", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_SIGNAL", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "timestamp",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "interrupt_bind_vcpu",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Bind", "an", "interrupt", "object", "to", "a", "VCPU", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_INTERRUPT", "and", "have", "ZX_RIGHT_READ", ".",
        "vcpu", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vcpu",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "iommu_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "new", "IOMMU", "object", "in", "the", "kernel", "."
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "type",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "desc",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "desc_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "ioports_request",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_IOPORT", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "io_addr",
          "type": "uint16_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "len",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "ioports_release",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_IOPORT", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "io_addr",
          "type": "uint16_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "len",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "job_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "new", "job", "."
      ],
      "requirements": [
        "parent_job", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_MANAGE_JOB", "."
      ],
      "arguments": [
        {
          "name": "parent_job",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "job_set_policy",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Set", "job", "security", "and", "resource", "policies", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_SET_POLICY", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "topic",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "policy",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "policy_size",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "job_set_critical",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Set", "a", "process", "as", "critical", "to", "a", "job", "."
      ],
      "requirements": [
        "job", "must", "have", "ZX_RIGHT_DESTROY", ".",
        "process", "must", "have", "ZX_RIGHT_WAIT", "."
      ],
      "arguments": [
        {
          "name": "job",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "process",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "ktrace_read",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "data",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "data_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "ktrace_control",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "action",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "ptr",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "ktrace_write",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "id",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "arg0",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "arg1",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "nanosleep",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "High", "resolution", "sleep", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "ticks_get",
      "attributes": [
        "*",
        "vdsocall"
      ],
      "top_description": [
        "Read", "the", "number", "of", "high", "-", "precision", "timer", "ticks", "since", "boot", "."
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "zx_ticks_t"
    },
    {
      "name": "ticks_per_second",
      "attributes": [
        "*",
        "const",
        "vdsocall"
      ],
      "top_description": [
        "Read", "the", "number", "of", "high", "-", "precision", "timer", "ticks", "in", "a", "second", "."
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "zx_ticks_t"
    },
    {
      "name": "deadline_after",
      "attributes": [
        "*",
        "vdsocall"
      ],
      "top_description": [
        "Convert", "a", "time", "relative", "to", "now", "to", "an", "absolute", "deadline", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "nanoseconds",
          "type": "zx_duration_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_time_t"
    },
    {
      "name": "vmar_unmap_handle_close_thread_exit",
      "attributes": [
        "*",
        "vdsocall"
      ],
      "top_description": [
        "Unmap", "memory", ",", "close", "handle", ",", "exit", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "vmar_handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "addr",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "close_handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "futex_wake_handle_close_thread_exit",
      "attributes": [
        "*",
        "noreturn",
        "vdsocall"
      ],
      "top_description": [
        "Write", "to", "futex", ",", "wake", "futex", ",", "close", "handle", ",", "exit", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "value_ptr",
          "type": "zx_futex_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "wake_count",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "new_value",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "close_handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "void"
    },
    {
      "name": "ticks_get_via_kernel",
      "attributes": [
        "*",
        "internal"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "zx_ticks_t"
    },
    {
      "name": "msi_allocate",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Allocate", "Message", "-", "Signaled", "Interrupts", "(", "MSIs", ")", "."
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "count",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_allocation",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "msi_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "an", "Interrupt", "object", "from", "a", "Messaged", "-", "Signaled", "Interrupt", "(", "MSI", ")", "allocation", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_MSI", ".",
        "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", ".",
        "vmo", "must", "have", "ZX_RIGHT_MAP", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "msi_id",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmo_offset",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_interrupt",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "mtrace_control",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "kind",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "action",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "ptr",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "ptr_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_wait_one",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Wait", "for", "signals", "on", "an", "object", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_WAIT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "signals",
          "type": "zx_signals_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "observed",
          "type": "zx_signals_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_wait_many",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Wait", "for", "signals", "on", "multiple", "objects", "."
      ],
      "requirements": [
        "Every", "entry", "of", "items", "must", "have", "a", "handle", "field", "with", "ZX_RIGHT_WAIT", "."
      ],
      "arguments": [
        {
          "name": "items",
          "type": "zx_wait_item_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "num_items",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_wait_async",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Subscribe", "for", "signals", "on", "an", "object", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_WAIT", ".",
        "port", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "port",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "key",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "signals",
          "type": "zx_signals_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_signal",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Signal", "an", "object", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_SIGNAL", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "clear_mask",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "set_mask",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_signal_peer",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Signal", "an", "object", "'", "s", "peer", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_SIGNAL_PEER", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "clear_mask",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "set_mask",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_get_property",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Ask", "for", "various", "properties", "of", "various", "kernel", "objects", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_GET_PROPERTY", ".",
        "If", "property", "is", "ZX_PROP_PROCESS_DEBUG_ADDR", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
        "If", "property", "is", "ZX_PROP_PROCESS_BREAK_ON_LOAD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
        "If", "property", "is", "ZX_PROP_PROCESS_VDSO_BASE_ADDRESS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
        "If", "property", "is", "ZX_PROP_SOCKET_RX_THRESHOLD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", ".",
        "If", "property", "is", "ZX_PROP_SOCKET_TX_THRESHOLD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "property",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "value",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "value_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_set_property",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Set", "various", "properties", "of", "various", "kernel", "objects", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_SET_PROPERTY", ".",
        "If", "property", "is", "ZX_PROP_PROCESS_DEBUG_ADDR", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
        "If", "property", "is", "ZX_PROP_PROCESS_BREAK_ON_LOAD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", ".",
        "If", "property", "is", "ZX_PROP_SOCKET_RX_THRESHOLD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", ".",
        "If", "property", "is", "ZX_PROP_SOCKET_TX_THRESHOLD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", ".",
        "If", "property", "is", "ZX_PROP_JOB_KILL_ON_OOM", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "property",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "value",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "value_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_get_info",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Query", "information", "about", "an", "object", "."
      ],
      "requirements": [
        "If", "topic", "is", "ZX_INFO_PROCESS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_JOB", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_PROCESS_THREADS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_ENUMERATE", ".",
        "If", "topic", "is", "ZX_INFO_JOB_CHILDREN", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_ENUMERATE", ".",
        "If", "topic", "is", "ZX_INFO_JOB_PROCESSES", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_ENUMERATE", ".",
        "If", "topic", "is", "ZX_INFO_THREAD", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_THREAD_EXCEPTION_REPORT", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_THREAD_STATS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_TASK_STATS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_PROCESS_MAPS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_PROCESS_VMOS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_VMO", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", ".",
        "If", "topic", "is", "ZX_INFO_VMAR", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_CPU_STATS", ",", "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", ".",
        "If", "topic", "is", "ZX_INFO_KMEM_STATS", ",", "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", ".",
        "If", "topic", "is", "ZX_INFO_RESOURCE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_RESOURCE", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_HANDLE_COUNT", ",", "handle", "must", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_BTI", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_BTI", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_PROCESS_HANDLE_STATS", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_SOCKET", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_MSI", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_MSI", "and", "have", "ZX_RIGHT_INSPECT", ".",
        "If", "topic", "is", "ZX_INFO_TASK_RUNTIME", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", ",", "ZX_OBJ_TYPE_PROCESS", ",", "or", "ZX_OBJ_TYPE_JOB", ",", "and", "have", "ZX_RIGHT_INSPECT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "topic",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "avail",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_get_child",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Given", "a", "kernel", "object", "with", "children", "objects", ",", "obtain", "a", "handle", "to", "the", "child", "specified", "by", "the", "provided", "kernel", "object", "id", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_ENUMERATE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "koid",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "rights",
          "type": "zx_rights_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "object_set_profile",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Apply", "a", "scheduling", "profile", "to", "a", "thread", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_MANAGE_THREAD", ".",
        "profile", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROFILE", "and", "have", "ZX_RIGHT_APPLY_PROFILE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "profile",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pager_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "new", "pager", "object", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pager_create_vmo",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "pager", "owned", "vmo", "."
      ],
      "requirements": [
        "pager", "must", "be", "of", "type", "ZX_OBJ_TYPE_PAGER", ".",
        "port", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "pager",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "port",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "key",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pager_detach_vmo",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Detaches", "a", "vmo", "from", "a", "pager", "."
      ],
      "requirements": [
        "pager", "must", "be", "of", "type", "ZX_OBJ_TYPE_PAGER", ".",
        "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "."
      ],
      "arguments": [
        {
          "name": "pager",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pager_supply_pages",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Supply", "pages", "into", "a", "pager", "owned", "vmo", "."
      ],
      "requirements": [
        "pager", "must", "be", "of", "type", "ZX_OBJ_TYPE_PAGER", ".",
        "pager_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", ".",
        "aux_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "pager",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "pager_vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "length",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "aux_vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "aux_offset",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pager_op_range",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Perform", "an", "operation", "on", "a", "range", "of", "a", "pager", "owned", "vmo", "."
      ],
      "requirements": [
        "pager", "must", "be", "of", "type", "ZX_OBJ_TYPE_PAGER", ".",
        "pager_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "."
      ],
      "arguments": [
        {
          "name": "pager",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "op",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "pager_vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "length",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "data",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pc_firmware_tables",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "acpi_rsdp",
          "type": "zx_paddr_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "smbios",
          "type": "zx_paddr_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_get_nth_device",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "index",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_info",
          "type": "zx_pcie_device_info_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "out_handle",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_enable_bus_master",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "enable",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_reset_device",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_config_read",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint16_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "width",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_val",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_config_write",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint16_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "width",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "val",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_cfg_pio_rw",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "bus",
          "type": "uint8_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "dev",
          "type": "uint8_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "func",
          "type": "uint8_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint8_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "val",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "width",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "write",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_get_bar",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "bar_num",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_bar",
          "type": "zx_pci_bar_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "out_handle",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_map_interrupt",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "which_irq",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_handle",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_query_irq_mode",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "mode",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_max_irqs",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_set_irq_mode",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PCI_DEVICE", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "mode",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "requested_irq_count",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_init",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "init_buf",
          "type": "zx_pci_init_arg_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "len",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pci_add_subtract_io_range",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "mmio",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "base",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "len",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "add",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "pmt_unpin",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Unpin", "pages", "and", "revoke", "device", "access", "to", "them", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "port_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "an", "IO", "port", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "port_queue",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Queue", "a", "packet", "to", "a", "port", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "packet",
          "type": "zx_port_packet_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "port_wait",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Wait", "for", "a", "packet", "arrival", "in", "a", "port", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "packet",
          "type": "zx_port_packet_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "port_cancel",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Cancels", "async", "port", "notifications", "on", "an", "object", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PORT", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "source",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "key",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "process_exit",
      "attributes": [
        "*",
        "noreturn"
      ],
      "top_description": [
        "Exits", "the", "currently", "running", "process", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "retcode",
          "type": "int64_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "void"
    },
    {
      "name": "process_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "new", "process", "."
      ],
      "requirements": [
        "job", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_MANAGE_PROCESS", "."
      ],
      "arguments": [
        {
          "name": "job",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "name",
          "type": "char",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "name_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "proc_handle",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "vmar_handle",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "process_start",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Start", "execution", "on", "a", "process", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_WRITE", ".",
        "thread", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_WRITE", ".",
        "arg1", "must", "have", "ZX_RIGHT_TRANSFER", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "thread",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "entry",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "stack",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "arg1",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "arg2",
          "type": "uintptr_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "process_read_memory",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "from", "the", "given", "process", "'", "s", "address", "space", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_READ", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vaddr",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "process_write_memory",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "into", "the", "given", "process", "'", "s", "address", "space", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vaddr",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "profile_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "scheduler", "profile", "."
      ],
      "requirements": [
        "root_job", "must", "be", "of", "type", "ZX_OBJ_TYPE_JOB", "and", "have", "ZX_RIGHT_MANAGE_PROCESS", "."
      ],
      "arguments": [
        {
          "name": "root_job",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "profile",
          "type": "zx_profile_info_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "resource_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "resource", "object", "."
      ],
      "requirements": [
        "parent_rsrc", "must", "be", "of", "type", "ZX_OBJ_TYPE_RESOURCE", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "parent_rsrc",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "base",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "name",
          "type": "char",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "name_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "resource_out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "smc_call",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Make", "Secure", "Monitor", "Call", "(", "SMC", ")", "from", "user", "space", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "parameters",
          "type": "zx_smc_parameters_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "out_smc_result",
          "type": "zx_smc_result_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "socket_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "socket", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out0",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "out1",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "socket_write",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "data", "to", "a", "socket", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "socket_read",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "data", "from", "a", "socket", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "socket_shutdown",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Prevent", "reading", "or", "writing", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "stream_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "stream", "from", "a", "VMO", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "seek",
          "type": "zx_off_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_stream",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "stream_writev",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "data", "to", "a", "stream", "at", "the", "current", "seek", "offset", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vector",
          "type": "zx_iovec_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "num_vector",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "stream_writev_at",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "data", "to", "a", "stream", "at", "the", "given", "offset", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "zx_off_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vector",
          "type": "zx_iovec_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "num_vector",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "stream_readv",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "data", "from", "a", "stream", "at", "the", "current", "seek", "offset", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vector",
          "type": "zx_iovec_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "num_vector",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "stream_readv_at",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "data", "from", "a", "stream", "at", "the", "given", "offset", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "zx_off_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vector",
          "type": "zx_iovec_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "num_vector",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "actual",
          "type": "size_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "stream_seek",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Modify", "the", "seek", "offset", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_STREAM", "and", "have", "ZX_RIGHT_READ", "or", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "whence",
          "type": "zx_stream_seek_origin_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "int64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out_seek",
          "type": "zx_off_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_0",
      "attributes": [
        "*",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_1",
      "attributes": [
        "*",
        "test_category1",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "a",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_2",
      "attributes": [
        "*",
        "test_category1",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "a",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "b",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_3",
      "attributes": [
        "*",
        "test_category2",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "a",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "b",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "c",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_4",
      "attributes": [
        "*",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "a",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "b",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "c",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "d",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_5",
      "attributes": [
        "*",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "a",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "b",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "c",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "d",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "e",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_6",
      "attributes": [
        "*",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "a",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "b",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "c",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "d",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "e",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "f",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_7",
      "attributes": [
        "*",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "a",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "b",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "c",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "d",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "e",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "f",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "g",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_8",
      "attributes": [
        "*",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "a",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "b",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "c",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "d",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "e",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "f",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "g",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "h",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_wrapper",
      "attributes": [
        "*",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "a",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "b",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "c",
          "type": "int32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "syscall_test_handle_create",
      "attributes": [
        "*",
        "testonly"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "return_value",
          "type": "zx_status_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "system_get_dcache_line_size",
      "attributes": [
        "*",
        "const",
        "vdsocall"
      ],
      "top_description": [
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "uint32_t"
    },
    {
      "name": "system_get_num_cpus",
      "attributes": [
        "*",
        "const",
        "vdsocall"
      ],
      "top_description": [
        "Get", "number", "of", "logical", "processors", "on", "the", "system", "."
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "uint32_t"
    },
    {
      "name": "system_get_version_string",
      "attributes": [
        "*",
        "const",
        "vdsocall"
      ],
      "top_description": [
        "Get", "version", "string", "for", "system", "."
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "zx_string_view_t"
    },
    {
      "name": "system_get_physmem",
      "attributes": [
        "*",
        "vdsocall"
      ],
      "top_description": [
        "Get", "amount", "of", "physical", "memory", "on", "the", "system", "."
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "uint64_t"
    },
    {
      "name": "system_get_features",
      "attributes": [
        "*",
        "vdsocall"
      ],
      "top_description": [
        "Get", "supported", "hardware", "capabilities", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "kind",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "features",
          "type": "uint32_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "system_get_event",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Retrieve", "a", "handle", "to", "a", "system", "event", "."
      ],
      "requirements": [
        "None", "."
      ],
      "arguments": [
        {
          "name": "root_job",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "kind",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "event",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "system_mexec",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Soft", "reboot", "the", "system", "with", "a", "new", "kernel", "and", "bootimage", "."
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", ".",
        "kernel_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", ".",
        "bootimage_vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "kernel_vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "bootimage_vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "system_mexec_payload_get",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Return", "a", "ZBI", "containing", "ZBI", "entries", "necessary", "to", "boot", "this", "system", "."
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "system_powerctl",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_ROOT", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "cmd",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "arg",
          "type": "zx_system_powerctl_arg_t",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "task_suspend",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Suspend", "the", "given", "task", ".", "Currently", "only", "thread", "or", "process", "handles", "may", "be", "suspended", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "or", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "token",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "task_suspend_token",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Suspend", "the", "given", "task", ".", "Currently", "only", "thread", "or", "process", "handles", "may", "be", "suspended", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "or", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "token",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "task_create_exception_channel",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "an", "exception", "channel", "for", "a", "given", "job", ",", "process", ",", "or", "thread", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_INSPECT", "and", "have", "ZX_RIGHT_DUPLICATE", "and", "have", "ZX_RIGHT_TRANSFER", "and", "have", "ZX_RIGHT_MANAGE_THREAD", ".",
        "If", "handle", "is", "of", "type", "ZX_OBJ_TYPE_JOB", "or", "ZX_OBJ_TYPE_PROCESS", ",", "it", "must", "have", "ZX_RIGHT_ENUMERATE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "task_kill",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Kill", "the", "provided", "task", "(", "job", ",", "process", ",", "or", "thread", ")", "."
      ],
      "requirements": [
        "handle", "must", "have", "ZX_RIGHT_DESTROY", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "thread_exit",
      "attributes": [
        "*",
        "noreturn"
      ],
      "top_description": [
        "Terminate", "the", "current", "running", "thread", "."
      ],
      "requirements": [
      ],
      "arguments": [
      ],
      "return_type": "void"
    },
    {
      "name": "thread_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "thread", "."
      ],
      "requirements": [
        "process", "must", "be", "of", "type", "ZX_OBJ_TYPE_PROCESS", "and", "have", "ZX_RIGHT_MANAGE_THREAD", "."
      ],
      "arguments": [
        {
          "name": "process",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "name",
          "type": "char",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "name_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "thread_start",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Start", "execution", "on", "a", "thread", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_MANAGE_THREAD", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "thread_entry",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "stack",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "arg1",
          "type": "uintptr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "arg2",
          "type": "uintptr_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "thread_read_state",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "one", "aspect", "of", "thread", "state", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "kind",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "thread_write_state",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "one", "aspect", "of", "thread", "state", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_THREAD", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "kind",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "timer_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "timer", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "clock_id",
          "type": "zx_clock_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "timer_set",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Start", "a", "timer", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_TIMER", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "deadline",
          "type": "zx_time_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "slack",
          "type": "zx_duration_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "timer_cancel",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Cancel", "a", "timer", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_TIMER", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vcpu_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "VCPU", "."
      ],
      "requirements": [
        "guest", "must", "be", "of", "type", "ZX_OBJ_TYPE_GUEST", "and", "have", "ZX_RIGHT_MANAGE_PROCESS", "."
      ],
      "arguments": [
        {
          "name": "guest",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "entry",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vcpu_resume",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Resume", "execution", "of", "a", "VCPU", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_EXECUTE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "packet",
          "type": "zx_port_packet_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vcpu_interrupt",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Raise", "an", "interrupt", "on", "a", "VCPU", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_SIGNAL", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vector",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vcpu_read_state",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "the", "state", "of", "a", "VCPU", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "kind",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vcpu_write_state",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Write", "the", "state", "of", "a", "VCPU", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VCPU", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "kind",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmar_allocate",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Allocate", "a", "new", "subregion", "."
      ],
      "requirements": [
        "If", "options", "&", "ZX_VM_CAN_MAP_READ", ",", "parent_vmar", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_READ", ".",
        "If", "options", "&", "ZX_VM_CAN_MAP_WRITE", ",", "parent_vmar", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_WRITE", ".",
        "If", "options", "&", "ZX_VM_CAN_MAP_EXECUTE", ",", "parent_vmar", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_EXECUTE", "."
      ],
      "arguments": [
        {
          "name": "parent_vmar",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "zx_vm_option_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "child_vmar",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "child_addr",
          "type": "zx_vaddr_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmar_destroy",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Destroy", "a", "virtual", "memory", "address", "region", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmar_map",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Add", "a", "memory", "mapping", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", ".",
        "vmo", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "zx_vm_option_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmar_offset",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmo",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmo_offset",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "len",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "mapped_addr",
          "type": "zx_vaddr_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmar_unmap",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Unmap", "virtual", "memory", "pages", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "addr",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "len",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmar_protect",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Set", "protection", "of", "virtual", "memory", "pages", "."
      ],
      "requirements": [
        "If", "options", "&", "ZX_VM_PERM_READ", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_READ", ".",
        "If", "options", "&", "ZX_VM_PERM_WRITE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_WRITE", ".",
        "If", "options", "&", "ZX_VM_PERM_EXECUTE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMAR", "and", "have", "ZX_RIGHT_EXECUTE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "zx_vm_option_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "addr",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "len",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmar_op_range",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Perform", "an", "operation", "on", "VMOs", "mapped", "into", "this", "VMAR", "."
      ],
      "requirements": [
        "If", "op", "is", "ZX_VMO_OP_DECOMMIT", ",", "affected", "mappings", "must", "be", "writable", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "op",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "address",
          "type": "zx_vaddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_create",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "VM", "object", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "size",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_read",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Read", "bytes", "from", "the", "VMO", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_write",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Write", "bytes", "to", "the", "VMO", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
            "IN"
          ]
        },
        {
          "name": "offset",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_get_size",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Read", "the", "current", "size", "of", "a", "VMO", "object", "."
      ],
      "requirements": [
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "uint64_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_set_size",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Resize", "a", "VMO", "object", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_op_range",
      "attributes": [
        "*",
        "blocking"
      ],
      "top_description": [
        "Perform", "an", "operation", "on", "a", "range", "of", "a", "VMO", "."
      ],
      "requirements": [
        "If", "op", "is", "ZX_VMO_OP_COMMIT", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", ".",
        "If", "op", "is", "ZX_VMO_OP_DECOMMIT", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", ".",
        "If", "op", "is", "ZX_VMO_OP_CACHE_SYNC", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", ".",
        "If", "op", "is", "ZX_VMO_OP_CACHE_INVALIDATE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_WRITE", ".",
        "If", "op", "is", "ZX_VMO_OP_CACHE_CLEAN", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", ".",
        "If", "op", "is", "ZX_VMO_OP_CACHE_CLEAN_INVALIDATE", ",", "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "op",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "buffer",
          "type": "any",
          "is_array": true,
          "attributes": [
          ]
        },
        {
          "name": "buffer_size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_create_child",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "child", "of", "a", "VM", "Object", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_DUPLICATE", "and", "have", "ZX_RIGHT_READ", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "options",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "offset",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "uint64_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_set_cache_policy",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Set", "the", "caching", "policy", "for", "pages", "held", "by", "a", "VMO", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", "and", "have", "ZX_RIGHT_MAP", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "cache_policy",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_replace_as_executable",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Add", "execute", "rights", "to", "a", "VMO", "."
      ],
      "requirements": [
        "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_VMO", ".",
        "vmex", "must", "have", "resource", "kind", "ZX_RSRC_KIND_VMEX", "."
      ],
      "arguments": [
        {
          "name": "handle",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "vmex",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_create_contiguous",
      "attributes": [
        "*"
      ],
      "top_description": [
      ],
      "requirements": [
        "bti", "must", "be", "of", "type", "ZX_OBJ_TYPE_BTI", "and", "have", "ZX_RIGHT_MAP", "."
      ],
      "arguments": [
        {
          "name": "bti",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "alignment_log2",
          "type": "uint32_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    },
    {
      "name": "vmo_create_physical",
      "attributes": [
        "*"
      ],
      "top_description": [
        "Create", "a", "VM", "object", "referring", "to", "a", "specific", "contiguous", "range", "of", "physical", "memory", "."
      ],
      "requirements": [
        "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_MMIO", "."
      ],
      "arguments": [
        {
          "name": "resource",
          "type": "zx_handle_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "paddr",
          "type": "zx_paddr_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "size",
          "type": "size_t",
          "is_array": false,
          "attributes": [
          ]
        },
        {
          "name": "out",
          "type": "zx_handle_t",
          "is_array": true,
          "attributes": [
          ]
        }
      ],
      "return_type": "zx_status_t"
    }
  ]
}
----- json.json END -----


----- kernel-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

KERNEL_SYSCALL(bti_create, zx_status_t, /* no attributes */, 4,
    (iommu, options, bti_id, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t iommu,
    uint32_t options,
    uint64_t bti_id,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(bti_pin, zx_status_t, /* no attributes */, 8,
    (handle, options, vmo, offset, size, addrs, num_addrs, pmt), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    uint64_t offset,
    uint64_t size,
    user_out_ptr<zx_paddr_t> addrs,
    size_t num_addrs,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* pmt))

KERNEL_SYSCALL(bti_release_quarantine, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

VDSO_SYSCALL(cache_flush, zx_status_t, /* no attributes */, 3,
    (addr, size, options), (
    user_in_ptr<const void> addr,
    size_t size,
    uint32_t options))

KERNEL_SYSCALL(channel_create, zx_status_t, /* no attributes */, 3,
    (options, out0, out1), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out1))

KERNEL_SYSCALL(channel_read, zx_status_t, /* no attributes */, 8,
    (handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("FuchsiaUnchecked")) zx_handle_t handle,
    uint32_t options,
    user_out_ptr<void> bytes,
    _ZX_SYSCALL_ANNO(acquire_handle("FuchsiaUnchecked")) user_out_ptr<zx_handle_t> handles,
    uint32_t num_bytes,
    uint32_t num_handles,
    user_out_ptr<uint32_t> actual_bytes,
    user_out_ptr<uint32_t> actual_handles))

KERNEL_SYSCALL(channel_read_etc, zx_status_t, /* no attributes */, 8,
    (handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    user_out_ptr<void> bytes,
    user_out_ptr<zx_handle_info_t> handles,
    uint32_t num_bytes,
    uint32_t num_handles,
    user_out_ptr<uint32_t> actual_bytes,
    user_out_ptr<uint32_t> actual_handles))

KERNEL_SYSCALL(channel_write, zx_status_t, /* no attributes */, 6,
    (handle, options, bytes, num_bytes, handles, num_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    user_in_ptr<const void> bytes,
    uint32_t num_bytes,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) user_in_ptr<const zx_handle_t> handles,
    uint32_t num_handles))

KERNEL_SYSCALL(channel_write_etc, zx_status_t, /* no attributes */, 6,
    (handle, options, bytes, num_bytes, handles, num_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    user_in_ptr<const void> bytes,
    uint32_t num_bytes,
    user_inout_ptr<zx_handle_disposition_t> handles,
    uint32_t num_handles))

INTERNAL_SYSCALL(channel_call_noretry, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    user_in_ptr<const zx_channel_call_args_t> args,
    user_out_ptr<uint32_t> actual_bytes,
    user_out_ptr<uint32_t> actual_handles))

INTERNAL_SYSCALL(channel_call_finish, zx_status_t, /* no attributes */, 4,
    (deadline, args, actual_bytes, actual_handles), (
    zx_time_t deadline,
    user_in_ptr<const zx_channel_call_args_t> args,
    user_out_ptr<uint32_t> actual_bytes,
    user_out_ptr<uint32_t> actual_handles))

VDSO_SYSCALL(channel_call, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    user_in_ptr<const zx_channel_call_args_t> args,
    user_out_ptr<uint32_t> actual_bytes,
    user_out_ptr<uint32_t> actual_handles))

INTERNAL_SYSCALL(channel_call_etc_noretry, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    user_inout_ptr<zx_channel_call_etc_args_t> args,
    user_out_ptr<uint32_t> actual_bytes,
    user_out_ptr<uint32_t> actual_handles))

INTERNAL_SYSCALL(channel_call_etc_finish, zx_status_t, /* no attributes */, 4,
    (deadline, args, actual_bytes, actual_handles), (
    zx_time_t deadline,
    user_inout_ptr<zx_channel_call_etc_args_t> args,
    user_out_ptr<uint32_t> actual_bytes,
    user_out_ptr<uint32_t> actual_handles))

VDSO_SYSCALL(channel_call_etc, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    user_inout_ptr<zx_channel_call_etc_args_t> args,
    user_out_ptr<uint32_t> actual_bytes,
    user_out_ptr<uint32_t> actual_handles))

KERNEL_SYSCALL(clock_get, zx_status_t, /* no attributes */, 2,
    (clock_id, out), (
    zx_clock_t clock_id,
    user_out_ptr<zx_time_t> out))

VDSO_SYSCALL(clock_get_monotonic, zx_time_t, /* no attributes */, 0,
    (), (void))

KERNEL_SYSCALL(clock_adjust, zx_status_t, /* no attributes */, 3,
    (handle, clock_id, offset), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_clock_t clock_id,
    int64_t offset))

INTERNAL_SYSCALL(clock_get_monotonic_via_kernel, zx_time_t, /* no attributes */, 0,
    (), (void))

KERNEL_SYSCALL(clock_create, zx_status_t, /* no attributes */, 3,
    (options, args, out), (
    uint64_t options,
    user_in_ptr<const void> args,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(clock_read, zx_status_t, /* no attributes */, 2,
    (handle, now), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_out_ptr<zx_time_t> now))

KERNEL_SYSCALL(clock_get_details, zx_status_t, /* no attributes */, 3,
    (handle, options, details), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t options,
    user_out_ptr<void> details))

KERNEL_SYSCALL(clock_update, zx_status_t, /* no attributes */, 3,
    (handle, options, args), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t options,
    user_in_ptr<const void> args))

INTERNAL_SYSCALL(cprng_draw_once, zx_status_t, /* no attributes */, 2,
    (buffer, buffer_size), (
    user_out_ptr<void> buffer,
    size_t buffer_size))

VDSO_SYSCALL(cprng_draw, void, /* no attributes */, 2,
    (buffer, buffer_size), (
    user_out_ptr<void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(cprng_add_entropy, zx_status_t, /* no attributes */, 2,
    (buffer, buffer_size), (
    user_in_ptr<const void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(debug_read, zx_status_t, /* no attributes */, 4,
    (handle, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_out_ptr<char> buffer,
    size_t buffer_size,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(debug_write, zx_status_t, /* no attributes */, 2,
    (buffer, buffer_size), (
    user_in_ptr<const char> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(debug_send_command, zx_status_t, /* no attributes */, 3,
    (resource, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    user_in_ptr<const char> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(debuglog_create, zx_status_t, /* no attributes */, 3,
    (resource, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(debuglog_write, zx_status_t, /* no attributes */, 4,
    (handle, options, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    user_in_ptr<const void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(debuglog_read, zx_status_t, /* no attributes */, 4,
    (handle, options, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    user_out_ptr<void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(event_create, zx_status_t, /* no attributes */, 2,
    (options, out), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(eventpair_create, zx_status_t, /* no attributes */, 3,
    (options, out0, out1), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out1))

KERNEL_SYSCALL(exception_get_thread, zx_status_t, /* no attributes */, 2,
    (handle, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(exception_get_process, zx_status_t, /* no attributes */, 2,
    (handle, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(fifo_create, zx_status_t, /* no attributes */, 5,
    (elem_count, elem_size, options, out0, out1), (
    size_t elem_count,
    size_t elem_size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out1))

KERNEL_SYSCALL(fifo_read, zx_status_t, /* no attributes */, 5,
    (handle, elem_size, data, data_size, actual_count), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    size_t elem_size,
    user_out_ptr<void> data,
    size_t data_size,
    user_out_ptr<size_t> actual_count))

KERNEL_SYSCALL(fifo_write, zx_status_t, /* no attributes */, 5,
    (handle, elem_size, data, count, actual_count), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    size_t elem_size,
    user_in_ptr<const void> data,
    size_t count,
    user_out_ptr<size_t> actual_count))

KERNEL_SYSCALL(framebuffer_get_info, zx_status_t, /* no attributes */, 5,
    (resource, format, width, height, stride), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    user_out_ptr<uint32_t> format,
    user_out_ptr<uint32_t> width,
    user_out_ptr<uint32_t> height,
    user_out_ptr<uint32_t> stride))

KERNEL_SYSCALL(framebuffer_set_range, zx_status_t, /* no attributes */, 7,
    (resource, vmo, len, format, width, height, stride), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    uint32_t len,
    uint32_t format,
    uint32_t width,
    uint32_t height,
    uint32_t stride))

BLOCKING_SYSCALL(futex_wait, zx_status_t, /* no attributes */, 4,
    (value_ptr, current_value, new_futex_owner, deadline), (
    user_in_ptr<const zx_futex_t> value_ptr,
    zx_futex_t current_value,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_futex_owner,
    zx_time_t deadline))

KERNEL_SYSCALL(futex_wake, zx_status_t, /* no attributes */, 2,
    (value_ptr, wake_count), (
    user_in_ptr<const zx_futex_t> value_ptr,
    uint32_t wake_count))

KERNEL_SYSCALL(futex_requeue, zx_status_t, /* no attributes */, 6,
    (value_ptr, wake_count, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
    user_in_ptr<const zx_futex_t> value_ptr,
    uint32_t wake_count,
    zx_futex_t current_value,
    user_in_ptr<const zx_futex_t> requeue_ptr,
    uint32_t requeue_count,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))

KERNEL_SYSCALL(futex_wake_single_owner, zx_status_t, /* no attributes */, 1,
    (value_ptr), (
    user_in_ptr<const zx_futex_t> value_ptr))

KERNEL_SYSCALL(futex_requeue_single_owner, zx_status_t, /* no attributes */, 5,
    (value_ptr, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
    user_in_ptr<const zx_futex_t> value_ptr,
    zx_futex_t current_value,
    user_in_ptr<const zx_futex_t> requeue_ptr,
    uint32_t requeue_count,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))

KERNEL_SYSCALL(futex_get_owner, zx_status_t, /* no attributes */, 2,
    (value_ptr, koid), (
    user_in_ptr<const zx_futex_t> value_ptr,
    user_out_ptr<zx_koid_t> koid))

KERNEL_SYSCALL(guest_create, zx_status_t, /* no attributes */, 4,
    (resource, options, guest_handle, vmar_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* guest_handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* vmar_handle))

KERNEL_SYSCALL(guest_set_trap, zx_status_t, /* no attributes */, 6,
    (handle, kind, addr, size, port_handle, key), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    zx_vaddr_t addr,
    size_t size,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
    uint64_t key))

KERNEL_SYSCALL(handle_close, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(handle_close_many, zx_status_t, /* no attributes */, 2,
    (handles, num_handles), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) user_in_ptr<const zx_handle_t> handles,
    size_t num_handles))

KERNEL_SYSCALL(handle_duplicate, zx_status_t, /* no attributes */, 3,
    (handle, rights, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_rights_t rights,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(handle_replace, zx_status_t, /* no attributes */, 3,
    (handle, rights, out), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
    zx_rights_t rights,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(interrupt_create, zx_status_t, /* no attributes */, 4,
    (src_obj, src_num, options, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t src_obj,
    uint32_t src_num,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_handle))

KERNEL_SYSCALL(interrupt_bind, zx_status_t, /* no attributes */, 4,
    (handle, port_handle, key, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
    uint64_t key,
    uint32_t options))

BLOCKING_SYSCALL(interrupt_wait, zx_status_t, /* no attributes */, 2,
    (handle, out_timestamp), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_out_ptr<zx_time_t> out_timestamp))

KERNEL_SYSCALL(interrupt_destroy, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(interrupt_ack, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(interrupt_trigger, zx_status_t, /* no attributes */, 3,
    (handle, options, timestamp), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t timestamp))

KERNEL_SYSCALL(interrupt_bind_vcpu, zx_status_t, /* no attributes */, 3,
    (handle, vcpu, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vcpu,
    uint32_t options))

KERNEL_SYSCALL(iommu_create, zx_status_t, /* no attributes */, 5,
    (resource, type, desc, desc_size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t type,
    user_in_ptr<const void> desc,
    size_t desc_size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(ioports_request, zx_status_t, /* no attributes */, 3,
    (resource, io_addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint16_t io_addr,
    uint32_t len))

KERNEL_SYSCALL(ioports_release, zx_status_t, /* no attributes */, 3,
    (resource, io_addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint16_t io_addr,
    uint32_t len))

KERNEL_SYSCALL(job_create, zx_status_t, /* no attributes */, 3,
    (parent_job, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_job,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(job_set_policy, zx_status_t, /* no attributes */, 5,
    (handle, options, topic, policy, policy_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    uint32_t topic,
    user_in_ptr<const void> policy,
    uint32_t policy_size))

KERNEL_SYSCALL(job_set_critical, zx_status_t, /* no attributes */, 3,
    (job, options, process), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process))

KERNEL_SYSCALL(ktrace_read, zx_status_t, /* no attributes */, 5,
    (handle, data, offset, data_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_out_ptr<void> data,
    uint32_t offset,
    size_t data_size,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(ktrace_control, zx_status_t, /* no attributes */, 4,
    (handle, action, options, ptr), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t action,
    uint32_t options,
    user_inout_ptr<void> ptr))

KERNEL_SYSCALL(ktrace_write, zx_status_t, /* no attributes */, 4,
    (handle, id, arg0, arg1), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t id,
    uint32_t arg0,
    uint32_t arg1))

BLOCKING_SYSCALL(nanosleep, zx_status_t, /* no attributes */, 1,
    (deadline), (
    zx_time_t deadline))

VDSO_SYSCALL(ticks_get, zx_ticks_t, /* no attributes */, 0,
    (), (void))

VDSO_SYSCALL(ticks_per_second, zx_ticks_t, __CONST, 0,
    (), (void))

VDSO_SYSCALL(deadline_after, zx_time_t, /* no attributes */, 1,
    (nanoseconds), (
    zx_duration_t nanoseconds))

VDSO_SYSCALL(vmar_unmap_handle_close_thread_exit, zx_status_t, /* no attributes */, 4,
    (vmar_handle, addr, size, close_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmar_handle,
    zx_vaddr_t addr,
    size_t size,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))

VDSO_SYSCALL(futex_wake_handle_close_thread_exit, void, __NO_RETURN, 4,
    (value_ptr, wake_count, new_value, close_handle), (
    user_in_ptr<const zx_futex_t> value_ptr,
    uint32_t wake_count,
    int32_t new_value,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))

INTERNAL_SYSCALL(ticks_get_via_kernel, zx_ticks_t, /* no attributes */, 0,
    (), (void))

KERNEL_SYSCALL(msi_allocate, zx_status_t, /* no attributes */, 3,
    (handle, count, out_allocation), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t count,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_allocation))

KERNEL_SYSCALL(msi_create, zx_status_t, /* no attributes */, 6,
    (handle, options, msi_id, vmo, vmo_offset, out_interrupt), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    uint32_t msi_id,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    size_t vmo_offset,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_interrupt))

KERNEL_SYSCALL(mtrace_control, zx_status_t, /* no attributes */, 6,
    (handle, kind, action, options, ptr, ptr_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    uint32_t action,
    uint32_t options,
    user_inout_ptr<void> ptr,
    size_t ptr_size))

BLOCKING_SYSCALL(object_wait_one, zx_status_t, /* no attributes */, 4,
    (handle, signals, deadline, observed), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_signals_t signals,
    zx_time_t deadline,
    user_out_ptr<zx_signals_t> observed))

BLOCKING_SYSCALL(object_wait_many, zx_status_t, /* no attributes */, 3,
    (items, num_items, deadline), (
    user_inout_ptr<zx_wait_item_t> items,
    size_t num_items,
    zx_time_t deadline))

KERNEL_SYSCALL(object_wait_async, zx_status_t, /* no attributes */, 5,
    (handle, port, key, signals, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
    uint64_t key,
    zx_signals_t signals,
    uint32_t options))

KERNEL_SYSCALL(object_signal, zx_status_t, /* no attributes */, 3,
    (handle, clear_mask, set_mask), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t clear_mask,
    uint32_t set_mask))

KERNEL_SYSCALL(object_signal_peer, zx_status_t, /* no attributes */, 3,
    (handle, clear_mask, set_mask), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t clear_mask,
    uint32_t set_mask))

KERNEL_SYSCALL(object_get_property, zx_status_t, /* no attributes */, 4,
    (handle, property, value, value_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t property,
    user_out_ptr<void> value,
    size_t value_size))

KERNEL_SYSCALL(object_set_property, zx_status_t, /* no attributes */, 4,
    (handle, property, value, value_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t property,
    user_in_ptr<const void> value,
    size_t value_size))

KERNEL_SYSCALL(object_get_info, zx_status_t, /* no attributes */, 6,
    (handle, topic, buffer, buffer_size, actual, avail), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t topic,
    user_out_ptr<void> buffer,
    size_t buffer_size,
    user_out_ptr<size_t> actual,
    user_out_ptr<size_t> avail))

KERNEL_SYSCALL(object_get_child, zx_status_t, /* no attributes */, 4,
    (handle, koid, rights, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t koid,
    zx_rights_t rights,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(object_set_profile, zx_status_t, /* no attributes */, 3,
    (handle, profile, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t profile,
    uint32_t options))

KERNEL_SYSCALL(pager_create, zx_status_t, /* no attributes */, 2,
    (options, out), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(pager_create_vmo, zx_status_t, /* no attributes */, 6,
    (pager, options, port, key, size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
    uint64_t key,
    uint64_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(pager_detach_vmo, zx_status_t, /* no attributes */, 2,
    (pager, vmo), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo))

KERNEL_SYSCALL(pager_supply_pages, zx_status_t, /* no attributes */, 6,
    (pager, pager_vmo, offset, length, aux_vmo, aux_offset), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
    uint64_t offset,
    uint64_t length,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t aux_vmo,
    uint64_t aux_offset))

KERNEL_SYSCALL(pager_op_range, zx_status_t, /* no attributes */, 6,
    (pager, op, pager_vmo, offset, length, data), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    uint32_t op,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
    uint64_t offset,
    uint64_t length,
    uint64_t data))

KERNEL_SYSCALL(pc_firmware_tables, zx_status_t, /* no attributes */, 3,
    (handle, acpi_rsdp, smbios), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_out_ptr<zx_paddr_t> acpi_rsdp,
    user_out_ptr<zx_paddr_t> smbios))

KERNEL_SYSCALL(pci_get_nth_device, zx_status_t, /* no attributes */, 4,
    (handle, index, out_info, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t index,
    user_out_ptr<zx_pcie_device_info_t> out_info,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_handle))

KERNEL_SYSCALL(pci_enable_bus_master, zx_status_t, /* no attributes */, 2,
    (handle, enable), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t enable))

KERNEL_SYSCALL(pci_reset_device, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(pci_config_read, zx_status_t, /* no attributes */, 4,
    (handle, offset, width, out_val), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint16_t offset,
    size_t width,
    user_out_ptr<uint32_t> out_val))

KERNEL_SYSCALL(pci_config_write, zx_status_t, /* no attributes */, 4,
    (handle, offset, width, val), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint16_t offset,
    size_t width,
    uint32_t val))

KERNEL_SYSCALL(pci_cfg_pio_rw, zx_status_t, /* no attributes */, 8,
    (handle, bus, dev, func, offset, val, width, write), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint8_t bus,
    uint8_t dev,
    uint8_t func,
    uint8_t offset,
    user_inout_ptr<uint32_t> val,
    size_t width,
    uint32_t write))

KERNEL_SYSCALL(pci_get_bar, zx_status_t, /* no attributes */, 4,
    (handle, bar_num, out_bar, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t bar_num,
    user_out_ptr<zx_pci_bar_t> out_bar,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_handle))

KERNEL_SYSCALL(pci_map_interrupt, zx_status_t, /* no attributes */, 3,
    (handle, which_irq, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    int32_t which_irq,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_handle))

KERNEL_SYSCALL(pci_query_irq_mode, zx_status_t, /* no attributes */, 3,
    (handle, mode, out_max_irqs), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t mode,
    user_out_ptr<uint32_t> out_max_irqs))

KERNEL_SYSCALL(pci_set_irq_mode, zx_status_t, /* no attributes */, 3,
    (handle, mode, requested_irq_count), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t mode,
    uint32_t requested_irq_count))

KERNEL_SYSCALL(pci_init, zx_status_t, /* no attributes */, 3,
    (handle, init_buf, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_in_ptr<const zx_pci_init_arg_t> init_buf,
    uint32_t len))

KERNEL_SYSCALL(pci_add_subtract_io_range, zx_status_t, /* no attributes */, 5,
    (handle, mmio, base, len, add), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t mmio,
    uint64_t base,
    uint64_t len,
    uint32_t add))

KERNEL_SYSCALL(pmt_unpin, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(port_create, zx_status_t, /* no attributes */, 2,
    (options, out), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(port_queue, zx_status_t, /* no attributes */, 2,
    (handle, packet), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_in_ptr<const zx_port_packet_t> packet))

BLOCKING_SYSCALL(port_wait, zx_status_t, /* no attributes */, 3,
    (handle, deadline, packet), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t deadline,
    user_out_ptr<zx_port_packet_t> packet))

KERNEL_SYSCALL(port_cancel, zx_status_t, /* no attributes */, 3,
    (handle, source, key), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t source,
    uint64_t key))

KERNEL_SYSCALL(process_exit, void, __NO_RETURN, 1,
    (retcode), (
    int64_t retcode))

KERNEL_SYSCALL(process_create, zx_status_t, /* no attributes */, 6,
    (job, name, name_size, options, proc_handle, vmar_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
    user_in_ptr<const char> name,
    size_t name_size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* proc_handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* vmar_handle))

KERNEL_SYSCALL(process_start, zx_status_t, /* no attributes */, 6,
    (handle, thread, entry, stack, arg1, arg2), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t thread,
    zx_vaddr_t entry,
    zx_vaddr_t stack,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t arg1,
    uintptr_t arg2))

KERNEL_SYSCALL(process_read_memory, zx_status_t, /* no attributes */, 5,
    (handle, vaddr, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t vaddr,
    user_out_ptr<void> buffer,
    size_t buffer_size,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(process_write_memory, zx_status_t, /* no attributes */, 5,
    (handle, vaddr, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t vaddr,
    user_in_ptr<const void> buffer,
    size_t buffer_size,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(profile_create, zx_status_t, /* no attributes */, 4,
    (root_job, options, profile, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
    uint32_t options,
    user_in_ptr<const zx_profile_info_t> profile,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(resource_create, zx_status_t, /* no attributes */, 7,
    (parent_rsrc, options, base, size, name, name_size, resource_out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_rsrc,
    uint32_t options,
    uint64_t base,
    size_t size,
    user_in_ptr<const char> name,
    size_t name_size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* resource_out))

KERNEL_SYSCALL(smc_call, zx_status_t, /* no attributes */, 3,
    (handle, parameters, out_smc_result), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_in_ptr<const zx_smc_parameters_t> parameters,
    user_out_ptr<zx_smc_result_t> out_smc_result))

KERNEL_SYSCALL(socket_create, zx_status_t, /* no attributes */, 3,
    (options, out0, out1), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out1))

KERNEL_SYSCALL(socket_write, zx_status_t, /* no attributes */, 5,
    (handle, options, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    user_in_ptr<const void> buffer,
    size_t buffer_size,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(socket_read, zx_status_t, /* no attributes */, 5,
    (handle, options, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    user_out_ptr<void> buffer,
    size_t buffer_size,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(socket_shutdown, zx_status_t, /* no attributes */, 2,
    (handle, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options))

KERNEL_SYSCALL(stream_create, zx_status_t, /* no attributes */, 4,
    (options, vmo, seek, out_stream), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    zx_off_t seek,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out_stream))

KERNEL_SYSCALL(stream_writev, zx_status_t, /* no attributes */, 5,
    (handle, options, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    user_in_ptr<const zx_iovec_t> vector,
    size_t num_vector,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(stream_writev_at, zx_status_t, /* no attributes */, 6,
    (handle, options, offset, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_off_t offset,
    user_in_ptr<const zx_iovec_t> vector,
    size_t num_vector,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(stream_readv, zx_status_t, /* no attributes */, 5,
    (handle, options, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    user_out_ptr<zx_iovec_t> vector,
    size_t num_vector,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(stream_readv_at, zx_status_t, /* no attributes */, 6,
    (handle, options, offset, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_off_t offset,
    user_out_ptr<zx_iovec_t> vector,
    size_t num_vector,
    user_out_ptr<size_t> actual))

KERNEL_SYSCALL(stream_seek, zx_status_t, /* no attributes */, 4,
    (handle, whence, offset, out_seek), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_stream_seek_origin_t whence,
    int64_t offset,
    user_out_ptr<zx_off_t> out_seek))

KERNEL_SYSCALL(syscall_test_0, zx_status_t, /* no attributes */, 0,
    (), (void))

KERNEL_SYSCALL(syscall_test_1, zx_status_t, /* no attributes */, 1,
    (a), (
    int32_t a))

KERNEL_SYSCALL(syscall_test_2, zx_status_t, /* no attributes */, 2,
    (a, b), (
    int32_t a,
    int32_t b))

KERNEL_SYSCALL(syscall_test_3, zx_status_t, /* no attributes */, 3,
    (a, b, c), (
    int32_t a,
    int32_t b,
    int32_t c))

KERNEL_SYSCALL(syscall_test_4, zx_status_t, /* no attributes */, 4,
    (a, b, c, d), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d))

KERNEL_SYSCALL(syscall_test_5, zx_status_t, /* no attributes */, 5,
    (a, b, c, d, e), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e))

KERNEL_SYSCALL(syscall_test_6, zx_status_t, /* no attributes */, 6,
    (a, b, c, d, e, f), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e,
    int32_t f))

KERNEL_SYSCALL(syscall_test_7, zx_status_t, /* no attributes */, 7,
    (a, b, c, d, e, f, g), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e,
    int32_t f,
    int32_t g))

KERNEL_SYSCALL(syscall_test_8, zx_status_t, /* no attributes */, 8,
    (a, b, c, d, e, f, g, h), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e,
    int32_t f,
    int32_t g,
    int32_t h))

KERNEL_SYSCALL(syscall_test_wrapper, zx_status_t, /* no attributes */, 3,
    (a, b, c), (
    int32_t a,
    int32_t b,
    int32_t c))

KERNEL_SYSCALL(syscall_test_handle_create, zx_status_t, /* no attributes */, 2,
    (return_value, out), (
    zx_status_t return_value,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

VDSO_SYSCALL(system_get_dcache_line_size, uint32_t, __CONST, 0,
    (), (void))

VDSO_SYSCALL(system_get_num_cpus, uint32_t, __CONST, 0,
    (), (void))

VDSO_SYSCALL(system_get_version_string, zx_string_view_t, __CONST, 0,
    (), (void))

VDSO_SYSCALL(system_get_physmem, uint64_t, /* no attributes */, 0,
    (), (void))

VDSO_SYSCALL(system_get_features, zx_status_t, /* no attributes */, 2,
    (kind, features), (
    uint32_t kind,
    user_out_ptr<uint32_t> features))

KERNEL_SYSCALL(system_get_event, zx_status_t, /* no attributes */, 3,
    (root_job, kind, event), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
    uint32_t kind,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* event))

KERNEL_SYSCALL(system_mexec, zx_status_t, /* no attributes */, 3,
    (resource, kernel_vmo, bootimage_vmo), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t kernel_vmo,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bootimage_vmo))

KERNEL_SYSCALL(system_mexec_payload_get, zx_status_t, /* no attributes */, 3,
    (resource, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    user_out_ptr<void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(system_powerctl, zx_status_t, /* no attributes */, 3,
    (resource, cmd, arg), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t cmd,
    user_in_ptr<const zx_system_powerctl_arg_t> arg))

KERNEL_SYSCALL(task_suspend, zx_status_t, /* no attributes */, 2,
    (handle, token), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* token))

KERNEL_SYSCALL(task_suspend_token, zx_status_t, /* no attributes */, 2,
    (handle, token), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* token))

KERNEL_SYSCALL(task_create_exception_channel, zx_status_t, /* no attributes */, 3,
    (handle, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(task_kill, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(thread_exit, void, __NO_RETURN, 0,
    (), (void))

KERNEL_SYSCALL(thread_create, zx_status_t, /* no attributes */, 5,
    (process, name, name_size, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process,
    user_in_ptr<const char> name,
    size_t name_size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(thread_start, zx_status_t, /* no attributes */, 5,
    (handle, thread_entry, stack, arg1, arg2), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t thread_entry,
    zx_vaddr_t stack,
    uintptr_t arg1,
    uintptr_t arg2))

KERNEL_SYSCALL(thread_read_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    user_out_ptr<void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(thread_write_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    user_in_ptr<const void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(timer_create, zx_status_t, /* no attributes */, 3,
    (options, clock_id, out), (
    uint32_t options,
    zx_clock_t clock_id,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(timer_set, zx_status_t, /* no attributes */, 3,
    (handle, deadline, slack), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t deadline,
    zx_duration_t slack))

KERNEL_SYSCALL(timer_cancel, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(vcpu_create, zx_status_t, /* no attributes */, 4,
    (guest, options, entry, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t guest,
    uint32_t options,
    zx_vaddr_t entry,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

BLOCKING_SYSCALL(vcpu_resume, zx_status_t, /* no attributes */, 2,
    (handle, packet), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_out_ptr<zx_port_packet_t> packet))

KERNEL_SYSCALL(vcpu_interrupt, zx_status_t, /* no attributes */, 2,
    (handle, vector), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t vector))

KERNEL_SYSCALL(vcpu_read_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    user_out_ptr<void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(vcpu_write_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    user_in_ptr<const void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(vmar_allocate, zx_status_t, /* no attributes */, 6,
    (parent_vmar, options, offset, size, child_vmar, child_addr), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_vmar,
    zx_vm_option_t options,
    size_t offset,
    size_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* child_vmar,
    user_out_ptr<zx_vaddr_t> child_addr))

KERNEL_SYSCALL(vmar_destroy, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(vmar_map, zx_status_t, /* no attributes */, 7,
    (handle, options, vmar_offset, vmo, vmo_offset, len, mapped_addr), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vm_option_t options,
    size_t vmar_offset,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    uint64_t vmo_offset,
    size_t len,
    user_out_ptr<zx_vaddr_t> mapped_addr))

KERNEL_SYSCALL(vmar_unmap, zx_status_t, /* no attributes */, 3,
    (handle, addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t addr,
    size_t len))

KERNEL_SYSCALL(vmar_protect, zx_status_t, /* no attributes */, 4,
    (handle, options, addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vm_option_t options,
    zx_vaddr_t addr,
    size_t len))

KERNEL_SYSCALL(vmar_op_range, zx_status_t, /* no attributes */, 6,
    (handle, op, address, size, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t op,
    zx_vaddr_t address,
    size_t size,
    user_inout_ptr<void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(vmo_create, zx_status_t, /* no attributes */, 3,
    (size, options, out), (
    uint64_t size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

BLOCKING_SYSCALL(vmo_read, zx_status_t, /* no attributes */, 4,
    (handle, buffer, offset, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_out_ptr<void> buffer,
    uint64_t offset,
    size_t buffer_size))

BLOCKING_SYSCALL(vmo_write, zx_status_t, /* no attributes */, 4,
    (handle, buffer, offset, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_in_ptr<const void> buffer,
    uint64_t offset,
    size_t buffer_size))

KERNEL_SYSCALL(vmo_get_size, zx_status_t, /* no attributes */, 2,
    (handle, size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    user_out_ptr<uint64_t> size))

KERNEL_SYSCALL(vmo_set_size, zx_status_t, /* no attributes */, 2,
    (handle, size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t size))

BLOCKING_SYSCALL(vmo_op_range, zx_status_t, /* no attributes */, 6,
    (handle, op, offset, size, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t op,
    uint64_t offset,
    uint64_t size,
    user_inout_ptr<void> buffer,
    size_t buffer_size))

KERNEL_SYSCALL(vmo_create_child, zx_status_t, /* no attributes */, 5,
    (handle, options, offset, size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    uint64_t offset,
    uint64_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(vmo_set_cache_policy, zx_status_t, /* no attributes */, 2,
    (handle, cache_policy), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t cache_policy))

KERNEL_SYSCALL(vmo_replace_as_executable, zx_status_t, /* no attributes */, 3,
    (handle, vmex, out), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmex,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(vmo_create_contiguous, zx_status_t, /* no attributes */, 4,
    (bti, size, alignment_log2, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bti,
    size_t size,
    uint32_t alignment_log2,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

KERNEL_SYSCALL(vmo_create_physical, zx_status_t, /* no attributes */, 4,
    (resource, paddr, size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    zx_paddr_t paddr,
    size_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) user_out_handle* out))

----- kernel-header.h END -----


----- kernel-wrappers.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

extern "C" {
syscall_result wrapper_bti_create(zx_handle_t iommu, uint32_t options, uint64_t bti_id, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_bti_create, pc, &VDso::ValidSyscallPC::bti_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_bti_create(iommu, options, bti_id, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_bti_pin(zx_handle_t handle, uint32_t options, zx_handle_t vmo, uint64_t offset, uint64_t size, zx_paddr_t* addrs, size_t num_addrs, zx_handle_t* pmt, uint64_t pc) {
    return do_syscall(ZX_SYS_bti_pin, pc, &VDso::ValidSyscallPC::bti_pin, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_pmt;
        auto result = sys_bti_pin(handle, options, vmo, offset, size, make_user_out_ptr(addrs), num_addrs, &out_handle_pmt);
        if (result != ZX_OK)
            return result;
        if (out_handle_pmt.begin_copyout(current_process, make_user_out_ptr(pmt)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_pmt.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_bti_release_quarantine(zx_handle_t handle, uint64_t pc) {
    return do_syscall(ZX_SYS_bti_release_quarantine, pc, &VDso::ValidSyscallPC::bti_release_quarantine, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_bti_release_quarantine(handle);
        return result;
    });
}
syscall_result wrapper_channel_create(uint32_t options, zx_handle_t* out0, zx_handle_t* out1, uint64_t pc) {
    return do_syscall(ZX_SYS_channel_create, pc, &VDso::ValidSyscallPC::channel_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out0;
        user_out_handle out_handle_out1;
        auto result = sys_channel_create(options, &out_handle_out0, &out_handle_out1);
        if (result != ZX_OK)
            return result;
        if (out_handle_out0.begin_copyout(current_process, make_user_out_ptr(out0)))
            return ZX_ERR_INVALID_ARGS;
        if (out_handle_out1.begin_copyout(current_process, make_user_out_ptr(out1)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out0.finish_copyout(current_process);
        out_handle_out1.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_channel_read(zx_handle_t handle, uint32_t options, void* bytes, zx_handle_t* handles, uint32_t num_bytes, uint32_t num_handles, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
    return do_syscall(ZX_SYS_channel_read, pc, &VDso::ValidSyscallPC::channel_read, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_channel_read(handle, options, make_user_out_ptr(bytes), make_user_out_ptr(handles), num_bytes, num_handles, make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
        return result;
    });
}
syscall_result wrapper_channel_read_etc(zx_handle_t handle, uint32_t options, void* bytes, zx_handle_info_t* handles, uint32_t num_bytes, uint32_t num_handles, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
    return do_syscall(ZX_SYS_channel_read_etc, pc, &VDso::ValidSyscallPC::channel_read_etc, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_channel_read_etc(handle, options, make_user_out_ptr(bytes), make_user_out_ptr(handles), num_bytes, num_handles, make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
        return result;
    });
}
syscall_result wrapper_channel_write(zx_handle_t handle, uint32_t options, const void* bytes, uint32_t num_bytes, const zx_handle_t* handles, uint32_t num_handles, uint64_t pc) {
    return do_syscall(ZX_SYS_channel_write, pc, &VDso::ValidSyscallPC::channel_write, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_channel_write(handle, options, make_user_in_ptr(bytes), num_bytes, make_user_in_ptr(handles), num_handles);
        return result;
    });
}
syscall_result wrapper_channel_write_etc(zx_handle_t handle, uint32_t options, const void* bytes, uint32_t num_bytes, zx_handle_disposition_t* handles, uint32_t num_handles, uint64_t pc) {
    return do_syscall(ZX_SYS_channel_write_etc, pc, &VDso::ValidSyscallPC::channel_write_etc, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_channel_write_etc(handle, options, make_user_in_ptr(bytes), num_bytes, make_user_inout_ptr(handles), num_handles);
        return result;
    });
}
syscall_result wrapper_channel_call_noretry(zx_handle_t handle, uint32_t options, zx_time_t deadline, const zx_channel_call_args_t* args, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
    return do_syscall(ZX_SYS_channel_call_noretry, pc, &VDso::ValidSyscallPC::channel_call_noretry, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_channel_call_noretry(handle, options, deadline, make_user_in_ptr(args), make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
        return result;
    });
}
syscall_result wrapper_channel_call_finish(zx_time_t deadline, const zx_channel_call_args_t* args, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
    return do_syscall(ZX_SYS_channel_call_finish, pc, &VDso::ValidSyscallPC::channel_call_finish, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_channel_call_finish(deadline, make_user_in_ptr(args), make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
        return result;
    });
}
syscall_result wrapper_channel_call_etc_noretry(zx_handle_t handle, uint32_t options, zx_time_t deadline, zx_channel_call_etc_args_t* args, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
    return do_syscall(ZX_SYS_channel_call_etc_noretry, pc, &VDso::ValidSyscallPC::channel_call_etc_noretry, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_channel_call_etc_noretry(handle, options, deadline, make_user_inout_ptr(args), make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
        return result;
    });
}
syscall_result wrapper_channel_call_etc_finish(zx_time_t deadline, zx_channel_call_etc_args_t* args, uint32_t* actual_bytes, uint32_t* actual_handles, uint64_t pc) {
    return do_syscall(ZX_SYS_channel_call_etc_finish, pc, &VDso::ValidSyscallPC::channel_call_etc_finish, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_channel_call_etc_finish(deadline, make_user_inout_ptr(args), make_user_out_ptr(actual_bytes), make_user_out_ptr(actual_handles));
        return result;
    });
}
syscall_result wrapper_clock_get(zx_clock_t clock_id, zx_time_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_clock_get, pc, &VDso::ValidSyscallPC::clock_get, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_clock_get(clock_id, make_user_out_ptr(out));
        return result;
    });
}
syscall_result wrapper_clock_adjust(zx_handle_t handle, zx_clock_t clock_id, int64_t offset, uint64_t pc) {
    return do_syscall(ZX_SYS_clock_adjust, pc, &VDso::ValidSyscallPC::clock_adjust, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_clock_adjust(handle, clock_id, offset);
        return result;
    });
}
syscall_result wrapper_clock_get_monotonic_via_kernel(uint64_t pc) {
    return do_syscall(ZX_SYS_clock_get_monotonic_via_kernel, pc, &VDso::ValidSyscallPC::clock_get_monotonic_via_kernel, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_clock_get_monotonic_via_kernel();
        return result;
    });
}
syscall_result wrapper_clock_create(uint64_t options, const void* args, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_clock_create, pc, &VDso::ValidSyscallPC::clock_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_clock_create(options, make_user_in_ptr(args), &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_clock_read(zx_handle_t handle, zx_time_t* now, uint64_t pc) {
    return do_syscall(ZX_SYS_clock_read, pc, &VDso::ValidSyscallPC::clock_read, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_clock_read(handle, make_user_out_ptr(now));
        return result;
    });
}
syscall_result wrapper_clock_get_details(zx_handle_t handle, uint64_t options, void* details, uint64_t pc) {
    return do_syscall(ZX_SYS_clock_get_details, pc, &VDso::ValidSyscallPC::clock_get_details, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_clock_get_details(handle, options, make_user_out_ptr(details));
        return result;
    });
}
syscall_result wrapper_clock_update(zx_handle_t handle, uint64_t options, const void* args, uint64_t pc) {
    return do_syscall(ZX_SYS_clock_update, pc, &VDso::ValidSyscallPC::clock_update, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_clock_update(handle, options, make_user_in_ptr(args));
        return result;
    });
}
syscall_result wrapper_cprng_draw_once(void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_cprng_draw_once, pc, &VDso::ValidSyscallPC::cprng_draw_once, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_cprng_draw_once(make_user_out_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_cprng_add_entropy(const void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_cprng_add_entropy, pc, &VDso::ValidSyscallPC::cprng_add_entropy, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_cprng_add_entropy(make_user_in_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_debug_read(zx_handle_t handle, char* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_debug_read, pc, &VDso::ValidSyscallPC::debug_read, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_debug_read(handle, make_user_out_ptr(buffer), buffer_size, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_debug_write(const char* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_debug_write, pc, &VDso::ValidSyscallPC::debug_write, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_debug_write(make_user_in_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_debug_send_command(zx_handle_t resource, const char* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_debug_send_command, pc, &VDso::ValidSyscallPC::debug_send_command, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_debug_send_command(resource, make_user_in_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_debuglog_create(zx_handle_t resource, uint32_t options, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_debuglog_create, pc, &VDso::ValidSyscallPC::debuglog_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_debuglog_create(resource, options, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_debuglog_write(zx_handle_t handle, uint32_t options, const void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_debuglog_write, pc, &VDso::ValidSyscallPC::debuglog_write, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_debuglog_write(handle, options, make_user_in_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_debuglog_read(zx_handle_t handle, uint32_t options, void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_debuglog_read, pc, &VDso::ValidSyscallPC::debuglog_read, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_debuglog_read(handle, options, make_user_out_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_event_create(uint32_t options, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_event_create, pc, &VDso::ValidSyscallPC::event_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_event_create(options, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_eventpair_create(uint32_t options, zx_handle_t* out0, zx_handle_t* out1, uint64_t pc) {
    return do_syscall(ZX_SYS_eventpair_create, pc, &VDso::ValidSyscallPC::eventpair_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out0;
        user_out_handle out_handle_out1;
        auto result = sys_eventpair_create(options, &out_handle_out0, &out_handle_out1);
        if (result != ZX_OK)
            return result;
        if (out_handle_out0.begin_copyout(current_process, make_user_out_ptr(out0)))
            return ZX_ERR_INVALID_ARGS;
        if (out_handle_out1.begin_copyout(current_process, make_user_out_ptr(out1)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out0.finish_copyout(current_process);
        out_handle_out1.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_exception_get_thread(zx_handle_t handle, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_exception_get_thread, pc, &VDso::ValidSyscallPC::exception_get_thread, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_exception_get_thread(handle, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_exception_get_process(zx_handle_t handle, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_exception_get_process, pc, &VDso::ValidSyscallPC::exception_get_process, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_exception_get_process(handle, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_fifo_create(size_t elem_count, size_t elem_size, uint32_t options, zx_handle_t* out0, zx_handle_t* out1, uint64_t pc) {
    return do_syscall(ZX_SYS_fifo_create, pc, &VDso::ValidSyscallPC::fifo_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out0;
        user_out_handle out_handle_out1;
        auto result = sys_fifo_create(elem_count, elem_size, options, &out_handle_out0, &out_handle_out1);
        if (result != ZX_OK)
            return result;
        if (out_handle_out0.begin_copyout(current_process, make_user_out_ptr(out0)))
            return ZX_ERR_INVALID_ARGS;
        if (out_handle_out1.begin_copyout(current_process, make_user_out_ptr(out1)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out0.finish_copyout(current_process);
        out_handle_out1.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_fifo_read(zx_handle_t handle, size_t elem_size, void* data, size_t data_size, size_t* actual_count, uint64_t pc) {
    return do_syscall(ZX_SYS_fifo_read, pc, &VDso::ValidSyscallPC::fifo_read, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_fifo_read(handle, elem_size, make_user_out_ptr(data), data_size, make_user_out_ptr(actual_count));
        return result;
    });
}
syscall_result wrapper_fifo_write(zx_handle_t handle, size_t elem_size, const void* data, size_t count, size_t* actual_count, uint64_t pc) {
    return do_syscall(ZX_SYS_fifo_write, pc, &VDso::ValidSyscallPC::fifo_write, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_fifo_write(handle, elem_size, make_user_in_ptr(data), count, make_user_out_ptr(actual_count));
        return result;
    });
}
syscall_result wrapper_framebuffer_get_info(zx_handle_t resource, uint32_t* format, uint32_t* width, uint32_t* height, uint32_t* stride, uint64_t pc) {
    return do_syscall(ZX_SYS_framebuffer_get_info, pc, &VDso::ValidSyscallPC::framebuffer_get_info, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_framebuffer_get_info(resource, make_user_out_ptr(format), make_user_out_ptr(width), make_user_out_ptr(height), make_user_out_ptr(stride));
        return result;
    });
}
syscall_result wrapper_framebuffer_set_range(zx_handle_t resource, zx_handle_t vmo, uint32_t len, uint32_t format, uint32_t width, uint32_t height, uint32_t stride, uint64_t pc) {
    return do_syscall(ZX_SYS_framebuffer_set_range, pc, &VDso::ValidSyscallPC::framebuffer_set_range, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_framebuffer_set_range(resource, vmo, len, format, width, height, stride);
        return result;
    });
}
syscall_result wrapper_futex_wait(const zx_futex_t* value_ptr, zx_futex_t current_value, zx_handle_t new_futex_owner, zx_time_t deadline, uint64_t pc) {
    return do_syscall(ZX_SYS_futex_wait, pc, &VDso::ValidSyscallPC::futex_wait, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_futex_wait(make_user_in_ptr(value_ptr), current_value, new_futex_owner, deadline);
        return result;
    });
}
syscall_result wrapper_futex_wake(const zx_futex_t* value_ptr, uint32_t wake_count, uint64_t pc) {
    return do_syscall(ZX_SYS_futex_wake, pc, &VDso::ValidSyscallPC::futex_wake, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_futex_wake(make_user_in_ptr(value_ptr), wake_count);
        return result;
    });
}
syscall_result wrapper_futex_requeue(const zx_futex_t* value_ptr, uint32_t wake_count, zx_futex_t current_value, const zx_futex_t* requeue_ptr, uint32_t requeue_count, zx_handle_t new_requeue_owner, uint64_t pc) {
    return do_syscall(ZX_SYS_futex_requeue, pc, &VDso::ValidSyscallPC::futex_requeue, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_futex_requeue(make_user_in_ptr(value_ptr), wake_count, current_value, make_user_in_ptr(requeue_ptr), requeue_count, new_requeue_owner);
        return result;
    });
}
syscall_result wrapper_futex_wake_single_owner(const zx_futex_t* value_ptr, uint64_t pc) {
    return do_syscall(ZX_SYS_futex_wake_single_owner, pc, &VDso::ValidSyscallPC::futex_wake_single_owner, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_futex_wake_single_owner(make_user_in_ptr(value_ptr));
        return result;
    });
}
syscall_result wrapper_futex_requeue_single_owner(const zx_futex_t* value_ptr, zx_futex_t current_value, const zx_futex_t* requeue_ptr, uint32_t requeue_count, zx_handle_t new_requeue_owner, uint64_t pc) {
    return do_syscall(ZX_SYS_futex_requeue_single_owner, pc, &VDso::ValidSyscallPC::futex_requeue_single_owner, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_futex_requeue_single_owner(make_user_in_ptr(value_ptr), current_value, make_user_in_ptr(requeue_ptr), requeue_count, new_requeue_owner);
        return result;
    });
}
syscall_result wrapper_futex_get_owner(const zx_futex_t* value_ptr, zx_koid_t* koid, uint64_t pc) {
    return do_syscall(ZX_SYS_futex_get_owner, pc, &VDso::ValidSyscallPC::futex_get_owner, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_futex_get_owner(make_user_in_ptr(value_ptr), make_user_out_ptr(koid));
        return result;
    });
}
syscall_result wrapper_guest_create(zx_handle_t resource, uint32_t options, zx_handle_t* guest_handle, zx_handle_t* vmar_handle, uint64_t pc) {
    return do_syscall(ZX_SYS_guest_create, pc, &VDso::ValidSyscallPC::guest_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_guest_handle;
        user_out_handle out_handle_vmar_handle;
        auto result = sys_guest_create(resource, options, &out_handle_guest_handle, &out_handle_vmar_handle);
        if (result != ZX_OK)
            return result;
        if (out_handle_guest_handle.begin_copyout(current_process, make_user_out_ptr(guest_handle)))
            return ZX_ERR_INVALID_ARGS;
        if (out_handle_vmar_handle.begin_copyout(current_process, make_user_out_ptr(vmar_handle)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_guest_handle.finish_copyout(current_process);
        out_handle_vmar_handle.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_guest_set_trap(zx_handle_t handle, uint32_t kind, zx_vaddr_t addr, size_t size, zx_handle_t port_handle, uint64_t key, uint64_t pc) {
    return do_syscall(ZX_SYS_guest_set_trap, pc, &VDso::ValidSyscallPC::guest_set_trap, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_guest_set_trap(handle, kind, addr, size, port_handle, key);
        return result;
    });
}
syscall_result wrapper_handle_close(zx_handle_t handle, uint64_t pc) {
    return do_syscall(ZX_SYS_handle_close, pc, &VDso::ValidSyscallPC::handle_close, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_handle_close(handle);
        return result;
    });
}
syscall_result wrapper_handle_close_many(const zx_handle_t* handles, size_t num_handles, uint64_t pc) {
    return do_syscall(ZX_SYS_handle_close_many, pc, &VDso::ValidSyscallPC::handle_close_many, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_handle_close_many(make_user_in_ptr(handles), num_handles);
        return result;
    });
}
syscall_result wrapper_handle_duplicate(zx_handle_t handle, zx_rights_t rights, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_handle_duplicate, pc, &VDso::ValidSyscallPC::handle_duplicate, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_handle_duplicate(handle, rights, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_handle_replace(zx_handle_t handle, zx_rights_t rights, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_handle_replace, pc, &VDso::ValidSyscallPC::handle_replace, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_handle_replace(handle, rights, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_interrupt_create(zx_handle_t src_obj, uint32_t src_num, uint32_t options, zx_handle_t* out_handle, uint64_t pc) {
    return do_syscall(ZX_SYS_interrupt_create, pc, &VDso::ValidSyscallPC::interrupt_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out_handle;
        auto result = sys_interrupt_create(src_obj, src_num, options, &out_handle_out_handle);
        if (result != ZX_OK)
            return result;
        if (out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(out_handle)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out_handle.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_interrupt_bind(zx_handle_t handle, zx_handle_t port_handle, uint64_t key, uint32_t options, uint64_t pc) {
    return do_syscall(ZX_SYS_interrupt_bind, pc, &VDso::ValidSyscallPC::interrupt_bind, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_interrupt_bind(handle, port_handle, key, options);
        return result;
    });
}
syscall_result wrapper_interrupt_wait(zx_handle_t handle, zx_time_t* out_timestamp, uint64_t pc) {
    return do_syscall(ZX_SYS_interrupt_wait, pc, &VDso::ValidSyscallPC::interrupt_wait, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_interrupt_wait(handle, make_user_out_ptr(out_timestamp));
        return result;
    });
}
syscall_result wrapper_interrupt_destroy(zx_handle_t handle, uint64_t pc) {
    return do_syscall(ZX_SYS_interrupt_destroy, pc, &VDso::ValidSyscallPC::interrupt_destroy, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_interrupt_destroy(handle);
        return result;
    });
}
syscall_result wrapper_interrupt_ack(zx_handle_t handle, uint64_t pc) {
    return do_syscall(ZX_SYS_interrupt_ack, pc, &VDso::ValidSyscallPC::interrupt_ack, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_interrupt_ack(handle);
        return result;
    });
}
syscall_result wrapper_interrupt_trigger(zx_handle_t handle, uint32_t options, zx_time_t timestamp, uint64_t pc) {
    return do_syscall(ZX_SYS_interrupt_trigger, pc, &VDso::ValidSyscallPC::interrupt_trigger, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_interrupt_trigger(handle, options, timestamp);
        return result;
    });
}
syscall_result wrapper_interrupt_bind_vcpu(zx_handle_t handle, zx_handle_t vcpu, uint32_t options, uint64_t pc) {
    return do_syscall(ZX_SYS_interrupt_bind_vcpu, pc, &VDso::ValidSyscallPC::interrupt_bind_vcpu, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_interrupt_bind_vcpu(handle, vcpu, options);
        return result;
    });
}
syscall_result wrapper_iommu_create(zx_handle_t resource, uint32_t type, const void* desc, size_t desc_size, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_iommu_create, pc, &VDso::ValidSyscallPC::iommu_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_iommu_create(resource, type, make_user_in_ptr(desc), desc_size, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_ioports_request(zx_handle_t resource, uint16_t io_addr, uint32_t len, uint64_t pc) {
    return do_syscall(ZX_SYS_ioports_request, pc, &VDso::ValidSyscallPC::ioports_request, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_ioports_request(resource, io_addr, len);
        return result;
    });
}
syscall_result wrapper_ioports_release(zx_handle_t resource, uint16_t io_addr, uint32_t len, uint64_t pc) {
    return do_syscall(ZX_SYS_ioports_release, pc, &VDso::ValidSyscallPC::ioports_release, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_ioports_release(resource, io_addr, len);
        return result;
    });
}
syscall_result wrapper_job_create(zx_handle_t parent_job, uint32_t options, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_job_create, pc, &VDso::ValidSyscallPC::job_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_job_create(parent_job, options, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_job_set_policy(zx_handle_t handle, uint32_t options, uint32_t topic, const void* policy, uint32_t policy_size, uint64_t pc) {
    return do_syscall(ZX_SYS_job_set_policy, pc, &VDso::ValidSyscallPC::job_set_policy, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_job_set_policy(handle, options, topic, make_user_in_ptr(policy), policy_size);
        return result;
    });
}
syscall_result wrapper_job_set_critical(zx_handle_t job, uint32_t options, zx_handle_t process, uint64_t pc) {
    return do_syscall(ZX_SYS_job_set_critical, pc, &VDso::ValidSyscallPC::job_set_critical, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_job_set_critical(job, options, process);
        return result;
    });
}
syscall_result wrapper_ktrace_read(zx_handle_t handle, void* data, uint32_t offset, size_t data_size, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_ktrace_read, pc, &VDso::ValidSyscallPC::ktrace_read, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_ktrace_read(handle, make_user_out_ptr(data), offset, data_size, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_ktrace_control(zx_handle_t handle, uint32_t action, uint32_t options, void* ptr, uint64_t pc) {
    return do_syscall(ZX_SYS_ktrace_control, pc, &VDso::ValidSyscallPC::ktrace_control, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_ktrace_control(handle, action, options, make_user_inout_ptr(ptr));
        return result;
    });
}
syscall_result wrapper_ktrace_write(zx_handle_t handle, uint32_t id, uint32_t arg0, uint32_t arg1, uint64_t pc) {
    return do_syscall(ZX_SYS_ktrace_write, pc, &VDso::ValidSyscallPC::ktrace_write, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_ktrace_write(handle, id, arg0, arg1);
        return result;
    });
}
syscall_result wrapper_nanosleep(zx_time_t deadline, uint64_t pc) {
    return do_syscall(ZX_SYS_nanosleep, pc, &VDso::ValidSyscallPC::nanosleep, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_nanosleep(deadline);
        return result;
    });
}
syscall_result wrapper_ticks_get_via_kernel(uint64_t pc) {
    return do_syscall(ZX_SYS_ticks_get_via_kernel, pc, &VDso::ValidSyscallPC::ticks_get_via_kernel, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_ticks_get_via_kernel();
        return result;
    });
}
syscall_result wrapper_msi_allocate(zx_handle_t handle, uint32_t count, zx_handle_t* out_allocation, uint64_t pc) {
    return do_syscall(ZX_SYS_msi_allocate, pc, &VDso::ValidSyscallPC::msi_allocate, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out_allocation;
        auto result = sys_msi_allocate(handle, count, &out_handle_out_allocation);
        if (result != ZX_OK)
            return result;
        if (out_handle_out_allocation.begin_copyout(current_process, make_user_out_ptr(out_allocation)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out_allocation.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_msi_create(zx_handle_t handle, uint32_t options, uint32_t msi_id, zx_handle_t vmo, size_t vmo_offset, zx_handle_t* out_interrupt, uint64_t pc) {
    return do_syscall(ZX_SYS_msi_create, pc, &VDso::ValidSyscallPC::msi_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out_interrupt;
        auto result = sys_msi_create(handle, options, msi_id, vmo, vmo_offset, &out_handle_out_interrupt);
        if (result != ZX_OK)
            return result;
        if (out_handle_out_interrupt.begin_copyout(current_process, make_user_out_ptr(out_interrupt)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out_interrupt.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_mtrace_control(zx_handle_t handle, uint32_t kind, uint32_t action, uint32_t options, void* ptr, size_t ptr_size, uint64_t pc) {
    return do_syscall(ZX_SYS_mtrace_control, pc, &VDso::ValidSyscallPC::mtrace_control, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_mtrace_control(handle, kind, action, options, make_user_inout_ptr(ptr), ptr_size);
        return result;
    });
}
syscall_result wrapper_object_wait_one(zx_handle_t handle, zx_signals_t signals, zx_time_t deadline, zx_signals_t* observed, uint64_t pc) {
    return do_syscall(ZX_SYS_object_wait_one, pc, &VDso::ValidSyscallPC::object_wait_one, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_object_wait_one(handle, signals, deadline, make_user_out_ptr(observed));
        return result;
    });
}
syscall_result wrapper_object_wait_many(zx_wait_item_t* items, size_t num_items, zx_time_t deadline, uint64_t pc) {
    return do_syscall(ZX_SYS_object_wait_many, pc, &VDso::ValidSyscallPC::object_wait_many, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_object_wait_many(make_user_inout_ptr(items), num_items, deadline);
        return result;
    });
}
syscall_result wrapper_object_wait_async(zx_handle_t handle, zx_handle_t port, uint64_t key, zx_signals_t signals, uint32_t options, uint64_t pc) {
    return do_syscall(ZX_SYS_object_wait_async, pc, &VDso::ValidSyscallPC::object_wait_async, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_object_wait_async(handle, port, key, signals, options);
        return result;
    });
}
syscall_result wrapper_object_signal(zx_handle_t handle, uint32_t clear_mask, uint32_t set_mask, uint64_t pc) {
    return do_syscall(ZX_SYS_object_signal, pc, &VDso::ValidSyscallPC::object_signal, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_object_signal(handle, clear_mask, set_mask);
        return result;
    });
}
syscall_result wrapper_object_signal_peer(zx_handle_t handle, uint32_t clear_mask, uint32_t set_mask, uint64_t pc) {
    return do_syscall(ZX_SYS_object_signal_peer, pc, &VDso::ValidSyscallPC::object_signal_peer, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_object_signal_peer(handle, clear_mask, set_mask);
        return result;
    });
}
syscall_result wrapper_object_get_property(zx_handle_t handle, uint32_t property, void* value, size_t value_size, uint64_t pc) {
    return do_syscall(ZX_SYS_object_get_property, pc, &VDso::ValidSyscallPC::object_get_property, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_object_get_property(handle, property, make_user_out_ptr(value), value_size);
        return result;
    });
}
syscall_result wrapper_object_set_property(zx_handle_t handle, uint32_t property, const void* value, size_t value_size, uint64_t pc) {
    return do_syscall(ZX_SYS_object_set_property, pc, &VDso::ValidSyscallPC::object_set_property, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_object_set_property(handle, property, make_user_in_ptr(value), value_size);
        return result;
    });
}
syscall_result wrapper_object_get_info(zx_handle_t handle, uint32_t topic, void* buffer, size_t buffer_size, size_t* actual, size_t* avail, uint64_t pc) {
    return do_syscall(ZX_SYS_object_get_info, pc, &VDso::ValidSyscallPC::object_get_info, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_object_get_info(handle, topic, make_user_out_ptr(buffer), buffer_size, make_user_out_ptr(actual), make_user_out_ptr(avail));
        return result;
    });
}
syscall_result wrapper_object_get_child(zx_handle_t handle, uint64_t koid, zx_rights_t rights, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_object_get_child, pc, &VDso::ValidSyscallPC::object_get_child, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_object_get_child(handle, koid, rights, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_object_set_profile(zx_handle_t handle, zx_handle_t profile, uint32_t options, uint64_t pc) {
    return do_syscall(ZX_SYS_object_set_profile, pc, &VDso::ValidSyscallPC::object_set_profile, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_object_set_profile(handle, profile, options);
        return result;
    });
}
syscall_result wrapper_pager_create(uint32_t options, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_pager_create, pc, &VDso::ValidSyscallPC::pager_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_pager_create(options, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_pager_create_vmo(zx_handle_t pager, uint32_t options, zx_handle_t port, uint64_t key, uint64_t size, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_pager_create_vmo, pc, &VDso::ValidSyscallPC::pager_create_vmo, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_pager_create_vmo(pager, options, port, key, size, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_pager_detach_vmo(zx_handle_t pager, zx_handle_t vmo, uint64_t pc) {
    return do_syscall(ZX_SYS_pager_detach_vmo, pc, &VDso::ValidSyscallPC::pager_detach_vmo, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pager_detach_vmo(pager, vmo);
        return result;
    });
}
syscall_result wrapper_pager_supply_pages(zx_handle_t pager, zx_handle_t pager_vmo, uint64_t offset, uint64_t length, zx_handle_t aux_vmo, uint64_t aux_offset, uint64_t pc) {
    return do_syscall(ZX_SYS_pager_supply_pages, pc, &VDso::ValidSyscallPC::pager_supply_pages, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pager_supply_pages(pager, pager_vmo, offset, length, aux_vmo, aux_offset);
        return result;
    });
}
syscall_result wrapper_pager_op_range(zx_handle_t pager, uint32_t op, zx_handle_t pager_vmo, uint64_t offset, uint64_t length, uint64_t data, uint64_t pc) {
    return do_syscall(ZX_SYS_pager_op_range, pc, &VDso::ValidSyscallPC::pager_op_range, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pager_op_range(pager, op, pager_vmo, offset, length, data);
        return result;
    });
}
syscall_result wrapper_pc_firmware_tables(zx_handle_t handle, zx_paddr_t* acpi_rsdp, zx_paddr_t* smbios, uint64_t pc) {
    return do_syscall(ZX_SYS_pc_firmware_tables, pc, &VDso::ValidSyscallPC::pc_firmware_tables, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pc_firmware_tables(handle, make_user_out_ptr(acpi_rsdp), make_user_out_ptr(smbios));
        return result;
    });
}
syscall_result wrapper_pci_get_nth_device(zx_handle_t handle, uint32_t index, zx_pcie_device_info_t* out_info, zx_handle_t* out_handle, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_get_nth_device, pc, &VDso::ValidSyscallPC::pci_get_nth_device, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out_handle;
        auto result = sys_pci_get_nth_device(handle, index, make_user_out_ptr(out_info), &out_handle_out_handle);
        if (result != ZX_OK)
            return result;
        if (out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(out_handle)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out_handle.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_pci_enable_bus_master(zx_handle_t handle, uint32_t enable, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_enable_bus_master, pc, &VDso::ValidSyscallPC::pci_enable_bus_master, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pci_enable_bus_master(handle, enable);
        return result;
    });
}
syscall_result wrapper_pci_reset_device(zx_handle_t handle, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_reset_device, pc, &VDso::ValidSyscallPC::pci_reset_device, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pci_reset_device(handle);
        return result;
    });
}
syscall_result wrapper_pci_config_read(zx_handle_t handle, uint16_t offset, size_t width, uint32_t* out_val, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_config_read, pc, &VDso::ValidSyscallPC::pci_config_read, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pci_config_read(handle, offset, width, make_user_out_ptr(out_val));
        return result;
    });
}
syscall_result wrapper_pci_config_write(zx_handle_t handle, uint16_t offset, size_t width, uint32_t val, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_config_write, pc, &VDso::ValidSyscallPC::pci_config_write, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pci_config_write(handle, offset, width, val);
        return result;
    });
}
syscall_result wrapper_pci_cfg_pio_rw(zx_handle_t handle, uint8_t bus, uint8_t dev, uint8_t func, uint8_t offset, uint32_t* val, size_t width, uint32_t write, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_cfg_pio_rw, pc, &VDso::ValidSyscallPC::pci_cfg_pio_rw, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pci_cfg_pio_rw(handle, bus, dev, func, offset, make_user_inout_ptr(val), width, write);
        return result;
    });
}
syscall_result wrapper_pci_get_bar(zx_handle_t handle, uint32_t bar_num, zx_pci_bar_t* out_bar, zx_handle_t* out_handle, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_get_bar, pc, &VDso::ValidSyscallPC::pci_get_bar, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out_handle;
        auto result = sys_pci_get_bar(handle, bar_num, make_user_out_ptr(out_bar), &out_handle_out_handle);
        if (result != ZX_OK)
            return result;
        if (out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(out_handle)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out_handle.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_pci_map_interrupt(zx_handle_t handle, int32_t which_irq, zx_handle_t* out_handle, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_map_interrupt, pc, &VDso::ValidSyscallPC::pci_map_interrupt, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out_handle;
        auto result = sys_pci_map_interrupt(handle, which_irq, &out_handle_out_handle);
        if (result != ZX_OK)
            return result;
        if (out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(out_handle)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out_handle.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_pci_query_irq_mode(zx_handle_t handle, uint32_t mode, uint32_t* out_max_irqs, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_query_irq_mode, pc, &VDso::ValidSyscallPC::pci_query_irq_mode, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pci_query_irq_mode(handle, mode, make_user_out_ptr(out_max_irqs));
        return result;
    });
}
syscall_result wrapper_pci_set_irq_mode(zx_handle_t handle, uint32_t mode, uint32_t requested_irq_count, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_set_irq_mode, pc, &VDso::ValidSyscallPC::pci_set_irq_mode, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pci_set_irq_mode(handle, mode, requested_irq_count);
        return result;
    });
}
syscall_result wrapper_pci_init(zx_handle_t handle, const zx_pci_init_arg_t* init_buf, uint32_t len, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_init, pc, &VDso::ValidSyscallPC::pci_init, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pci_init(handle, make_user_in_ptr(init_buf), len);
        return result;
    });
}
syscall_result wrapper_pci_add_subtract_io_range(zx_handle_t handle, uint32_t mmio, uint64_t base, uint64_t len, uint32_t add, uint64_t pc) {
    return do_syscall(ZX_SYS_pci_add_subtract_io_range, pc, &VDso::ValidSyscallPC::pci_add_subtract_io_range, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pci_add_subtract_io_range(handle, mmio, base, len, add);
        return result;
    });
}
syscall_result wrapper_pmt_unpin(zx_handle_t handle, uint64_t pc) {
    return do_syscall(ZX_SYS_pmt_unpin, pc, &VDso::ValidSyscallPC::pmt_unpin, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_pmt_unpin(handle);
        return result;
    });
}
syscall_result wrapper_port_create(uint32_t options, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_port_create, pc, &VDso::ValidSyscallPC::port_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_port_create(options, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_port_queue(zx_handle_t handle, const zx_port_packet_t* packet, uint64_t pc) {
    return do_syscall(ZX_SYS_port_queue, pc, &VDso::ValidSyscallPC::port_queue, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_port_queue(handle, make_user_in_ptr(packet));
        return result;
    });
}
syscall_result wrapper_port_wait(zx_handle_t handle, zx_time_t deadline, zx_port_packet_t* packet, uint64_t pc) {
    return do_syscall(ZX_SYS_port_wait, pc, &VDso::ValidSyscallPC::port_wait, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_port_wait(handle, deadline, make_user_out_ptr(packet));
        return result;
    });
}
syscall_result wrapper_port_cancel(zx_handle_t handle, zx_handle_t source, uint64_t key, uint64_t pc) {
    return do_syscall(ZX_SYS_port_cancel, pc, &VDso::ValidSyscallPC::port_cancel, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_port_cancel(handle, source, key);
        return result;
    });
}
syscall_result wrapper_process_exit(int64_t retcode, uint64_t pc) {
    return do_syscall(ZX_SYS_process_exit, pc, &VDso::ValidSyscallPC::process_exit, [&](ProcessDispatcher* current_process) -> uint64_t {
        /*noreturn*/ sys_process_exit(retcode);
        /* NOTREACHED */
        return ZX_ERR_BAD_STATE;
    });
}
syscall_result wrapper_process_create(zx_handle_t job, const char* name, size_t name_size, uint32_t options, zx_handle_t* proc_handle, zx_handle_t* vmar_handle, uint64_t pc) {
    return do_syscall(ZX_SYS_process_create, pc, &VDso::ValidSyscallPC::process_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_proc_handle;
        user_out_handle out_handle_vmar_handle;
        auto result = sys_process_create(job, make_user_in_ptr(name), name_size, options, &out_handle_proc_handle, &out_handle_vmar_handle);
        if (result != ZX_OK)
            return result;
        if (out_handle_proc_handle.begin_copyout(current_process, make_user_out_ptr(proc_handle)))
            return ZX_ERR_INVALID_ARGS;
        if (out_handle_vmar_handle.begin_copyout(current_process, make_user_out_ptr(vmar_handle)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_proc_handle.finish_copyout(current_process);
        out_handle_vmar_handle.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_process_start(zx_handle_t handle, zx_handle_t thread, zx_vaddr_t entry, zx_vaddr_t stack, zx_handle_t arg1, uintptr_t arg2, uint64_t pc) {
    return do_syscall(ZX_SYS_process_start, pc, &VDso::ValidSyscallPC::process_start, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_process_start(handle, thread, entry, stack, arg1, arg2);
        return result;
    });
}
syscall_result wrapper_process_read_memory(zx_handle_t handle, zx_vaddr_t vaddr, void* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_process_read_memory, pc, &VDso::ValidSyscallPC::process_read_memory, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_process_read_memory(handle, vaddr, make_user_out_ptr(buffer), buffer_size, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_process_write_memory(zx_handle_t handle, zx_vaddr_t vaddr, const void* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_process_write_memory, pc, &VDso::ValidSyscallPC::process_write_memory, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_process_write_memory(handle, vaddr, make_user_in_ptr(buffer), buffer_size, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_profile_create(zx_handle_t root_job, uint32_t options, const zx_profile_info_t* profile, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_profile_create, pc, &VDso::ValidSyscallPC::profile_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_profile_create(root_job, options, make_user_in_ptr(profile), &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_resource_create(zx_handle_t parent_rsrc, uint32_t options, uint64_t base, size_t size, const char* name, size_t name_size, zx_handle_t* resource_out, uint64_t pc) {
    return do_syscall(ZX_SYS_resource_create, pc, &VDso::ValidSyscallPC::resource_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_resource_out;
        auto result = sys_resource_create(parent_rsrc, options, base, size, make_user_in_ptr(name), name_size, &out_handle_resource_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_resource_out.begin_copyout(current_process, make_user_out_ptr(resource_out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_resource_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_smc_call(zx_handle_t handle, const zx_smc_parameters_t* parameters, zx_smc_result_t* out_smc_result, uint64_t pc) {
    return do_syscall(ZX_SYS_smc_call, pc, &VDso::ValidSyscallPC::smc_call, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_smc_call(handle, make_user_in_ptr(parameters), make_user_out_ptr(out_smc_result));
        return result;
    });
}
syscall_result wrapper_socket_create(uint32_t options, zx_handle_t* out0, zx_handle_t* out1, uint64_t pc) {
    return do_syscall(ZX_SYS_socket_create, pc, &VDso::ValidSyscallPC::socket_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out0;
        user_out_handle out_handle_out1;
        auto result = sys_socket_create(options, &out_handle_out0, &out_handle_out1);
        if (result != ZX_OK)
            return result;
        if (out_handle_out0.begin_copyout(current_process, make_user_out_ptr(out0)))
            return ZX_ERR_INVALID_ARGS;
        if (out_handle_out1.begin_copyout(current_process, make_user_out_ptr(out1)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out0.finish_copyout(current_process);
        out_handle_out1.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_socket_write(zx_handle_t handle, uint32_t options, const void* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_socket_write, pc, &VDso::ValidSyscallPC::socket_write, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_socket_write(handle, options, make_user_in_ptr(buffer), buffer_size, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_socket_read(zx_handle_t handle, uint32_t options, void* buffer, size_t buffer_size, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_socket_read, pc, &VDso::ValidSyscallPC::socket_read, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_socket_read(handle, options, make_user_out_ptr(buffer), buffer_size, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_socket_shutdown(zx_handle_t handle, uint32_t options, uint64_t pc) {
    return do_syscall(ZX_SYS_socket_shutdown, pc, &VDso::ValidSyscallPC::socket_shutdown, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_socket_shutdown(handle, options);
        return result;
    });
}
syscall_result wrapper_stream_create(uint32_t options, zx_handle_t vmo, zx_off_t seek, zx_handle_t* out_stream, uint64_t pc) {
    return do_syscall(ZX_SYS_stream_create, pc, &VDso::ValidSyscallPC::stream_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out_stream;
        auto result = sys_stream_create(options, vmo, seek, &out_handle_out_stream);
        if (result != ZX_OK)
            return result;
        if (out_handle_out_stream.begin_copyout(current_process, make_user_out_ptr(out_stream)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out_stream.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_stream_writev(zx_handle_t handle, uint32_t options, const zx_iovec_t* vector, size_t num_vector, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_stream_writev, pc, &VDso::ValidSyscallPC::stream_writev, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_stream_writev(handle, options, make_user_in_ptr(vector), num_vector, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_stream_writev_at(zx_handle_t handle, uint32_t options, zx_off_t offset, const zx_iovec_t* vector, size_t num_vector, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_stream_writev_at, pc, &VDso::ValidSyscallPC::stream_writev_at, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_stream_writev_at(handle, options, offset, make_user_in_ptr(vector), num_vector, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_stream_readv(zx_handle_t handle, uint32_t options, zx_iovec_t* vector, size_t num_vector, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_stream_readv, pc, &VDso::ValidSyscallPC::stream_readv, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_stream_readv(handle, options, make_user_out_ptr(vector), num_vector, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_stream_readv_at(zx_handle_t handle, uint32_t options, zx_off_t offset, zx_iovec_t* vector, size_t num_vector, size_t* actual, uint64_t pc) {
    return do_syscall(ZX_SYS_stream_readv_at, pc, &VDso::ValidSyscallPC::stream_readv_at, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_stream_readv_at(handle, options, offset, make_user_out_ptr(vector), num_vector, make_user_out_ptr(actual));
        return result;
    });
}
syscall_result wrapper_stream_seek(zx_handle_t handle, zx_stream_seek_origin_t whence, int64_t offset, zx_off_t* out_seek, uint64_t pc) {
    return do_syscall(ZX_SYS_stream_seek, pc, &VDso::ValidSyscallPC::stream_seek, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_stream_seek(handle, whence, offset, make_user_out_ptr(out_seek));
        return result;
    });
}
syscall_result wrapper_syscall_test_0(uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_0, pc, &VDso::ValidSyscallPC::syscall_test_0, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_0();
        return result;
    });
}
syscall_result wrapper_syscall_test_1(int32_t a, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_1, pc, &VDso::ValidSyscallPC::syscall_test_1, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_1(a);
        return result;
    });
}
syscall_result wrapper_syscall_test_2(int32_t a, int32_t b, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_2, pc, &VDso::ValidSyscallPC::syscall_test_2, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_2(a, b);
        return result;
    });
}
syscall_result wrapper_syscall_test_3(int32_t a, int32_t b, int32_t c, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_3, pc, &VDso::ValidSyscallPC::syscall_test_3, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_3(a, b, c);
        return result;
    });
}
syscall_result wrapper_syscall_test_4(int32_t a, int32_t b, int32_t c, int32_t d, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_4, pc, &VDso::ValidSyscallPC::syscall_test_4, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_4(a, b, c, d);
        return result;
    });
}
syscall_result wrapper_syscall_test_5(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_5, pc, &VDso::ValidSyscallPC::syscall_test_5, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_5(a, b, c, d, e);
        return result;
    });
}
syscall_result wrapper_syscall_test_6(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, int32_t f, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_6, pc, &VDso::ValidSyscallPC::syscall_test_6, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_6(a, b, c, d, e, f);
        return result;
    });
}
syscall_result wrapper_syscall_test_7(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, int32_t f, int32_t g, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_7, pc, &VDso::ValidSyscallPC::syscall_test_7, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_7(a, b, c, d, e, f, g);
        return result;
    });
}
syscall_result wrapper_syscall_test_8(int32_t a, int32_t b, int32_t c, int32_t d, int32_t e, int32_t f, int32_t g, int32_t h, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_8, pc, &VDso::ValidSyscallPC::syscall_test_8, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_8(a, b, c, d, e, f, g, h);
        return result;
    });
}
syscall_result wrapper_syscall_test_wrapper(int32_t a, int32_t b, int32_t c, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_wrapper, pc, &VDso::ValidSyscallPC::syscall_test_wrapper, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_syscall_test_wrapper(a, b, c);
        return result;
    });
}
syscall_result wrapper_syscall_test_handle_create(zx_status_t return_value, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_syscall_test_handle_create, pc, &VDso::ValidSyscallPC::syscall_test_handle_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_syscall_test_handle_create(return_value, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_system_get_event(zx_handle_t root_job, uint32_t kind, zx_handle_t* event, uint64_t pc) {
    return do_syscall(ZX_SYS_system_get_event, pc, &VDso::ValidSyscallPC::system_get_event, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_event;
        auto result = sys_system_get_event(root_job, kind, &out_handle_event);
        if (result != ZX_OK)
            return result;
        if (out_handle_event.begin_copyout(current_process, make_user_out_ptr(event)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_event.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_system_mexec(zx_handle_t resource, zx_handle_t kernel_vmo, zx_handle_t bootimage_vmo, uint64_t pc) {
    return do_syscall(ZX_SYS_system_mexec, pc, &VDso::ValidSyscallPC::system_mexec, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_system_mexec(resource, kernel_vmo, bootimage_vmo);
        return result;
    });
}
syscall_result wrapper_system_mexec_payload_get(zx_handle_t resource, void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_system_mexec_payload_get, pc, &VDso::ValidSyscallPC::system_mexec_payload_get, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_system_mexec_payload_get(resource, make_user_out_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_system_powerctl(zx_handle_t resource, uint32_t cmd, const zx_system_powerctl_arg_t* arg, uint64_t pc) {
    return do_syscall(ZX_SYS_system_powerctl, pc, &VDso::ValidSyscallPC::system_powerctl, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_system_powerctl(resource, cmd, make_user_in_ptr(arg));
        return result;
    });
}
syscall_result wrapper_task_suspend(zx_handle_t handle, zx_handle_t* token, uint64_t pc) {
    return do_syscall(ZX_SYS_task_suspend, pc, &VDso::ValidSyscallPC::task_suspend, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_token;
        auto result = sys_task_suspend(handle, &out_handle_token);
        if (result != ZX_OK)
            return result;
        if (out_handle_token.begin_copyout(current_process, make_user_out_ptr(token)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_token.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_task_suspend_token(zx_handle_t handle, zx_handle_t* token, uint64_t pc) {
    return do_syscall(ZX_SYS_task_suspend_token, pc, &VDso::ValidSyscallPC::task_suspend_token, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_token;
        auto result = sys_task_suspend_token(handle, &out_handle_token);
        if (result != ZX_OK)
            return result;
        if (out_handle_token.begin_copyout(current_process, make_user_out_ptr(token)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_token.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_task_create_exception_channel(zx_handle_t handle, uint32_t options, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_task_create_exception_channel, pc, &VDso::ValidSyscallPC::task_create_exception_channel, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_task_create_exception_channel(handle, options, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_task_kill(zx_handle_t handle, uint64_t pc) {
    return do_syscall(ZX_SYS_task_kill, pc, &VDso::ValidSyscallPC::task_kill, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_task_kill(handle);
        return result;
    });
}
syscall_result wrapper_thread_exit(uint64_t pc) {
    return do_syscall(ZX_SYS_thread_exit, pc, &VDso::ValidSyscallPC::thread_exit, [&](ProcessDispatcher* current_process) -> uint64_t {
        /*noreturn*/ sys_thread_exit();
        /* NOTREACHED */
        return ZX_ERR_BAD_STATE;
    });
}
syscall_result wrapper_thread_create(zx_handle_t process, const char* name, size_t name_size, uint32_t options, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_thread_create, pc, &VDso::ValidSyscallPC::thread_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_thread_create(process, make_user_in_ptr(name), name_size, options, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_thread_start(zx_handle_t handle, zx_vaddr_t thread_entry, zx_vaddr_t stack, uintptr_t arg1, uintptr_t arg2, uint64_t pc) {
    return do_syscall(ZX_SYS_thread_start, pc, &VDso::ValidSyscallPC::thread_start, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_thread_start(handle, thread_entry, stack, arg1, arg2);
        return result;
    });
}
syscall_result wrapper_thread_read_state(zx_handle_t handle, uint32_t kind, void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_thread_read_state, pc, &VDso::ValidSyscallPC::thread_read_state, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_thread_read_state(handle, kind, make_user_out_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_thread_write_state(zx_handle_t handle, uint32_t kind, const void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_thread_write_state, pc, &VDso::ValidSyscallPC::thread_write_state, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_thread_write_state(handle, kind, make_user_in_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_timer_create(uint32_t options, zx_clock_t clock_id, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_timer_create, pc, &VDso::ValidSyscallPC::timer_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_timer_create(options, clock_id, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_timer_set(zx_handle_t handle, zx_time_t deadline, zx_duration_t slack, uint64_t pc) {
    return do_syscall(ZX_SYS_timer_set, pc, &VDso::ValidSyscallPC::timer_set, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_timer_set(handle, deadline, slack);
        return result;
    });
}
syscall_result wrapper_timer_cancel(zx_handle_t handle, uint64_t pc) {
    return do_syscall(ZX_SYS_timer_cancel, pc, &VDso::ValidSyscallPC::timer_cancel, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_timer_cancel(handle);
        return result;
    });
}
syscall_result wrapper_vcpu_create(zx_handle_t guest, uint32_t options, zx_vaddr_t entry, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_vcpu_create, pc, &VDso::ValidSyscallPC::vcpu_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_vcpu_create(guest, options, entry, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_vcpu_resume(zx_handle_t handle, zx_port_packet_t* packet, uint64_t pc) {
    return do_syscall(ZX_SYS_vcpu_resume, pc, &VDso::ValidSyscallPC::vcpu_resume, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vcpu_resume(handle, make_user_out_ptr(packet));
        return result;
    });
}
syscall_result wrapper_vcpu_interrupt(zx_handle_t handle, uint32_t vector, uint64_t pc) {
    return do_syscall(ZX_SYS_vcpu_interrupt, pc, &VDso::ValidSyscallPC::vcpu_interrupt, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vcpu_interrupt(handle, vector);
        return result;
    });
}
syscall_result wrapper_vcpu_read_state(zx_handle_t handle, uint32_t kind, void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_vcpu_read_state, pc, &VDso::ValidSyscallPC::vcpu_read_state, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vcpu_read_state(handle, kind, make_user_out_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_vcpu_write_state(zx_handle_t handle, uint32_t kind, const void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_vcpu_write_state, pc, &VDso::ValidSyscallPC::vcpu_write_state, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vcpu_write_state(handle, kind, make_user_in_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_vmar_allocate(zx_handle_t parent_vmar, zx_vm_option_t options, size_t offset, size_t size, zx_handle_t* child_vmar, zx_vaddr_t* child_addr, uint64_t pc) {
    return do_syscall(ZX_SYS_vmar_allocate, pc, &VDso::ValidSyscallPC::vmar_allocate, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_child_vmar;
        auto result = sys_vmar_allocate(parent_vmar, options, offset, size, &out_handle_child_vmar, make_user_out_ptr(child_addr));
        if (result != ZX_OK)
            return result;
        if (out_handle_child_vmar.begin_copyout(current_process, make_user_out_ptr(child_vmar)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_child_vmar.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_vmar_destroy(zx_handle_t handle, uint64_t pc) {
    return do_syscall(ZX_SYS_vmar_destroy, pc, &VDso::ValidSyscallPC::vmar_destroy, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmar_destroy(handle);
        return result;
    });
}
syscall_result wrapper_vmar_map(zx_handle_t handle, zx_vm_option_t options, size_t vmar_offset, zx_handle_t vmo, uint64_t vmo_offset, size_t len, zx_vaddr_t* mapped_addr, uint64_t pc) {
    return do_syscall(ZX_SYS_vmar_map, pc, &VDso::ValidSyscallPC::vmar_map, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmar_map(handle, options, vmar_offset, vmo, vmo_offset, len, make_user_out_ptr(mapped_addr));
        return result;
    });
}
syscall_result wrapper_vmar_unmap(zx_handle_t handle, zx_vaddr_t addr, size_t len, uint64_t pc) {
    return do_syscall(ZX_SYS_vmar_unmap, pc, &VDso::ValidSyscallPC::vmar_unmap, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmar_unmap(handle, addr, len);
        return result;
    });
}
syscall_result wrapper_vmar_protect(zx_handle_t handle, zx_vm_option_t options, zx_vaddr_t addr, size_t len, uint64_t pc) {
    return do_syscall(ZX_SYS_vmar_protect, pc, &VDso::ValidSyscallPC::vmar_protect, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmar_protect(handle, options, addr, len);
        return result;
    });
}
syscall_result wrapper_vmar_op_range(zx_handle_t handle, uint32_t op, zx_vaddr_t address, size_t size, void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_vmar_op_range, pc, &VDso::ValidSyscallPC::vmar_op_range, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmar_op_range(handle, op, address, size, make_user_inout_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_vmo_create(uint64_t size, uint32_t options, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_create, pc, &VDso::ValidSyscallPC::vmo_create, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_vmo_create(size, options, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_vmo_read(zx_handle_t handle, void* buffer, uint64_t offset, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_read, pc, &VDso::ValidSyscallPC::vmo_read, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmo_read(handle, make_user_out_ptr(buffer), offset, buffer_size);
        return result;
    });
}
syscall_result wrapper_vmo_write(zx_handle_t handle, const void* buffer, uint64_t offset, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_write, pc, &VDso::ValidSyscallPC::vmo_write, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmo_write(handle, make_user_in_ptr(buffer), offset, buffer_size);
        return result;
    });
}
syscall_result wrapper_vmo_get_size(zx_handle_t handle, uint64_t* size, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_get_size, pc, &VDso::ValidSyscallPC::vmo_get_size, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmo_get_size(handle, make_user_out_ptr(size));
        return result;
    });
}
syscall_result wrapper_vmo_set_size(zx_handle_t handle, uint64_t size, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_set_size, pc, &VDso::ValidSyscallPC::vmo_set_size, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmo_set_size(handle, size);
        return result;
    });
}
syscall_result wrapper_vmo_op_range(zx_handle_t handle, uint32_t op, uint64_t offset, uint64_t size, void* buffer, size_t buffer_size, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_op_range, pc, &VDso::ValidSyscallPC::vmo_op_range, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmo_op_range(handle, op, offset, size, make_user_inout_ptr(buffer), buffer_size);
        return result;
    });
}
syscall_result wrapper_vmo_create_child(zx_handle_t handle, uint32_t options, uint64_t offset, uint64_t size, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_create_child, pc, &VDso::ValidSyscallPC::vmo_create_child, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_vmo_create_child(handle, options, offset, size, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_vmo_set_cache_policy(zx_handle_t handle, uint32_t cache_policy, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_set_cache_policy, pc, &VDso::ValidSyscallPC::vmo_set_cache_policy, [&](ProcessDispatcher* current_process) -> uint64_t {
        auto result = sys_vmo_set_cache_policy(handle, cache_policy);
        return result;
    });
}
syscall_result wrapper_vmo_replace_as_executable(zx_handle_t handle, zx_handle_t vmex, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_replace_as_executable, pc, &VDso::ValidSyscallPC::vmo_replace_as_executable, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_vmo_replace_as_executable(handle, vmex, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_vmo_create_contiguous(zx_handle_t bti, size_t size, uint32_t alignment_log2, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_create_contiguous, pc, &VDso::ValidSyscallPC::vmo_create_contiguous, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_vmo_create_contiguous(bti, size, alignment_log2, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
syscall_result wrapper_vmo_create_physical(zx_handle_t resource, zx_paddr_t paddr, size_t size, zx_handle_t* out, uint64_t pc) {
    return do_syscall(ZX_SYS_vmo_create_physical, pc, &VDso::ValidSyscallPC::vmo_create_physical, [&](ProcessDispatcher* current_process) -> uint64_t {
        user_out_handle out_handle_out;
        auto result = sys_vmo_create_physical(resource, paddr, size, &out_handle_out);
        if (result != ZX_OK)
            return result;
        if (out_handle_out.begin_copyout(current_process, make_user_out_ptr(out)))
            return ZX_ERR_INVALID_ARGS;
        out_handle_out.finish_copyout(current_process);
        return result;
    });
}
}
----- kernel-wrappers.h END -----


----- private-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

KERNEL_SYSCALL(bti_create, zx_status_t, /* no attributes */, 4,
    (iommu, options, bti_id, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t iommu,
    uint32_t options,
    uint64_t bti_id,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(bti_pin, zx_status_t, /* no attributes */, 8,
    (handle, options, vmo, offset, size, addrs, num_addrs, pmt), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    uint64_t offset,
    uint64_t size,
    zx_paddr_t* addrs,
    size_t num_addrs,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* pmt))

KERNEL_SYSCALL(bti_release_quarantine, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

VDSO_SYSCALL(cache_flush, zx_status_t, /* no attributes */, 3,
    (addr, size, options), (
    const void* addr,
    size_t size,
    uint32_t options))

KERNEL_SYSCALL(channel_create, zx_status_t, /* no attributes */, 3,
    (options, out0, out1), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))

KERNEL_SYSCALL(channel_read, zx_status_t, /* no attributes */, 8,
    (handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("FuchsiaUnchecked")) zx_handle_t handle,
    uint32_t options,
    void* bytes,
    _ZX_SYSCALL_ANNO(acquire_handle("FuchsiaUnchecked")) zx_handle_t* handles,
    uint32_t num_bytes,
    uint32_t num_handles,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

KERNEL_SYSCALL(channel_read_etc, zx_status_t, /* no attributes */, 8,
    (handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    void* bytes,
    zx_handle_info_t* handles,
    uint32_t num_bytes,
    uint32_t num_handles,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

KERNEL_SYSCALL(channel_write, zx_status_t, /* no attributes */, 6,
    (handle, options, bytes, num_bytes, handles, num_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const void* bytes,
    uint32_t num_bytes,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) const zx_handle_t* handles,
    uint32_t num_handles))

KERNEL_SYSCALL(channel_write_etc, zx_status_t, /* no attributes */, 6,
    (handle, options, bytes, num_bytes, handles, num_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const void* bytes,
    uint32_t num_bytes,
    zx_handle_disposition_t* handles,
    uint32_t num_handles))

INTERNAL_SYSCALL(channel_call_noretry, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    const zx_channel_call_args_t* args,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

INTERNAL_SYSCALL(channel_call_finish, zx_status_t, /* no attributes */, 4,
    (deadline, args, actual_bytes, actual_handles), (
    zx_time_t deadline,
    const zx_channel_call_args_t* args,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

VDSO_SYSCALL(channel_call, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    const zx_channel_call_args_t* args,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

INTERNAL_SYSCALL(channel_call_etc_noretry, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    zx_channel_call_etc_args_t* args,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

INTERNAL_SYSCALL(channel_call_etc_finish, zx_status_t, /* no attributes */, 4,
    (deadline, args, actual_bytes, actual_handles), (
    zx_time_t deadline,
    zx_channel_call_etc_args_t* args,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

VDSO_SYSCALL(channel_call_etc, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    zx_channel_call_etc_args_t* args,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

KERNEL_SYSCALL(clock_get, zx_status_t, /* no attributes */, 2,
    (clock_id, out), (
    zx_clock_t clock_id,
    zx_time_t* out))

VDSO_SYSCALL(clock_get_monotonic, zx_time_t, /* no attributes */, 0,
    (), (void))

KERNEL_SYSCALL(clock_adjust, zx_status_t, /* no attributes */, 3,
    (handle, clock_id, offset), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_clock_t clock_id,
    int64_t offset))

INTERNAL_SYSCALL(clock_get_monotonic_via_kernel, zx_time_t, /* no attributes */, 0,
    (), (void))

KERNEL_SYSCALL(clock_create, zx_status_t, /* no attributes */, 3,
    (options, args, out), (
    uint64_t options,
    const void* args,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(clock_read, zx_status_t, /* no attributes */, 2,
    (handle, now), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t* now))

KERNEL_SYSCALL(clock_get_details, zx_status_t, /* no attributes */, 3,
    (handle, options, details), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t options,
    void* details))

KERNEL_SYSCALL(clock_update, zx_status_t, /* no attributes */, 3,
    (handle, options, args), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t options,
    const void* args))

INTERNAL_SYSCALL(cprng_draw_once, zx_status_t, /* no attributes */, 2,
    (buffer, buffer_size), (
    void* buffer,
    size_t buffer_size))

VDSO_SYSCALL(cprng_draw, void, /* no attributes */, 2,
    (buffer, buffer_size), (
    void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(cprng_add_entropy, zx_status_t, /* no attributes */, 2,
    (buffer, buffer_size), (
    const void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(debug_read, zx_status_t, /* no attributes */, 4,
    (handle, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    char* buffer,
    size_t buffer_size,
    size_t* actual))

KERNEL_SYSCALL(debug_write, zx_status_t, /* no attributes */, 2,
    (buffer, buffer_size), (
    const char* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(debug_send_command, zx_status_t, /* no attributes */, 3,
    (resource, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    const char* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(debuglog_create, zx_status_t, /* no attributes */, 3,
    (resource, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(debuglog_write, zx_status_t, /* no attributes */, 4,
    (handle, options, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(debuglog_read, zx_status_t, /* no attributes */, 4,
    (handle, options, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(event_create, zx_status_t, /* no attributes */, 2,
    (options, out), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(eventpair_create, zx_status_t, /* no attributes */, 3,
    (options, out0, out1), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))

KERNEL_SYSCALL(exception_get_thread, zx_status_t, /* no attributes */, 2,
    (handle, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(exception_get_process, zx_status_t, /* no attributes */, 2,
    (handle, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(fifo_create, zx_status_t, /* no attributes */, 5,
    (elem_count, elem_size, options, out0, out1), (
    size_t elem_count,
    size_t elem_size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))

KERNEL_SYSCALL(fifo_read, zx_status_t, /* no attributes */, 5,
    (handle, elem_size, data, data_size, actual_count), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    size_t elem_size,
    void* data,
    size_t data_size,
    size_t* actual_count))

KERNEL_SYSCALL(fifo_write, zx_status_t, /* no attributes */, 5,
    (handle, elem_size, data, count, actual_count), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    size_t elem_size,
    const void* data,
    size_t count,
    size_t* actual_count))

KERNEL_SYSCALL(framebuffer_get_info, zx_status_t, /* no attributes */, 5,
    (resource, format, width, height, stride), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t* format,
    uint32_t* width,
    uint32_t* height,
    uint32_t* stride))

KERNEL_SYSCALL(framebuffer_set_range, zx_status_t, /* no attributes */, 7,
    (resource, vmo, len, format, width, height, stride), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    uint32_t len,
    uint32_t format,
    uint32_t width,
    uint32_t height,
    uint32_t stride))

BLOCKING_SYSCALL(futex_wait, zx_status_t, /* no attributes */, 4,
    (value_ptr, current_value, new_futex_owner, deadline), (
    const zx_futex_t* value_ptr,
    zx_futex_t current_value,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_futex_owner,
    zx_time_t deadline))

KERNEL_SYSCALL(futex_wake, zx_status_t, /* no attributes */, 2,
    (value_ptr, wake_count), (
    const zx_futex_t* value_ptr,
    uint32_t wake_count))

KERNEL_SYSCALL(futex_requeue, zx_status_t, /* no attributes */, 6,
    (value_ptr, wake_count, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
    const zx_futex_t* value_ptr,
    uint32_t wake_count,
    zx_futex_t current_value,
    const zx_futex_t* requeue_ptr,
    uint32_t requeue_count,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))

KERNEL_SYSCALL(futex_wake_single_owner, zx_status_t, /* no attributes */, 1,
    (value_ptr), (
    const zx_futex_t* value_ptr))

KERNEL_SYSCALL(futex_requeue_single_owner, zx_status_t, /* no attributes */, 5,
    (value_ptr, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
    const zx_futex_t* value_ptr,
    zx_futex_t current_value,
    const zx_futex_t* requeue_ptr,
    uint32_t requeue_count,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))

KERNEL_SYSCALL(futex_get_owner, zx_status_t, /* no attributes */, 2,
    (value_ptr, koid), (
    const zx_futex_t* value_ptr,
    zx_koid_t* koid))

KERNEL_SYSCALL(guest_create, zx_status_t, /* no attributes */, 4,
    (resource, options, guest_handle, vmar_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* guest_handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* vmar_handle))

KERNEL_SYSCALL(guest_set_trap, zx_status_t, /* no attributes */, 6,
    (handle, kind, addr, size, port_handle, key), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    zx_vaddr_t addr,
    size_t size,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
    uint64_t key))

KERNEL_SYSCALL(handle_close, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(handle_close_many, zx_status_t, /* no attributes */, 2,
    (handles, num_handles), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) const zx_handle_t* handles,
    size_t num_handles))

KERNEL_SYSCALL(handle_duplicate, zx_status_t, /* no attributes */, 3,
    (handle, rights, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_rights_t rights,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(handle_replace, zx_status_t, /* no attributes */, 3,
    (handle, rights, out), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
    zx_rights_t rights,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(interrupt_create, zx_status_t, /* no attributes */, 4,
    (src_obj, src_num, options, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t src_obj,
    uint32_t src_num,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))

KERNEL_SYSCALL(interrupt_bind, zx_status_t, /* no attributes */, 4,
    (handle, port_handle, key, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
    uint64_t key,
    uint32_t options))

BLOCKING_SYSCALL(interrupt_wait, zx_status_t, /* no attributes */, 2,
    (handle, out_timestamp), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t* out_timestamp))

KERNEL_SYSCALL(interrupt_destroy, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(interrupt_ack, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(interrupt_trigger, zx_status_t, /* no attributes */, 3,
    (handle, options, timestamp), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t timestamp))

KERNEL_SYSCALL(interrupt_bind_vcpu, zx_status_t, /* no attributes */, 3,
    (handle, vcpu, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vcpu,
    uint32_t options))

KERNEL_SYSCALL(iommu_create, zx_status_t, /* no attributes */, 5,
    (resource, type, desc, desc_size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t type,
    const void* desc,
    size_t desc_size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(ioports_request, zx_status_t, /* no attributes */, 3,
    (resource, io_addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint16_t io_addr,
    uint32_t len))

KERNEL_SYSCALL(ioports_release, zx_status_t, /* no attributes */, 3,
    (resource, io_addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint16_t io_addr,
    uint32_t len))

KERNEL_SYSCALL(job_create, zx_status_t, /* no attributes */, 3,
    (parent_job, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_job,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(job_set_policy, zx_status_t, /* no attributes */, 5,
    (handle, options, topic, policy, policy_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    uint32_t topic,
    const void* policy,
    uint32_t policy_size))

KERNEL_SYSCALL(job_set_critical, zx_status_t, /* no attributes */, 3,
    (job, options, process), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process))

KERNEL_SYSCALL(ktrace_read, zx_status_t, /* no attributes */, 5,
    (handle, data, offset, data_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    void* data,
    uint32_t offset,
    size_t data_size,
    size_t* actual))

KERNEL_SYSCALL(ktrace_control, zx_status_t, /* no attributes */, 4,
    (handle, action, options, ptr), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t action,
    uint32_t options,
    void* ptr))

KERNEL_SYSCALL(ktrace_write, zx_status_t, /* no attributes */, 4,
    (handle, id, arg0, arg1), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t id,
    uint32_t arg0,
    uint32_t arg1))

BLOCKING_SYSCALL(nanosleep, zx_status_t, /* no attributes */, 1,
    (deadline), (
    zx_time_t deadline))

VDSO_SYSCALL(ticks_get, zx_ticks_t, /* no attributes */, 0,
    (), (void))

VDSO_SYSCALL(ticks_per_second, zx_ticks_t, __CONST, 0,
    (), (void))

VDSO_SYSCALL(deadline_after, zx_time_t, /* no attributes */, 1,
    (nanoseconds), (
    zx_duration_t nanoseconds))

VDSO_SYSCALL(vmar_unmap_handle_close_thread_exit, zx_status_t, /* no attributes */, 4,
    (vmar_handle, addr, size, close_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmar_handle,
    zx_vaddr_t addr,
    size_t size,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))

VDSO_SYSCALL(futex_wake_handle_close_thread_exit, void, __NO_RETURN, 4,
    (value_ptr, wake_count, new_value, close_handle), (
    const zx_futex_t* value_ptr,
    uint32_t wake_count,
    int32_t new_value,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))

INTERNAL_SYSCALL(ticks_get_via_kernel, zx_ticks_t, /* no attributes */, 0,
    (), (void))

KERNEL_SYSCALL(msi_allocate, zx_status_t, /* no attributes */, 3,
    (handle, count, out_allocation), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t count,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_allocation))

KERNEL_SYSCALL(msi_create, zx_status_t, /* no attributes */, 6,
    (handle, options, msi_id, vmo, vmo_offset, out_interrupt), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    uint32_t msi_id,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    size_t vmo_offset,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_interrupt))

KERNEL_SYSCALL(mtrace_control, zx_status_t, /* no attributes */, 6,
    (handle, kind, action, options, ptr, ptr_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    uint32_t action,
    uint32_t options,
    void* ptr,
    size_t ptr_size))

BLOCKING_SYSCALL(object_wait_one, zx_status_t, /* no attributes */, 4,
    (handle, signals, deadline, observed), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_signals_t signals,
    zx_time_t deadline,
    zx_signals_t* observed))

BLOCKING_SYSCALL(object_wait_many, zx_status_t, /* no attributes */, 3,
    (items, num_items, deadline), (
    zx_wait_item_t* items,
    size_t num_items,
    zx_time_t deadline))

KERNEL_SYSCALL(object_wait_async, zx_status_t, /* no attributes */, 5,
    (handle, port, key, signals, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
    uint64_t key,
    zx_signals_t signals,
    uint32_t options))

KERNEL_SYSCALL(object_signal, zx_status_t, /* no attributes */, 3,
    (handle, clear_mask, set_mask), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t clear_mask,
    uint32_t set_mask))

KERNEL_SYSCALL(object_signal_peer, zx_status_t, /* no attributes */, 3,
    (handle, clear_mask, set_mask), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t clear_mask,
    uint32_t set_mask))

KERNEL_SYSCALL(object_get_property, zx_status_t, /* no attributes */, 4,
    (handle, property, value, value_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t property,
    void* value,
    size_t value_size))

KERNEL_SYSCALL(object_set_property, zx_status_t, /* no attributes */, 4,
    (handle, property, value, value_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t property,
    const void* value,
    size_t value_size))

KERNEL_SYSCALL(object_get_info, zx_status_t, /* no attributes */, 6,
    (handle, topic, buffer, buffer_size, actual, avail), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t topic,
    void* buffer,
    size_t buffer_size,
    size_t* actual,
    size_t* avail))

KERNEL_SYSCALL(object_get_child, zx_status_t, /* no attributes */, 4,
    (handle, koid, rights, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t koid,
    zx_rights_t rights,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(object_set_profile, zx_status_t, /* no attributes */, 3,
    (handle, profile, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t profile,
    uint32_t options))

KERNEL_SYSCALL(pager_create, zx_status_t, /* no attributes */, 2,
    (options, out), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(pager_create_vmo, zx_status_t, /* no attributes */, 6,
    (pager, options, port, key, size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
    uint64_t key,
    uint64_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(pager_detach_vmo, zx_status_t, /* no attributes */, 2,
    (pager, vmo), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo))

KERNEL_SYSCALL(pager_supply_pages, zx_status_t, /* no attributes */, 6,
    (pager, pager_vmo, offset, length, aux_vmo, aux_offset), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
    uint64_t offset,
    uint64_t length,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t aux_vmo,
    uint64_t aux_offset))

KERNEL_SYSCALL(pager_op_range, zx_status_t, /* no attributes */, 6,
    (pager, op, pager_vmo, offset, length, data), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    uint32_t op,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
    uint64_t offset,
    uint64_t length,
    uint64_t data))

KERNEL_SYSCALL(pc_firmware_tables, zx_status_t, /* no attributes */, 3,
    (handle, acpi_rsdp, smbios), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_paddr_t* acpi_rsdp,
    zx_paddr_t* smbios))

KERNEL_SYSCALL(pci_get_nth_device, zx_status_t, /* no attributes */, 4,
    (handle, index, out_info, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t index,
    zx_pcie_device_info_t* out_info,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))

KERNEL_SYSCALL(pci_enable_bus_master, zx_status_t, /* no attributes */, 2,
    (handle, enable), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t enable))

KERNEL_SYSCALL(pci_reset_device, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(pci_config_read, zx_status_t, /* no attributes */, 4,
    (handle, offset, width, out_val), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint16_t offset,
    size_t width,
    uint32_t* out_val))

KERNEL_SYSCALL(pci_config_write, zx_status_t, /* no attributes */, 4,
    (handle, offset, width, val), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint16_t offset,
    size_t width,
    uint32_t val))

KERNEL_SYSCALL(pci_cfg_pio_rw, zx_status_t, /* no attributes */, 8,
    (handle, bus, dev, func, offset, val, width, write), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint8_t bus,
    uint8_t dev,
    uint8_t func,
    uint8_t offset,
    uint32_t* val,
    size_t width,
    uint32_t write))

KERNEL_SYSCALL(pci_get_bar, zx_status_t, /* no attributes */, 4,
    (handle, bar_num, out_bar, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t bar_num,
    zx_pci_bar_t* out_bar,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))

KERNEL_SYSCALL(pci_map_interrupt, zx_status_t, /* no attributes */, 3,
    (handle, which_irq, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    int32_t which_irq,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))

KERNEL_SYSCALL(pci_query_irq_mode, zx_status_t, /* no attributes */, 3,
    (handle, mode, out_max_irqs), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t mode,
    uint32_t* out_max_irqs))

KERNEL_SYSCALL(pci_set_irq_mode, zx_status_t, /* no attributes */, 3,
    (handle, mode, requested_irq_count), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t mode,
    uint32_t requested_irq_count))

KERNEL_SYSCALL(pci_init, zx_status_t, /* no attributes */, 3,
    (handle, init_buf, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    const zx_pci_init_arg_t* init_buf,
    uint32_t len))

KERNEL_SYSCALL(pci_add_subtract_io_range, zx_status_t, /* no attributes */, 5,
    (handle, mmio, base, len, add), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t mmio,
    uint64_t base,
    uint64_t len,
    uint32_t add))

KERNEL_SYSCALL(pmt_unpin, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(port_create, zx_status_t, /* no attributes */, 2,
    (options, out), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(port_queue, zx_status_t, /* no attributes */, 2,
    (handle, packet), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    const zx_port_packet_t* packet))

BLOCKING_SYSCALL(port_wait, zx_status_t, /* no attributes */, 3,
    (handle, deadline, packet), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t deadline,
    zx_port_packet_t* packet))

KERNEL_SYSCALL(port_cancel, zx_status_t, /* no attributes */, 3,
    (handle, source, key), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t source,
    uint64_t key))

KERNEL_SYSCALL(process_exit, void, __NO_RETURN, 1,
    (retcode), (
    int64_t retcode))

KERNEL_SYSCALL(process_create, zx_status_t, /* no attributes */, 6,
    (job, name, name_size, options, proc_handle, vmar_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
    const char* name,
    size_t name_size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* proc_handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* vmar_handle))

KERNEL_SYSCALL(process_start, zx_status_t, /* no attributes */, 6,
    (handle, thread, entry, stack, arg1, arg2), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t thread,
    zx_vaddr_t entry,
    zx_vaddr_t stack,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t arg1,
    uintptr_t arg2))

KERNEL_SYSCALL(process_read_memory, zx_status_t, /* no attributes */, 5,
    (handle, vaddr, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t vaddr,
    void* buffer,
    size_t buffer_size,
    size_t* actual))

KERNEL_SYSCALL(process_write_memory, zx_status_t, /* no attributes */, 5,
    (handle, vaddr, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t vaddr,
    const void* buffer,
    size_t buffer_size,
    size_t* actual))

KERNEL_SYSCALL(profile_create, zx_status_t, /* no attributes */, 4,
    (root_job, options, profile, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
    uint32_t options,
    const zx_profile_info_t* profile,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(resource_create, zx_status_t, /* no attributes */, 7,
    (parent_rsrc, options, base, size, name, name_size, resource_out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_rsrc,
    uint32_t options,
    uint64_t base,
    size_t size,
    const char* name,
    size_t name_size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* resource_out))

KERNEL_SYSCALL(smc_call, zx_status_t, /* no attributes */, 3,
    (handle, parameters, out_smc_result), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    const zx_smc_parameters_t* parameters,
    zx_smc_result_t* out_smc_result))

KERNEL_SYSCALL(socket_create, zx_status_t, /* no attributes */, 3,
    (options, out0, out1), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))

KERNEL_SYSCALL(socket_write, zx_status_t, /* no attributes */, 5,
    (handle, options, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const void* buffer,
    size_t buffer_size,
    size_t* actual))

KERNEL_SYSCALL(socket_read, zx_status_t, /* no attributes */, 5,
    (handle, options, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    void* buffer,
    size_t buffer_size,
    size_t* actual))

KERNEL_SYSCALL(socket_shutdown, zx_status_t, /* no attributes */, 2,
    (handle, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options))

KERNEL_SYSCALL(stream_create, zx_status_t, /* no attributes */, 4,
    (options, vmo, seek, out_stream), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    zx_off_t seek,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_stream))

KERNEL_SYSCALL(stream_writev, zx_status_t, /* no attributes */, 5,
    (handle, options, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const zx_iovec_t* vector,
    size_t num_vector,
    size_t* actual))

KERNEL_SYSCALL(stream_writev_at, zx_status_t, /* no attributes */, 6,
    (handle, options, offset, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_off_t offset,
    const zx_iovec_t* vector,
    size_t num_vector,
    size_t* actual))

KERNEL_SYSCALL(stream_readv, zx_status_t, /* no attributes */, 5,
    (handle, options, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_iovec_t* vector,
    size_t num_vector,
    size_t* actual))

KERNEL_SYSCALL(stream_readv_at, zx_status_t, /* no attributes */, 6,
    (handle, options, offset, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_off_t offset,
    zx_iovec_t* vector,
    size_t num_vector,
    size_t* actual))

KERNEL_SYSCALL(stream_seek, zx_status_t, /* no attributes */, 4,
    (handle, whence, offset, out_seek), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_stream_seek_origin_t whence,
    int64_t offset,
    zx_off_t* out_seek))

KERNEL_SYSCALL(syscall_test_0, zx_status_t, /* no attributes */, 0,
    (), (void))

KERNEL_SYSCALL(syscall_test_1, zx_status_t, /* no attributes */, 1,
    (a), (
    int32_t a))

KERNEL_SYSCALL(syscall_test_2, zx_status_t, /* no attributes */, 2,
    (a, b), (
    int32_t a,
    int32_t b))

KERNEL_SYSCALL(syscall_test_3, zx_status_t, /* no attributes */, 3,
    (a, b, c), (
    int32_t a,
    int32_t b,
    int32_t c))

KERNEL_SYSCALL(syscall_test_4, zx_status_t, /* no attributes */, 4,
    (a, b, c, d), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d))

KERNEL_SYSCALL(syscall_test_5, zx_status_t, /* no attributes */, 5,
    (a, b, c, d, e), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e))

KERNEL_SYSCALL(syscall_test_6, zx_status_t, /* no attributes */, 6,
    (a, b, c, d, e, f), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e,
    int32_t f))

KERNEL_SYSCALL(syscall_test_7, zx_status_t, /* no attributes */, 7,
    (a, b, c, d, e, f, g), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e,
    int32_t f,
    int32_t g))

KERNEL_SYSCALL(syscall_test_8, zx_status_t, /* no attributes */, 8,
    (a, b, c, d, e, f, g, h), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e,
    int32_t f,
    int32_t g,
    int32_t h))

KERNEL_SYSCALL(syscall_test_wrapper, zx_status_t, /* no attributes */, 3,
    (a, b, c), (
    int32_t a,
    int32_t b,
    int32_t c))

KERNEL_SYSCALL(syscall_test_handle_create, zx_status_t, /* no attributes */, 2,
    (return_value, out), (
    zx_status_t return_value,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

VDSO_SYSCALL(system_get_dcache_line_size, uint32_t, __CONST, 0,
    (), (void))

VDSO_SYSCALL(system_get_num_cpus, uint32_t, __CONST, 0,
    (), (void))

VDSO_SYSCALL(system_get_version_string, zx_string_view_t, __CONST, 0,
    (), (void))

VDSO_SYSCALL(system_get_physmem, uint64_t, /* no attributes */, 0,
    (), (void))

VDSO_SYSCALL(system_get_features, zx_status_t, /* no attributes */, 2,
    (kind, features), (
    uint32_t kind,
    uint32_t* features))

KERNEL_SYSCALL(system_get_event, zx_status_t, /* no attributes */, 3,
    (root_job, kind, event), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
    uint32_t kind,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* event))

KERNEL_SYSCALL(system_mexec, zx_status_t, /* no attributes */, 3,
    (resource, kernel_vmo, bootimage_vmo), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t kernel_vmo,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bootimage_vmo))

KERNEL_SYSCALL(system_mexec_payload_get, zx_status_t, /* no attributes */, 3,
    (resource, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(system_powerctl, zx_status_t, /* no attributes */, 3,
    (resource, cmd, arg), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t cmd,
    const zx_system_powerctl_arg_t* arg))

KERNEL_SYSCALL(task_suspend, zx_status_t, /* no attributes */, 2,
    (handle, token), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* token))

KERNEL_SYSCALL(task_suspend_token, zx_status_t, /* no attributes */, 2,
    (handle, token), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* token))

KERNEL_SYSCALL(task_create_exception_channel, zx_status_t, /* no attributes */, 3,
    (handle, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(task_kill, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(thread_exit, void, __NO_RETURN, 0,
    (), (void))

KERNEL_SYSCALL(thread_create, zx_status_t, /* no attributes */, 5,
    (process, name, name_size, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process,
    const char* name,
    size_t name_size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(thread_start, zx_status_t, /* no attributes */, 5,
    (handle, thread_entry, stack, arg1, arg2), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t thread_entry,
    zx_vaddr_t stack,
    uintptr_t arg1,
    uintptr_t arg2))

KERNEL_SYSCALL(thread_read_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(thread_write_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    const void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(timer_create, zx_status_t, /* no attributes */, 3,
    (options, clock_id, out), (
    uint32_t options,
    zx_clock_t clock_id,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(timer_set, zx_status_t, /* no attributes */, 3,
    (handle, deadline, slack), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t deadline,
    zx_duration_t slack))

KERNEL_SYSCALL(timer_cancel, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(vcpu_create, zx_status_t, /* no attributes */, 4,
    (guest, options, entry, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t guest,
    uint32_t options,
    zx_vaddr_t entry,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

BLOCKING_SYSCALL(vcpu_resume, zx_status_t, /* no attributes */, 2,
    (handle, packet), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_port_packet_t* packet))

KERNEL_SYSCALL(vcpu_interrupt, zx_status_t, /* no attributes */, 2,
    (handle, vector), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t vector))

KERNEL_SYSCALL(vcpu_read_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(vcpu_write_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    const void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(vmar_allocate, zx_status_t, /* no attributes */, 6,
    (parent_vmar, options, offset, size, child_vmar, child_addr), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_vmar,
    zx_vm_option_t options,
    size_t offset,
    size_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* child_vmar,
    zx_vaddr_t* child_addr))

KERNEL_SYSCALL(vmar_destroy, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

KERNEL_SYSCALL(vmar_map, zx_status_t, /* no attributes */, 7,
    (handle, options, vmar_offset, vmo, vmo_offset, len, mapped_addr), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vm_option_t options,
    size_t vmar_offset,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    uint64_t vmo_offset,
    size_t len,
    zx_vaddr_t* mapped_addr))

KERNEL_SYSCALL(vmar_unmap, zx_status_t, /* no attributes */, 3,
    (handle, addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t addr,
    size_t len))

KERNEL_SYSCALL(vmar_protect, zx_status_t, /* no attributes */, 4,
    (handle, options, addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vm_option_t options,
    zx_vaddr_t addr,
    size_t len))

KERNEL_SYSCALL(vmar_op_range, zx_status_t, /* no attributes */, 6,
    (handle, op, address, size, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t op,
    zx_vaddr_t address,
    size_t size,
    void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(vmo_create, zx_status_t, /* no attributes */, 3,
    (size, options, out), (
    uint64_t size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

BLOCKING_SYSCALL(vmo_read, zx_status_t, /* no attributes */, 4,
    (handle, buffer, offset, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    void* buffer,
    uint64_t offset,
    size_t buffer_size))

BLOCKING_SYSCALL(vmo_write, zx_status_t, /* no attributes */, 4,
    (handle, buffer, offset, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    const void* buffer,
    uint64_t offset,
    size_t buffer_size))

KERNEL_SYSCALL(vmo_get_size, zx_status_t, /* no attributes */, 2,
    (handle, size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t* size))

KERNEL_SYSCALL(vmo_set_size, zx_status_t, /* no attributes */, 2,
    (handle, size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t size))

BLOCKING_SYSCALL(vmo_op_range, zx_status_t, /* no attributes */, 6,
    (handle, op, offset, size, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t op,
    uint64_t offset,
    uint64_t size,
    void* buffer,
    size_t buffer_size))

KERNEL_SYSCALL(vmo_create_child, zx_status_t, /* no attributes */, 5,
    (handle, options, offset, size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    uint64_t offset,
    uint64_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(vmo_set_cache_policy, zx_status_t, /* no attributes */, 2,
    (handle, cache_policy), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t cache_policy))

KERNEL_SYSCALL(vmo_replace_as_executable, zx_status_t, /* no attributes */, 3,
    (handle, vmex, out), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmex,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(vmo_create_contiguous, zx_status_t, /* no attributes */, 4,
    (bti, size, alignment_log2, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bti,
    size_t size,
    uint32_t alignment_log2,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

KERNEL_SYSCALL(vmo_create_physical, zx_status_t, /* no attributes */, 4,
    (resource, paddr, size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    zx_paddr_t paddr,
    size_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

----- private-header.h END -----


----- public-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

#ifndef _ZX_SYSCALL_DECL
#error "<zircon/syscalls.h> is the public API header"
#endif

_ZX_SYSCALL_DECL(bti_create, zx_status_t, /* no attributes */, 4,
    (iommu, options, bti_id, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t iommu,
    uint32_t options,
    uint64_t bti_id,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(bti_pin, zx_status_t, /* no attributes */, 8,
    (handle, options, vmo, offset, size, addrs, num_addrs, pmt), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    uint64_t offset,
    uint64_t size,
    zx_paddr_t* addrs,
    size_t num_addrs,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* pmt))

_ZX_SYSCALL_DECL(bti_release_quarantine, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

_ZX_SYSCALL_DECL(cache_flush, zx_status_t, /* no attributes */, 3,
    (addr, size, options), (
    const void* addr,
    size_t size,
    uint32_t options))

_ZX_SYSCALL_DECL(channel_create, zx_status_t, /* no attributes */, 3,
    (options, out0, out1), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))

_ZX_SYSCALL_DECL(channel_read, zx_status_t, /* no attributes */, 8,
    (handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("FuchsiaUnchecked")) zx_handle_t handle,
    uint32_t options,
    void* bytes,
    _ZX_SYSCALL_ANNO(acquire_handle("FuchsiaUnchecked")) zx_handle_t* handles,
    uint32_t num_bytes,
    uint32_t num_handles,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

_ZX_SYSCALL_DECL(channel_read_etc, zx_status_t, /* no attributes */, 8,
    (handle, options, bytes, handles, num_bytes, num_handles, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    void* bytes,
    zx_handle_info_t* handles,
    uint32_t num_bytes,
    uint32_t num_handles,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

_ZX_SYSCALL_DECL(channel_write, zx_status_t, /* no attributes */, 6,
    (handle, options, bytes, num_bytes, handles, num_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const void* bytes,
    uint32_t num_bytes,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) const zx_handle_t* handles,
    uint32_t num_handles))

_ZX_SYSCALL_DECL(channel_write_etc, zx_status_t, /* no attributes */, 6,
    (handle, options, bytes, num_bytes, handles, num_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const void* bytes,
    uint32_t num_bytes,
    zx_handle_disposition_t* handles,
    uint32_t num_handles))

_ZX_SYSCALL_DECL(channel_call, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    const zx_channel_call_args_t* args,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

_ZX_SYSCALL_DECL(channel_call_etc, zx_status_t, /* no attributes */, 6,
    (handle, options, deadline, args, actual_bytes, actual_handles), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t deadline,
    zx_channel_call_etc_args_t* args,
    uint32_t* actual_bytes,
    uint32_t* actual_handles))

_ZX_SYSCALL_DECL(clock_get, zx_status_t, /* no attributes */, 2,
    (clock_id, out), (
    zx_clock_t clock_id,
    zx_time_t* out))

_ZX_SYSCALL_DECL(clock_get_monotonic, zx_time_t, /* no attributes */, 0,
    (), (void))

_ZX_SYSCALL_DECL(clock_adjust, zx_status_t, /* no attributes */, 3,
    (handle, clock_id, offset), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_clock_t clock_id,
    int64_t offset))

_ZX_SYSCALL_DECL(clock_create, zx_status_t, /* no attributes */, 3,
    (options, args, out), (
    uint64_t options,
    const void* args,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(clock_read, zx_status_t, /* no attributes */, 2,
    (handle, now), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t* now))

_ZX_SYSCALL_DECL(clock_get_details, zx_status_t, /* no attributes */, 3,
    (handle, options, details), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t options,
    void* details))

_ZX_SYSCALL_DECL(clock_update, zx_status_t, /* no attributes */, 3,
    (handle, options, args), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t options,
    const void* args))

_ZX_SYSCALL_DECL(cprng_draw, void, /* no attributes */, 2,
    (buffer, buffer_size), (
    void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(cprng_add_entropy, zx_status_t, /* no attributes */, 2,
    (buffer, buffer_size), (
    const void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(debug_read, zx_status_t, /* no attributes */, 4,
    (handle, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    char* buffer,
    size_t buffer_size,
    size_t* actual))

_ZX_SYSCALL_DECL(debug_write, zx_status_t, /* no attributes */, 2,
    (buffer, buffer_size), (
    const char* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(debug_send_command, zx_status_t, /* no attributes */, 3,
    (resource, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    const char* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(debuglog_create, zx_status_t, /* no attributes */, 3,
    (resource, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(debuglog_write, zx_status_t, /* no attributes */, 4,
    (handle, options, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(debuglog_read, zx_status_t, /* no attributes */, 4,
    (handle, options, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(event_create, zx_status_t, /* no attributes */, 2,
    (options, out), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(eventpair_create, zx_status_t, /* no attributes */, 3,
    (options, out0, out1), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))

_ZX_SYSCALL_DECL(exception_get_thread, zx_status_t, /* no attributes */, 2,
    (handle, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(exception_get_process, zx_status_t, /* no attributes */, 2,
    (handle, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(fifo_create, zx_status_t, /* no attributes */, 5,
    (elem_count, elem_size, options, out0, out1), (
    size_t elem_count,
    size_t elem_size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))

_ZX_SYSCALL_DECL(fifo_read, zx_status_t, /* no attributes */, 5,
    (handle, elem_size, data, data_size, actual_count), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    size_t elem_size,
    void* data,
    size_t data_size,
    size_t* actual_count))

_ZX_SYSCALL_DECL(fifo_write, zx_status_t, /* no attributes */, 5,
    (handle, elem_size, data, count, actual_count), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    size_t elem_size,
    const void* data,
    size_t count,
    size_t* actual_count))

_ZX_SYSCALL_DECL(framebuffer_get_info, zx_status_t, /* no attributes */, 5,
    (resource, format, width, height, stride), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t* format,
    uint32_t* width,
    uint32_t* height,
    uint32_t* stride))

_ZX_SYSCALL_DECL(framebuffer_set_range, zx_status_t, /* no attributes */, 7,
    (resource, vmo, len, format, width, height, stride), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    uint32_t len,
    uint32_t format,
    uint32_t width,
    uint32_t height,
    uint32_t stride))

_ZX_SYSCALL_DECL(futex_wait, zx_status_t, /* no attributes */, 4,
    (value_ptr, current_value, new_futex_owner, deadline), (
    const zx_futex_t* value_ptr,
    zx_futex_t current_value,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_futex_owner,
    zx_time_t deadline))

_ZX_SYSCALL_DECL(futex_wake, zx_status_t, /* no attributes */, 2,
    (value_ptr, wake_count), (
    const zx_futex_t* value_ptr,
    uint32_t wake_count))

_ZX_SYSCALL_DECL(futex_requeue, zx_status_t, /* no attributes */, 6,
    (value_ptr, wake_count, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
    const zx_futex_t* value_ptr,
    uint32_t wake_count,
    zx_futex_t current_value,
    const zx_futex_t* requeue_ptr,
    uint32_t requeue_count,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))

_ZX_SYSCALL_DECL(futex_wake_single_owner, zx_status_t, /* no attributes */, 1,
    (value_ptr), (
    const zx_futex_t* value_ptr))

_ZX_SYSCALL_DECL(futex_requeue_single_owner, zx_status_t, /* no attributes */, 5,
    (value_ptr, current_value, requeue_ptr, requeue_count, new_requeue_owner), (
    const zx_futex_t* value_ptr,
    zx_futex_t current_value,
    const zx_futex_t* requeue_ptr,
    uint32_t requeue_count,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t new_requeue_owner))

_ZX_SYSCALL_DECL(futex_get_owner, zx_status_t, /* no attributes */, 2,
    (value_ptr, koid), (
    const zx_futex_t* value_ptr,
    zx_koid_t* koid))

_ZX_SYSCALL_DECL(guest_create, zx_status_t, /* no attributes */, 4,
    (resource, options, guest_handle, vmar_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* guest_handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* vmar_handle))

_ZX_SYSCALL_DECL(guest_set_trap, zx_status_t, /* no attributes */, 6,
    (handle, kind, addr, size, port_handle, key), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    zx_vaddr_t addr,
    size_t size,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
    uint64_t key))

_ZX_SYSCALL_DECL(handle_close, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))

_ZX_SYSCALL_DECL(handle_close_many, zx_status_t, /* no attributes */, 2,
    (handles, num_handles), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) const zx_handle_t* handles,
    size_t num_handles))

_ZX_SYSCALL_DECL(handle_duplicate, zx_status_t, /* no attributes */, 3,
    (handle, rights, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_rights_t rights,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(handle_replace, zx_status_t, /* no attributes */, 3,
    (handle, rights, out), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
    zx_rights_t rights,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(interrupt_create, zx_status_t, /* no attributes */, 4,
    (src_obj, src_num, options, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t src_obj,
    uint32_t src_num,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))

_ZX_SYSCALL_DECL(interrupt_bind, zx_status_t, /* no attributes */, 4,
    (handle, port_handle, key, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port_handle,
    uint64_t key,
    uint32_t options))

_ZX_SYSCALL_DECL(interrupt_wait, zx_status_t, /* no attributes */, 2,
    (handle, out_timestamp), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t* out_timestamp))

_ZX_SYSCALL_DECL(interrupt_destroy, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

_ZX_SYSCALL_DECL(interrupt_ack, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

_ZX_SYSCALL_DECL(interrupt_trigger, zx_status_t, /* no attributes */, 3,
    (handle, options, timestamp), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_time_t timestamp))

_ZX_SYSCALL_DECL(interrupt_bind_vcpu, zx_status_t, /* no attributes */, 3,
    (handle, vcpu, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vcpu,
    uint32_t options))

_ZX_SYSCALL_DECL(iommu_create, zx_status_t, /* no attributes */, 5,
    (resource, type, desc, desc_size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t type,
    const void* desc,
    size_t desc_size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(ioports_request, zx_status_t, /* no attributes */, 3,
    (resource, io_addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint16_t io_addr,
    uint32_t len))

_ZX_SYSCALL_DECL(ioports_release, zx_status_t, /* no attributes */, 3,
    (resource, io_addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint16_t io_addr,
    uint32_t len))

_ZX_SYSCALL_DECL(job_create, zx_status_t, /* no attributes */, 3,
    (parent_job, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_job,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(job_set_policy, zx_status_t, /* no attributes */, 5,
    (handle, options, topic, policy, policy_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    uint32_t topic,
    const void* policy,
    uint32_t policy_size))

_ZX_SYSCALL_DECL(job_set_critical, zx_status_t, /* no attributes */, 3,
    (job, options, process), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process))

_ZX_SYSCALL_DECL(ktrace_read, zx_status_t, /* no attributes */, 5,
    (handle, data, offset, data_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    void* data,
    uint32_t offset,
    size_t data_size,
    size_t* actual))

_ZX_SYSCALL_DECL(ktrace_control, zx_status_t, /* no attributes */, 4,
    (handle, action, options, ptr), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t action,
    uint32_t options,
    void* ptr))

_ZX_SYSCALL_DECL(ktrace_write, zx_status_t, /* no attributes */, 4,
    (handle, id, arg0, arg1), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t id,
    uint32_t arg0,
    uint32_t arg1))

_ZX_SYSCALL_DECL(nanosleep, zx_status_t, /* no attributes */, 1,
    (deadline), (
    zx_time_t deadline))

_ZX_SYSCALL_DECL(ticks_get, zx_ticks_t, /* no attributes */, 0,
    (), (void))

_ZX_SYSCALL_DECL(ticks_per_second, zx_ticks_t, __CONST, 0,
    (), (void))

_ZX_SYSCALL_DECL(deadline_after, zx_time_t, /* no attributes */, 1,
    (nanoseconds), (
    zx_duration_t nanoseconds))

_ZX_SYSCALL_DECL(vmar_unmap_handle_close_thread_exit, zx_status_t, /* no attributes */, 4,
    (vmar_handle, addr, size, close_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmar_handle,
    zx_vaddr_t addr,
    size_t size,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))

_ZX_SYSCALL_DECL(futex_wake_handle_close_thread_exit, void, __NO_RETURN, 4,
    (value_ptr, wake_count, new_value, close_handle), (
    const zx_futex_t* value_ptr,
    uint32_t wake_count,
    int32_t new_value,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t close_handle))

_ZX_SYSCALL_DECL(msi_allocate, zx_status_t, /* no attributes */, 3,
    (handle, count, out_allocation), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t count,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_allocation))

_ZX_SYSCALL_DECL(msi_create, zx_status_t, /* no attributes */, 6,
    (handle, options, msi_id, vmo, vmo_offset, out_interrupt), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    uint32_t msi_id,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    size_t vmo_offset,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_interrupt))

_ZX_SYSCALL_DECL(mtrace_control, zx_status_t, /* no attributes */, 6,
    (handle, kind, action, options, ptr, ptr_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    uint32_t action,
    uint32_t options,
    void* ptr,
    size_t ptr_size))

_ZX_SYSCALL_DECL(object_wait_one, zx_status_t, /* no attributes */, 4,
    (handle, signals, deadline, observed), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_signals_t signals,
    zx_time_t deadline,
    zx_signals_t* observed))

_ZX_SYSCALL_DECL(object_wait_many, zx_status_t, /* no attributes */, 3,
    (items, num_items, deadline), (
    zx_wait_item_t* items,
    size_t num_items,
    zx_time_t deadline))

_ZX_SYSCALL_DECL(object_wait_async, zx_status_t, /* no attributes */, 5,
    (handle, port, key, signals, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
    uint64_t key,
    zx_signals_t signals,
    uint32_t options))

_ZX_SYSCALL_DECL(object_signal, zx_status_t, /* no attributes */, 3,
    (handle, clear_mask, set_mask), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t clear_mask,
    uint32_t set_mask))

_ZX_SYSCALL_DECL(object_signal_peer, zx_status_t, /* no attributes */, 3,
    (handle, clear_mask, set_mask), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t clear_mask,
    uint32_t set_mask))

_ZX_SYSCALL_DECL(object_get_property, zx_status_t, /* no attributes */, 4,
    (handle, property, value, value_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t property,
    void* value,
    size_t value_size))

_ZX_SYSCALL_DECL(object_set_property, zx_status_t, /* no attributes */, 4,
    (handle, property, value, value_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t property,
    const void* value,
    size_t value_size))

_ZX_SYSCALL_DECL(object_get_info, zx_status_t, /* no attributes */, 6,
    (handle, topic, buffer, buffer_size, actual, avail), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t topic,
    void* buffer,
    size_t buffer_size,
    size_t* actual,
    size_t* avail))

_ZX_SYSCALL_DECL(object_get_child, zx_status_t, /* no attributes */, 4,
    (handle, koid, rights, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t koid,
    zx_rights_t rights,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(object_set_profile, zx_status_t, /* no attributes */, 3,
    (handle, profile, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t profile,
    uint32_t options))

_ZX_SYSCALL_DECL(pager_create, zx_status_t, /* no attributes */, 2,
    (options, out), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(pager_create_vmo, zx_status_t, /* no attributes */, 6,
    (pager, options, port, key, size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t port,
    uint64_t key,
    uint64_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(pager_detach_vmo, zx_status_t, /* no attributes */, 2,
    (pager, vmo), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo))

_ZX_SYSCALL_DECL(pager_supply_pages, zx_status_t, /* no attributes */, 6,
    (pager, pager_vmo, offset, length, aux_vmo, aux_offset), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
    uint64_t offset,
    uint64_t length,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t aux_vmo,
    uint64_t aux_offset))

_ZX_SYSCALL_DECL(pager_op_range, zx_status_t, /* no attributes */, 6,
    (pager, op, pager_vmo, offset, length, data), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager,
    uint32_t op,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo,
    uint64_t offset,
    uint64_t length,
    uint64_t data))

_ZX_SYSCALL_DECL(pc_firmware_tables, zx_status_t, /* no attributes */, 3,
    (handle, acpi_rsdp, smbios), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_paddr_t* acpi_rsdp,
    zx_paddr_t* smbios))

_ZX_SYSCALL_DECL(pci_get_nth_device, zx_status_t, /* no attributes */, 4,
    (handle, index, out_info, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t index,
    zx_pcie_device_info_t* out_info,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))

_ZX_SYSCALL_DECL(pci_enable_bus_master, zx_status_t, /* no attributes */, 2,
    (handle, enable), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t enable))

_ZX_SYSCALL_DECL(pci_reset_device, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

_ZX_SYSCALL_DECL(pci_config_read, zx_status_t, /* no attributes */, 4,
    (handle, offset, width, out_val), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint16_t offset,
    size_t width,
    uint32_t* out_val))

_ZX_SYSCALL_DECL(pci_config_write, zx_status_t, /* no attributes */, 4,
    (handle, offset, width, val), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint16_t offset,
    size_t width,
    uint32_t val))

_ZX_SYSCALL_DECL(pci_cfg_pio_rw, zx_status_t, /* no attributes */, 8,
    (handle, bus, dev, func, offset, val, width, write), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint8_t bus,
    uint8_t dev,
    uint8_t func,
    uint8_t offset,
    uint32_t* val,
    size_t width,
    uint32_t write))

_ZX_SYSCALL_DECL(pci_get_bar, zx_status_t, /* no attributes */, 4,
    (handle, bar_num, out_bar, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t bar_num,
    zx_pci_bar_t* out_bar,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))

_ZX_SYSCALL_DECL(pci_map_interrupt, zx_status_t, /* no attributes */, 3,
    (handle, which_irq, out_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    int32_t which_irq,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_handle))

_ZX_SYSCALL_DECL(pci_query_irq_mode, zx_status_t, /* no attributes */, 3,
    (handle, mode, out_max_irqs), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t mode,
    uint32_t* out_max_irqs))

_ZX_SYSCALL_DECL(pci_set_irq_mode, zx_status_t, /* no attributes */, 3,
    (handle, mode, requested_irq_count), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t mode,
    uint32_t requested_irq_count))

_ZX_SYSCALL_DECL(pci_init, zx_status_t, /* no attributes */, 3,
    (handle, init_buf, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    const zx_pci_init_arg_t* init_buf,
    uint32_t len))

_ZX_SYSCALL_DECL(pci_add_subtract_io_range, zx_status_t, /* no attributes */, 5,
    (handle, mmio, base, len, add), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t mmio,
    uint64_t base,
    uint64_t len,
    uint32_t add))

_ZX_SYSCALL_DECL(pmt_unpin, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle))

_ZX_SYSCALL_DECL(port_create, zx_status_t, /* no attributes */, 2,
    (options, out), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(port_queue, zx_status_t, /* no attributes */, 2,
    (handle, packet), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    const zx_port_packet_t* packet))

_ZX_SYSCALL_DECL(port_wait, zx_status_t, /* no attributes */, 3,
    (handle, deadline, packet), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t deadline,
    zx_port_packet_t* packet))

_ZX_SYSCALL_DECL(port_cancel, zx_status_t, /* no attributes */, 3,
    (handle, source, key), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t source,
    uint64_t key))

_ZX_SYSCALL_DECL(process_exit, void, __NO_RETURN, 1,
    (retcode), (
    int64_t retcode))

_ZX_SYSCALL_DECL(process_create, zx_status_t, /* no attributes */, 6,
    (job, name, name_size, options, proc_handle, vmar_handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t job,
    const char* name,
    size_t name_size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* proc_handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* vmar_handle))

_ZX_SYSCALL_DECL(process_start, zx_status_t, /* no attributes */, 6,
    (handle, thread, entry, stack, arg1, arg2), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t thread,
    zx_vaddr_t entry,
    zx_vaddr_t stack,
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t arg1,
    uintptr_t arg2))

_ZX_SYSCALL_DECL(process_read_memory, zx_status_t, /* no attributes */, 5,
    (handle, vaddr, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t vaddr,
    void* buffer,
    size_t buffer_size,
    size_t* actual))

_ZX_SYSCALL_DECL(process_write_memory, zx_status_t, /* no attributes */, 5,
    (handle, vaddr, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t vaddr,
    const void* buffer,
    size_t buffer_size,
    size_t* actual))

_ZX_SYSCALL_DECL(profile_create, zx_status_t, /* no attributes */, 4,
    (root_job, options, profile, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
    uint32_t options,
    const zx_profile_info_t* profile,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(resource_create, zx_status_t, /* no attributes */, 7,
    (parent_rsrc, options, base, size, name, name_size, resource_out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_rsrc,
    uint32_t options,
    uint64_t base,
    size_t size,
    const char* name,
    size_t name_size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* resource_out))

_ZX_SYSCALL_DECL(smc_call, zx_status_t, /* no attributes */, 3,
    (handle, parameters, out_smc_result), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    const zx_smc_parameters_t* parameters,
    zx_smc_result_t* out_smc_result))

_ZX_SYSCALL_DECL(socket_create, zx_status_t, /* no attributes */, 3,
    (options, out0, out1), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out0,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out1))

_ZX_SYSCALL_DECL(socket_write, zx_status_t, /* no attributes */, 5,
    (handle, options, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const void* buffer,
    size_t buffer_size,
    size_t* actual))

_ZX_SYSCALL_DECL(socket_read, zx_status_t, /* no attributes */, 5,
    (handle, options, buffer, buffer_size, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    void* buffer,
    size_t buffer_size,
    size_t* actual))

_ZX_SYSCALL_DECL(socket_shutdown, zx_status_t, /* no attributes */, 2,
    (handle, options), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options))

_ZX_SYSCALL_DECL(stream_create, zx_status_t, /* no attributes */, 4,
    (options, vmo, seek, out_stream), (
    uint32_t options,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    zx_off_t seek,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out_stream))

_ZX_SYSCALL_DECL(stream_writev, zx_status_t, /* no attributes */, 5,
    (handle, options, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    const zx_iovec_t* vector,
    size_t num_vector,
    size_t* actual))

_ZX_SYSCALL_DECL(stream_writev_at, zx_status_t, /* no attributes */, 6,
    (handle, options, offset, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_off_t offset,
    const zx_iovec_t* vector,
    size_t num_vector,
    size_t* actual))

_ZX_SYSCALL_DECL(stream_readv, zx_status_t, /* no attributes */, 5,
    (handle, options, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_iovec_t* vector,
    size_t num_vector,
    size_t* actual))

_ZX_SYSCALL_DECL(stream_readv_at, zx_status_t, /* no attributes */, 6,
    (handle, options, offset, vector, num_vector, actual), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    zx_off_t offset,
    zx_iovec_t* vector,
    size_t num_vector,
    size_t* actual))

_ZX_SYSCALL_DECL(stream_seek, zx_status_t, /* no attributes */, 4,
    (handle, whence, offset, out_seek), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_stream_seek_origin_t whence,
    int64_t offset,
    zx_off_t* out_seek))

_ZX_SYSCALL_DECL(system_get_dcache_line_size, uint32_t, __CONST, 0,
    (), (void))

_ZX_SYSCALL_DECL(system_get_num_cpus, uint32_t, __CONST, 0,
    (), (void))

_ZX_SYSCALL_DECL(system_get_version_string, zx_string_view_t, __CONST, 0,
    (), (void))

_ZX_SYSCALL_DECL(system_get_physmem, uint64_t, /* no attributes */, 0,
    (), (void))

_ZX_SYSCALL_DECL(system_get_features, zx_status_t, /* no attributes */, 2,
    (kind, features), (
    uint32_t kind,
    uint32_t* features))

_ZX_SYSCALL_DECL(system_get_event, zx_status_t, /* no attributes */, 3,
    (root_job, kind, event), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t root_job,
    uint32_t kind,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* event))

_ZX_SYSCALL_DECL(system_mexec, zx_status_t, /* no attributes */, 3,
    (resource, kernel_vmo, bootimage_vmo), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t kernel_vmo,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bootimage_vmo))

_ZX_SYSCALL_DECL(system_mexec_payload_get, zx_status_t, /* no attributes */, 3,
    (resource, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(system_powerctl, zx_status_t, /* no attributes */, 3,
    (resource, cmd, arg), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    uint32_t cmd,
    const zx_system_powerctl_arg_t* arg))

_ZX_SYSCALL_DECL(task_suspend, zx_status_t, /* no attributes */, 2,
    (handle, token), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* token))

_ZX_SYSCALL_DECL(task_suspend_token, zx_status_t, /* no attributes */, 2,
    (handle, token), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* token))

_ZX_SYSCALL_DECL(task_create_exception_channel, zx_status_t, /* no attributes */, 3,
    (handle, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(task_kill, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

_ZX_SYSCALL_DECL(thread_exit, void, __NO_RETURN, 0,
    (), (void))

_ZX_SYSCALL_DECL(thread_create, zx_status_t, /* no attributes */, 5,
    (process, name, name_size, options, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t process,
    const char* name,
    size_t name_size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(thread_start, zx_status_t, /* no attributes */, 5,
    (handle, thread_entry, stack, arg1, arg2), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t thread_entry,
    zx_vaddr_t stack,
    uintptr_t arg1,
    uintptr_t arg2))

_ZX_SYSCALL_DECL(thread_read_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(thread_write_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    const void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(timer_create, zx_status_t, /* no attributes */, 3,
    (options, clock_id, out), (
    uint32_t options,
    zx_clock_t clock_id,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(timer_set, zx_status_t, /* no attributes */, 3,
    (handle, deadline, slack), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_time_t deadline,
    zx_duration_t slack))

_ZX_SYSCALL_DECL(timer_cancel, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

_ZX_SYSCALL_DECL(vcpu_create, zx_status_t, /* no attributes */, 4,
    (guest, options, entry, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t guest,
    uint32_t options,
    zx_vaddr_t entry,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(vcpu_resume, zx_status_t, /* no attributes */, 2,
    (handle, packet), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_port_packet_t* packet))

_ZX_SYSCALL_DECL(vcpu_interrupt, zx_status_t, /* no attributes */, 2,
    (handle, vector), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t vector))

_ZX_SYSCALL_DECL(vcpu_read_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(vcpu_write_state, zx_status_t, /* no attributes */, 4,
    (handle, kind, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t kind,
    const void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(vmar_allocate, zx_status_t, /* no attributes */, 6,
    (parent_vmar, options, offset, size, child_vmar, child_addr), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t parent_vmar,
    zx_vm_option_t options,
    size_t offset,
    size_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* child_vmar,
    zx_vaddr_t* child_addr))

_ZX_SYSCALL_DECL(vmar_destroy, zx_status_t, /* no attributes */, 1,
    (handle), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle))

_ZX_SYSCALL_DECL(vmar_map, zx_status_t, /* no attributes */, 7,
    (handle, options, vmar_offset, vmo, vmo_offset, len, mapped_addr), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vm_option_t options,
    size_t vmar_offset,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmo,
    uint64_t vmo_offset,
    size_t len,
    zx_vaddr_t* mapped_addr))

_ZX_SYSCALL_DECL(vmar_unmap, zx_status_t, /* no attributes */, 3,
    (handle, addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vaddr_t addr,
    size_t len))

_ZX_SYSCALL_DECL(vmar_protect, zx_status_t, /* no attributes */, 4,
    (handle, options, addr, len), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    zx_vm_option_t options,
    zx_vaddr_t addr,
    size_t len))

_ZX_SYSCALL_DECL(vmar_op_range, zx_status_t, /* no attributes */, 6,
    (handle, op, address, size, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t op,
    zx_vaddr_t address,
    size_t size,
    void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(vmo_create, zx_status_t, /* no attributes */, 3,
    (size, options, out), (
    uint64_t size,
    uint32_t options,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(vmo_read, zx_status_t, /* no attributes */, 4,
    (handle, buffer, offset, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    void* buffer,
    uint64_t offset,
    size_t buffer_size))

_ZX_SYSCALL_DECL(vmo_write, zx_status_t, /* no attributes */, 4,
    (handle, buffer, offset, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    const void* buffer,
    uint64_t offset,
    size_t buffer_size))

_ZX_SYSCALL_DECL(vmo_get_size, zx_status_t, /* no attributes */, 2,
    (handle, size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t* size))

_ZX_SYSCALL_DECL(vmo_set_size, zx_status_t, /* no attributes */, 2,
    (handle, size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint64_t size))

_ZX_SYSCALL_DECL(vmo_op_range, zx_status_t, /* no attributes */, 6,
    (handle, op, offset, size, buffer, buffer_size), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t op,
    uint64_t offset,
    uint64_t size,
    void* buffer,
    size_t buffer_size))

_ZX_SYSCALL_DECL(vmo_create_child, zx_status_t, /* no attributes */, 5,
    (handle, options, offset, size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t options,
    uint64_t offset,
    uint64_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(vmo_set_cache_policy, zx_status_t, /* no attributes */, 2,
    (handle, cache_policy), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle,
    uint32_t cache_policy))

_ZX_SYSCALL_DECL(vmo_replace_as_executable, zx_status_t, /* no attributes */, 3,
    (handle, vmex, out), (
    _ZX_SYSCALL_ANNO(release_handle("Fuchsia")) zx_handle_t handle,
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t vmex,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(vmo_create_contiguous, zx_status_t, /* no attributes */, 4,
    (bti, size, alignment_log2, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t bti,
    size_t size,
    uint32_t alignment_log2,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

_ZX_SYSCALL_DECL(vmo_create_physical, zx_status_t, /* no attributes */, 4,
    (resource, paddr, size, out), (
    _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource,
    zx_paddr_t paddr,
    size_t size,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

----- public-header.h END -----


----- rust.rs START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

// re-export the types defined in the fuchsia-zircon-types crate
pub use fuchsia_zircon_types::*;
// only link against zircon when targeting Fuchsia
#[cfg(target_os = "fuchsia")]
#[link(name = "zircon")]
extern {
    pub fn zx_bti_create(
        iommu: zx_handle_t,
        options: u32,
        bti_id: u64,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_bti_pin(
        handle: zx_handle_t,
        options: u32,
        vmo: zx_handle_t,
        offset: u64,
        size: u64,
        addrs: *mut zx_paddr_t,
        num_addrs: usize,
        pmt: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_bti_release_quarantine(
        handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_cache_flush(
        addr: *const u8,
        size: usize,
        options: u32
        ) -> zx_status_t;

    pub fn zx_channel_create(
        options: u32,
        out0: *mut zx_handle_t,
        out1: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_channel_read(
        handle: zx_handle_t,
        options: u32,
        bytes: *mut u8,
        handles: *mut zx_handle_t,
        num_bytes: u32,
        num_handles: u32,
        actual_bytes: *mut u32,
        actual_handles: *mut u32
        ) -> zx_status_t;

    pub fn zx_channel_read_etc(
        handle: zx_handle_t,
        options: u32,
        bytes: *mut u8,
        handles: *mut zx_handle_info_t,
        num_bytes: u32,
        num_handles: u32,
        actual_bytes: *mut u32,
        actual_handles: *mut u32
        ) -> zx_status_t;

    pub fn zx_channel_write(
        handle: zx_handle_t,
        options: u32,
        bytes: *const u8,
        num_bytes: u32,
        handles: *const zx_handle_t,
        num_handles: u32
        ) -> zx_status_t;

    pub fn zx_channel_write_etc(
        handle: zx_handle_t,
        options: u32,
        bytes: *const u8,
        num_bytes: u32,
        handles: *mut zx_handle_disposition_t,
        num_handles: u32
        ) -> zx_status_t;

    pub fn zx_channel_call(
        handle: zx_handle_t,
        options: u32,
        deadline: zx_time_t,
        args: *const zx_channel_call_args_t,
        actual_bytes: *mut u32,
        actual_handles: *mut u32
        ) -> zx_status_t;

    pub fn zx_channel_call_etc(
        handle: zx_handle_t,
        options: u32,
        deadline: zx_time_t,
        args: *mut zx_channel_call_etc_args_t,
        actual_bytes: *mut u32,
        actual_handles: *mut u32
        ) -> zx_status_t;

    pub fn zx_clock_get(
        clock_id: zx_clock_t,
        out: *mut zx_time_t
        ) -> zx_status_t;

    pub fn zx_clock_get_monotonic(
        ) -> zx_time_t;

    pub fn zx_clock_adjust(
        handle: zx_handle_t,
        clock_id: zx_clock_t,
        offset: i64
        ) -> zx_status_t;

    pub fn zx_clock_create(
        options: u64,
        args: *const u8,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_clock_read(
        handle: zx_handle_t,
        now: *mut zx_time_t
        ) -> zx_status_t;

    pub fn zx_clock_get_details(
        handle: zx_handle_t,
        options: u64,
        details: *mut u8
        ) -> zx_status_t;

    pub fn zx_clock_update(
        handle: zx_handle_t,
        options: u64,
        args: *const u8
        ) -> zx_status_t;

    pub fn zx_cprng_draw(
        buffer: *mut u8,
        buffer_size: usize
        );

    pub fn zx_cprng_add_entropy(
        buffer: *const u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_debug_read(
        handle: zx_handle_t,
        buffer: *mut u8,
        buffer_size: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_debug_write(
        buffer: *const u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_debug_send_command(
        resource: zx_handle_t,
        buffer: *const u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_debuglog_create(
        resource: zx_handle_t,
        options: u32,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_debuglog_write(
        handle: zx_handle_t,
        options: u32,
        buffer: *const u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_debuglog_read(
        handle: zx_handle_t,
        options: u32,
        buffer: *mut u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_event_create(
        options: u32,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_eventpair_create(
        options: u32,
        out0: *mut zx_handle_t,
        out1: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_exception_get_thread(
        handle: zx_handle_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_exception_get_process(
        handle: zx_handle_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_fifo_create(
        elem_count: usize,
        elem_size: usize,
        options: u32,
        out0: *mut zx_handle_t,
        out1: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_fifo_read(
        handle: zx_handle_t,
        elem_size: usize,
        data: *mut u8,
        data_size: usize,
        actual_count: *mut usize
        ) -> zx_status_t;

    pub fn zx_fifo_write(
        handle: zx_handle_t,
        elem_size: usize,
        data: *const u8,
        count: usize,
        actual_count: *mut usize
        ) -> zx_status_t;

    pub fn zx_framebuffer_get_info(
        resource: zx_handle_t,
        format: *mut u32,
        width: *mut u32,
        height: *mut u32,
        stride: *mut u32
        ) -> zx_status_t;

    pub fn zx_framebuffer_set_range(
        resource: zx_handle_t,
        vmo: zx_handle_t,
        len: u32,
        format: u32,
        width: u32,
        height: u32,
        stride: u32
        ) -> zx_status_t;

    pub fn zx_futex_wait(
        value_ptr: *const zx_futex_t,
        current_value: zx_futex_t,
        new_futex_owner: zx_handle_t,
        deadline: zx_time_t
        ) -> zx_status_t;

    pub fn zx_futex_wake(
        value_ptr: *const zx_futex_t,
        wake_count: u32
        ) -> zx_status_t;

    pub fn zx_futex_requeue(
        value_ptr: *const zx_futex_t,
        wake_count: u32,
        current_value: zx_futex_t,
        requeue_ptr: *const zx_futex_t,
        requeue_count: u32,
        new_requeue_owner: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_futex_wake_single_owner(
        value_ptr: *const zx_futex_t
        ) -> zx_status_t;

    pub fn zx_futex_requeue_single_owner(
        value_ptr: *const zx_futex_t,
        current_value: zx_futex_t,
        requeue_ptr: *const zx_futex_t,
        requeue_count: u32,
        new_requeue_owner: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_futex_get_owner(
        value_ptr: *const zx_futex_t,
        koid: *mut zx_koid_t
        ) -> zx_status_t;

    pub fn zx_guest_create(
        resource: zx_handle_t,
        options: u32,
        guest_handle: *mut zx_handle_t,
        vmar_handle: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_guest_set_trap(
        handle: zx_handle_t,
        kind: u32,
        addr: zx_vaddr_t,
        size: usize,
        port_handle: zx_handle_t,
        key: u64
        ) -> zx_status_t;

    pub fn zx_handle_close(
        handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_handle_close_many(
        handles: *const zx_handle_t,
        num_handles: usize
        ) -> zx_status_t;

    pub fn zx_handle_duplicate(
        handle: zx_handle_t,
        rights: zx_rights_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_handle_replace(
        handle: zx_handle_t,
        rights: zx_rights_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_interrupt_create(
        src_obj: zx_handle_t,
        src_num: u32,
        options: u32,
        out_handle: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_interrupt_bind(
        handle: zx_handle_t,
        port_handle: zx_handle_t,
        key: u64,
        options: u32
        ) -> zx_status_t;

    pub fn zx_interrupt_wait(
        handle: zx_handle_t,
        out_timestamp: *mut zx_time_t
        ) -> zx_status_t;

    pub fn zx_interrupt_destroy(
        handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_interrupt_ack(
        handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_interrupt_trigger(
        handle: zx_handle_t,
        options: u32,
        timestamp: zx_time_t
        ) -> zx_status_t;

    pub fn zx_interrupt_bind_vcpu(
        handle: zx_handle_t,
        vcpu: zx_handle_t,
        options: u32
        ) -> zx_status_t;

    pub fn zx_iommu_create(
        resource: zx_handle_t,
        ty: u32,
        desc: *const u8,
        desc_size: usize,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_ioports_request(
        resource: zx_handle_t,
        io_addr: u16,
        len: u32
        ) -> zx_status_t;

    pub fn zx_ioports_release(
        resource: zx_handle_t,
        io_addr: u16,
        len: u32
        ) -> zx_status_t;

    pub fn zx_job_create(
        parent_job: zx_handle_t,
        options: u32,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_job_set_policy(
        handle: zx_handle_t,
        options: u32,
        topic: u32,
        policy: *const u8,
        policy_size: u32
        ) -> zx_status_t;

    pub fn zx_job_set_critical(
        job: zx_handle_t,
        options: u32,
        process: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_ktrace_read(
        handle: zx_handle_t,
        data: *mut u8,
        offset: u32,
        data_size: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_ktrace_control(
        handle: zx_handle_t,
        action: u32,
        options: u32,
        ptr: *mut u8
        ) -> zx_status_t;

    pub fn zx_ktrace_write(
        handle: zx_handle_t,
        id: u32,
        arg0: u32,
        arg1: u32
        ) -> zx_status_t;

    pub fn zx_nanosleep(
        deadline: zx_time_t
        ) -> zx_status_t;

    pub fn zx_ticks_get(
        ) -> zx_ticks_t;

    pub fn zx_ticks_per_second(
        ) -> zx_ticks_t;

    pub fn zx_deadline_after(
        nanoseconds: zx_duration_t
        ) -> zx_time_t;

    pub fn zx_vmar_unmap_handle_close_thread_exit(
        vmar_handle: zx_handle_t,
        addr: zx_vaddr_t,
        size: usize,
        close_handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_futex_wake_handle_close_thread_exit(
        value_ptr: *const zx_futex_t,
        wake_count: u32,
        new_value: i32,
        close_handle: zx_handle_t
        );

    pub fn zx_msi_allocate(
        handle: zx_handle_t,
        count: u32,
        out_allocation: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_msi_create(
        handle: zx_handle_t,
        options: u32,
        msi_id: u32,
        vmo: zx_handle_t,
        vmo_offset: usize,
        out_interrupt: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_mtrace_control(
        handle: zx_handle_t,
        kind: u32,
        action: u32,
        options: u32,
        ptr: *mut u8,
        ptr_size: usize
        ) -> zx_status_t;

    pub fn zx_object_wait_one(
        handle: zx_handle_t,
        signals: zx_signals_t,
        deadline: zx_time_t,
        observed: *mut zx_signals_t
        ) -> zx_status_t;

    pub fn zx_object_wait_many(
        items: *mut zx_wait_item_t,
        num_items: usize,
        deadline: zx_time_t
        ) -> zx_status_t;

    pub fn zx_object_wait_async(
        handle: zx_handle_t,
        port: zx_handle_t,
        key: u64,
        signals: zx_signals_t,
        options: u32
        ) -> zx_status_t;

    pub fn zx_object_signal(
        handle: zx_handle_t,
        clear_mask: u32,
        set_mask: u32
        ) -> zx_status_t;

    pub fn zx_object_signal_peer(
        handle: zx_handle_t,
        clear_mask: u32,
        set_mask: u32
        ) -> zx_status_t;

    pub fn zx_object_get_property(
        handle: zx_handle_t,
        property: u32,
        value: *mut u8,
        value_size: usize
        ) -> zx_status_t;

    pub fn zx_object_set_property(
        handle: zx_handle_t,
        property: u32,
        value: *const u8,
        value_size: usize
        ) -> zx_status_t;

    pub fn zx_object_get_info(
        handle: zx_handle_t,
        topic: u32,
        buffer: *mut u8,
        buffer_size: usize,
        actual: *mut usize,
        avail: *mut usize
        ) -> zx_status_t;

    pub fn zx_object_get_child(
        handle: zx_handle_t,
        koid: u64,
        rights: zx_rights_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_object_set_profile(
        handle: zx_handle_t,
        profile: zx_handle_t,
        options: u32
        ) -> zx_status_t;

    pub fn zx_pager_create(
        options: u32,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_pager_create_vmo(
        pager: zx_handle_t,
        options: u32,
        port: zx_handle_t,
        key: u64,
        size: u64,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_pager_detach_vmo(
        pager: zx_handle_t,
        vmo: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_pager_supply_pages(
        pager: zx_handle_t,
        pager_vmo: zx_handle_t,
        offset: u64,
        length: u64,
        aux_vmo: zx_handle_t,
        aux_offset: u64
        ) -> zx_status_t;

    pub fn zx_pager_op_range(
        pager: zx_handle_t,
        op: u32,
        pager_vmo: zx_handle_t,
        offset: u64,
        length: u64,
        data: u64
        ) -> zx_status_t;

    pub fn zx_pc_firmware_tables(
        handle: zx_handle_t,
        acpi_rsdp: *mut zx_paddr_t,
        smbios: *mut zx_paddr_t
        ) -> zx_status_t;

    pub fn zx_pci_get_nth_device(
        handle: zx_handle_t,
        index: u32,
        out_info: *mut zx_pcie_device_info_t,
        out_handle: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_pci_enable_bus_master(
        handle: zx_handle_t,
        enable: u32
        ) -> zx_status_t;

    pub fn zx_pci_reset_device(
        handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_pci_config_read(
        handle: zx_handle_t,
        offset: u16,
        width: usize,
        out_val: *mut u32
        ) -> zx_status_t;

    pub fn zx_pci_config_write(
        handle: zx_handle_t,
        offset: u16,
        width: usize,
        val: u32
        ) -> zx_status_t;

    pub fn zx_pci_cfg_pio_rw(
        handle: zx_handle_t,
        bus: u8,
        dev: u8,
        func: u8,
        offset: u8,
        val: *mut u32,
        width: usize,
        write: u32
        ) -> zx_status_t;

    pub fn zx_pci_get_bar(
        handle: zx_handle_t,
        bar_num: u32,
        out_bar: *mut zx_pci_bar_t,
        out_handle: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_pci_map_interrupt(
        handle: zx_handle_t,
        which_irq: i32,
        out_handle: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_pci_query_irq_mode(
        handle: zx_handle_t,
        mode: u32,
        out_max_irqs: *mut u32
        ) -> zx_status_t;

    pub fn zx_pci_set_irq_mode(
        handle: zx_handle_t,
        mode: u32,
        requested_irq_count: u32
        ) -> zx_status_t;

    pub fn zx_pci_init(
        handle: zx_handle_t,
        init_buf: *const zx_pci_init_arg_t,
        len: u32
        ) -> zx_status_t;

    pub fn zx_pci_add_subtract_io_range(
        handle: zx_handle_t,
        mmio: u32,
        base: u64,
        len: u64,
        add: u32
        ) -> zx_status_t;

    pub fn zx_pmt_unpin(
        handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_port_create(
        options: u32,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_port_queue(
        handle: zx_handle_t,
        packet: *const zx_port_packet_t
        ) -> zx_status_t;

    pub fn zx_port_wait(
        handle: zx_handle_t,
        deadline: zx_time_t,
        packet: *mut zx_port_packet_t
        ) -> zx_status_t;

    pub fn zx_port_cancel(
        handle: zx_handle_t,
        source: zx_handle_t,
        key: u64
        ) -> zx_status_t;

    pub fn zx_process_exit(
        retcode: i64
        );

    pub fn zx_process_create(
        job: zx_handle_t,
        name: *const u8,
        name_size: usize,
        options: u32,
        proc_handle: *mut zx_handle_t,
        vmar_handle: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_process_start(
        handle: zx_handle_t,
        thread: zx_handle_t,
        entry: zx_vaddr_t,
        stack: zx_vaddr_t,
        arg1: zx_handle_t,
        arg2: usize
        ) -> zx_status_t;

    pub fn zx_process_read_memory(
        handle: zx_handle_t,
        vaddr: zx_vaddr_t,
        buffer: *mut u8,
        buffer_size: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_process_write_memory(
        handle: zx_handle_t,
        vaddr: zx_vaddr_t,
        buffer: *const u8,
        buffer_size: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_profile_create(
        root_job: zx_handle_t,
        options: u32,
        profile: *const zx_profile_info_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_resource_create(
        parent_rsrc: zx_handle_t,
        options: u32,
        base: u64,
        size: usize,
        name: *const u8,
        name_size: usize,
        resource_out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_smc_call(
        handle: zx_handle_t,
        parameters: *const zx_smc_parameters_t,
        out_smc_result: *mut zx_smc_result_t
        ) -> zx_status_t;

    pub fn zx_socket_create(
        options: u32,
        out0: *mut zx_handle_t,
        out1: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_socket_write(
        handle: zx_handle_t,
        options: u32,
        buffer: *const u8,
        buffer_size: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_socket_read(
        handle: zx_handle_t,
        options: u32,
        buffer: *mut u8,
        buffer_size: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_socket_shutdown(
        handle: zx_handle_t,
        options: u32
        ) -> zx_status_t;

    pub fn zx_stream_create(
        options: u32,
        vmo: zx_handle_t,
        seek: zx_off_t,
        out_stream: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_stream_writev(
        handle: zx_handle_t,
        options: u32,
        vector: *const zx_iovec_t,
        num_vector: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_stream_writev_at(
        handle: zx_handle_t,
        options: u32,
        offset: zx_off_t,
        vector: *const zx_iovec_t,
        num_vector: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_stream_readv(
        handle: zx_handle_t,
        options: u32,
        vector: *mut zx_iovec_t,
        num_vector: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_stream_readv_at(
        handle: zx_handle_t,
        options: u32,
        offset: zx_off_t,
        vector: *mut zx_iovec_t,
        num_vector: usize,
        actual: *mut usize
        ) -> zx_status_t;

    pub fn zx_stream_seek(
        handle: zx_handle_t,
        whence: zx_stream_seek_origin_t,
        offset: i64,
        out_seek: *mut zx_off_t
        ) -> zx_status_t;

    pub fn zx_syscall_test_0(
        ) -> zx_status_t;

    pub fn zx_syscall_test_1(
        a: i32
        ) -> zx_status_t;

    pub fn zx_syscall_test_2(
        a: i32,
        b: i32
        ) -> zx_status_t;

    pub fn zx_syscall_test_3(
        a: i32,
        b: i32,
        c: i32
        ) -> zx_status_t;

    pub fn zx_syscall_test_4(
        a: i32,
        b: i32,
        c: i32,
        d: i32
        ) -> zx_status_t;

    pub fn zx_syscall_test_5(
        a: i32,
        b: i32,
        c: i32,
        d: i32,
        e: i32
        ) -> zx_status_t;

    pub fn zx_syscall_test_6(
        a: i32,
        b: i32,
        c: i32,
        d: i32,
        e: i32,
        f: i32
        ) -> zx_status_t;

    pub fn zx_syscall_test_7(
        a: i32,
        b: i32,
        c: i32,
        d: i32,
        e: i32,
        f: i32,
        g: i32
        ) -> zx_status_t;

    pub fn zx_syscall_test_8(
        a: i32,
        b: i32,
        c: i32,
        d: i32,
        e: i32,
        f: i32,
        g: i32,
        h: i32
        ) -> zx_status_t;

    pub fn zx_syscall_test_wrapper(
        a: i32,
        b: i32,
        c: i32
        ) -> zx_status_t;

    pub fn zx_syscall_test_handle_create(
        return_value: zx_status_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_system_get_dcache_line_size(
        ) -> u32;

    pub fn zx_system_get_num_cpus(
        ) -> u32;

    pub fn zx_system_get_version_string(
        ) -> zx_string_view_t;

    pub fn zx_system_get_physmem(
        ) -> u64;

    pub fn zx_system_get_features(
        kind: u32,
        features: *mut u32
        ) -> zx_status_t;

    pub fn zx_system_get_event(
        root_job: zx_handle_t,
        kind: u32,
        event: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_system_mexec(
        resource: zx_handle_t,
        kernel_vmo: zx_handle_t,
        bootimage_vmo: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_system_mexec_payload_get(
        resource: zx_handle_t,
        buffer: *mut u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_system_powerctl(
        resource: zx_handle_t,
        cmd: u32,
        arg: *const zx_system_powerctl_arg_t
        ) -> zx_status_t;

    pub fn zx_task_suspend(
        handle: zx_handle_t,
        token: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_task_suspend_token(
        handle: zx_handle_t,
        token: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_task_create_exception_channel(
        handle: zx_handle_t,
        options: u32,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_task_kill(
        handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_thread_exit(
        );

    pub fn zx_thread_create(
        process: zx_handle_t,
        name: *const u8,
        name_size: usize,
        options: u32,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_thread_start(
        handle: zx_handle_t,
        thread_entry: zx_vaddr_t,
        stack: zx_vaddr_t,
        arg1: usize,
        arg2: usize
        ) -> zx_status_t;

    pub fn zx_thread_read_state(
        handle: zx_handle_t,
        kind: u32,
        buffer: *mut u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_thread_write_state(
        handle: zx_handle_t,
        kind: u32,
        buffer: *const u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_timer_create(
        options: u32,
        clock_id: zx_clock_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_timer_set(
        handle: zx_handle_t,
        deadline: zx_time_t,
        slack: zx_duration_t
        ) -> zx_status_t;

    pub fn zx_timer_cancel(
        handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_vcpu_create(
        guest: zx_handle_t,
        options: u32,
        entry: zx_vaddr_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_vcpu_resume(
        handle: zx_handle_t,
        packet: *mut zx_port_packet_t
        ) -> zx_status_t;

    pub fn zx_vcpu_interrupt(
        handle: zx_handle_t,
        vector: u32
        ) -> zx_status_t;

    pub fn zx_vcpu_read_state(
        handle: zx_handle_t,
        kind: u32,
        buffer: *mut u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_vcpu_write_state(
        handle: zx_handle_t,
        kind: u32,
        buffer: *const u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_vmar_allocate(
        parent_vmar: zx_handle_t,
        options: zx_vm_option_t,
        offset: usize,
        size: usize,
        child_vmar: *mut zx_handle_t,
        child_addr: *mut zx_vaddr_t
        ) -> zx_status_t;

    pub fn zx_vmar_destroy(
        handle: zx_handle_t
        ) -> zx_status_t;

    pub fn zx_vmar_map(
        handle: zx_handle_t,
        options: zx_vm_option_t,
        vmar_offset: usize,
        vmo: zx_handle_t,
        vmo_offset: u64,
        len: usize,
        mapped_addr: *mut zx_vaddr_t
        ) -> zx_status_t;

    pub fn zx_vmar_unmap(
        handle: zx_handle_t,
        addr: zx_vaddr_t,
        len: usize
        ) -> zx_status_t;

    pub fn zx_vmar_protect(
        handle: zx_handle_t,
        options: zx_vm_option_t,
        addr: zx_vaddr_t,
        len: usize
        ) -> zx_status_t;

    pub fn zx_vmar_op_range(
        handle: zx_handle_t,
        op: u32,
        address: zx_vaddr_t,
        size: usize,
        buffer: *mut u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_vmo_create(
        size: u64,
        options: u32,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_vmo_read(
        handle: zx_handle_t,
        buffer: *mut u8,
        offset: u64,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_vmo_write(
        handle: zx_handle_t,
        buffer: *const u8,
        offset: u64,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_vmo_get_size(
        handle: zx_handle_t,
        size: *mut u64
        ) -> zx_status_t;

    pub fn zx_vmo_set_size(
        handle: zx_handle_t,
        size: u64
        ) -> zx_status_t;

    pub fn zx_vmo_op_range(
        handle: zx_handle_t,
        op: u32,
        offset: u64,
        size: u64,
        buffer: *mut u8,
        buffer_size: usize
        ) -> zx_status_t;

    pub fn zx_vmo_create_child(
        handle: zx_handle_t,
        options: u32,
        offset: u64,
        size: u64,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_vmo_set_cache_policy(
        handle: zx_handle_t,
        cache_policy: u32
        ) -> zx_status_t;

    pub fn zx_vmo_replace_as_executable(
        handle: zx_handle_t,
        vmex: zx_handle_t,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_vmo_create_contiguous(
        bti: zx_handle_t,
        size: usize,
        alignment_log2: u32,
        out: *mut zx_handle_t
        ) -> zx_status_t;

    pub fn zx_vmo_create_physical(
        resource: zx_handle_t,
        paddr: zx_paddr_t,
        size: usize,
        out: *mut zx_handle_t
        ) -> zx_status_t;

}
----- rust.rs END -----


----- syscall-numbers.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

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


----- testonly-public-header.h START -----
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// WARNING: THIS FILE IS MACHINE GENERATED BY //tools/kazoo. DO NOT EDIT.

#ifndef _ZX_SYSCALL_DECL
#error "<zircon/testonly-syscalls.h> is the public API header"
#endif

_ZX_SYSCALL_DECL(syscall_test_0, zx_status_t, /* no attributes */, 0,
    (), (void))

_ZX_SYSCALL_DECL(syscall_test_1, zx_status_t, /* no attributes */, 1,
    (a), (
    int32_t a))

_ZX_SYSCALL_DECL(syscall_test_2, zx_status_t, /* no attributes */, 2,
    (a, b), (
    int32_t a,
    int32_t b))

_ZX_SYSCALL_DECL(syscall_test_3, zx_status_t, /* no attributes */, 3,
    (a, b, c), (
    int32_t a,
    int32_t b,
    int32_t c))

_ZX_SYSCALL_DECL(syscall_test_4, zx_status_t, /* no attributes */, 4,
    (a, b, c, d), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d))

_ZX_SYSCALL_DECL(syscall_test_5, zx_status_t, /* no attributes */, 5,
    (a, b, c, d, e), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e))

_ZX_SYSCALL_DECL(syscall_test_6, zx_status_t, /* no attributes */, 6,
    (a, b, c, d, e, f), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e,
    int32_t f))

_ZX_SYSCALL_DECL(syscall_test_7, zx_status_t, /* no attributes */, 7,
    (a, b, c, d, e, f, g), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e,
    int32_t f,
    int32_t g))

_ZX_SYSCALL_DECL(syscall_test_8, zx_status_t, /* no attributes */, 8,
    (a, b, c, d, e, f, g, h), (
    int32_t a,
    int32_t b,
    int32_t c,
    int32_t d,
    int32_t e,
    int32_t f,
    int32_t g,
    int32_t h))

_ZX_SYSCALL_DECL(syscall_test_wrapper, zx_status_t, /* no attributes */, 3,
    (a, b, c), (
    int32_t a,
    int32_t b,
    int32_t c))

_ZX_SYSCALL_DECL(syscall_test_handle_create, zx_status_t, /* no attributes */, 2,
    (return_value, out), (
    zx_status_t return_value,
    _ZX_SYSCALL_ANNO(acquire_handle("Fuchsia")) zx_handle_t* out))

----- testonly-public-header.h END -----


