| ----- 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_MANAGE_SOCKET ((zx_rights_t)0x100000u) |
| #define ZX_RIGHT_SAME_RIGHTS ((zx_rights_t)0x80000000u) |
| |
| #define ZX_RIGHT_ALL ((zx_rights_t)0x801fffffu) |
| |
| // 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) |
| |
| // 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) |
| |
| // 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 int32_t zx_futex_t; |
| |
| typedef uint32_t zx_handle_op_t; |
| |
| typedef uint32_t zx_vm_option_t; |
| |
| typedef int64_t zx_duration_t; |
| |
| typedef uint64_t zx_gpaddr_t; |
| |
| typedef uint64_t zx_koid_t; |
| |
| typedef uint64_t zx_off_t; |
| |
| typedef uint64_t zx_paddr_t; |
| |
| typedef uint32_t zx_paddr32_t; |
| |
| typedef uint32_t zx_procarg_t; |
| |
| typedef uint32_t zx_signals_t; |
| |
| typedef int32_t zx_status_t; |
| |
| typedef int64_t zx_ticks_t; |
| |
| typedef int64_t zx_time_t; |
| |
| typedef uint64_t zx_uintptr_t; |
| |
| typedef uint64_t zx_usize_t; |
| |
| typedef uint64_t zx_vaddr_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(stream_writev) |
| SYSCALL_IN_CATEGORY(stream_writev_at) |
| SYSCALL_IN_CATEGORY(stream_readv) |
| SYSCALL_IN_CATEGORY(stream_readv_at) |
| SYSCALL_IN_CATEGORY(vcpu_enter) |
| 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_IN_CATEGORY(system_get_page_size) |
| SYSCALL_CATEGORY_END(const) |
| |
| #define HAVE_SYSCALL_CATEGORY_next 1 |
| SYSCALL_CATEGORY_BEGIN(next) |
| SYSCALL_IN_CATEGORY(pager_query_dirty_ranges) |
| SYSCALL_IN_CATEGORY(pager_query_vmo_stats) |
| SYSCALL_IN_CATEGORY(syscall_next_1) |
| SYSCALL_CATEGORY_END(next) |
| |
| #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_page_size) |
| SYSCALL_IN_CATEGORY(system_get_physmem) |
| SYSCALL_IN_CATEGORY(system_get_features) |
| SYSCALL_CATEGORY_END(vdsocall) |
| |
| ----- category.h END ----- |
| |
| |
| ----- next-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-next.h> is the public API header" |
| #endif |
| |
| _ZX_SYSCALL_DECL(pager_query_dirty_ranges, zx_status_t, /* no attributes */, 8, |
| (pager, pager_vmo, offset, length, buffer, buffer_size, actual, avail), ( |
| _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, |
| void* buffer, |
| size_t buffer_size, |
| size_t* actual, |
| size_t* avail)) |
| |
| _ZX_SYSCALL_DECL(pager_query_vmo_stats, zx_status_t, /* no attributes */, 5, |
| (pager, pager_vmo, options, buffer, buffer_size), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager, |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo, |
| uint32_t options, |
| void* buffer, |
| size_t buffer_size)) |
| |
| _ZX_SYSCALL_DECL(syscall_next_1, zx_status_t, /* no attributes */, 1, |
| (arg), ( |
| int32_t arg)) |
| |
| ----- next-public-header.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_monotonic() Time |
| TEXT ·Sys_clock_get_monotonic(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_clock_get_monotonic(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_pager_query_dirty_ranges(pager Handle, pager_vmo Handle, offset uint64, length uint64, buffer unsafe.Pointer, buffer_size uint, actual *uint, avail *uint) Status |
| TEXT ·Sys_pager_query_dirty_ranges(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_pager_query_dirty_ranges(SB) |
| |
| // func Sys_pager_query_vmo_stats(pager Handle, pager_vmo Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status |
| TEXT ·Sys_pager_query_vmo_stats(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_pager_query_vmo_stats(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_set_disposition(handle Handle, disposition uint32, disposition_peer uint32) Status |
| TEXT ·Sys_socket_set_disposition(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_socket_set_disposition(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_next_1(arg int32) Status |
| TEXT ·Sys_syscall_next_1(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_next_1(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_syscall_test_widening_unsigned_narrow(a uint64, b uint32, c uint16, d uint8) uint64 |
| TEXT ·Sys_syscall_test_widening_unsigned_narrow(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_test_widening_unsigned_narrow(SB) |
| |
| // func Sys_syscall_test_widening_signed_narrow(a int64, b int32, c int16, d int8) int64 |
| TEXT ·Sys_syscall_test_widening_signed_narrow(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_test_widening_signed_narrow(SB) |
| |
| // func Sys_syscall_test_widening_unsigned_wide(a uint64, b uint32, c uint16, d uint8) uint64 |
| TEXT ·Sys_syscall_test_widening_unsigned_wide(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_test_widening_unsigned_wide(SB) |
| |
| // func Sys_syscall_test_widening_signed_wide(a int64, b int32, c int16, d int8) int64 |
| TEXT ·Sys_syscall_test_widening_signed_wide(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_test_widening_signed_wide(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_page_size() uint32 |
| TEXT ·Sys_system_get_page_size(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_system_get_page_size(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_set_performance_info(resource Handle, topic uint32, info unsafe.Pointer, count uint) Status |
| TEXT ·Sys_system_set_performance_info(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_system_set_performance_info(SB) |
| |
| // func Sys_system_get_performance_info(resource Handle, topic uint32, count uint, info unsafe.Pointer, output_count *uint) Status |
| TEXT ·Sys_system_get_performance_info(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_system_get_performance_info(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_thread_legacy_yield(options uint32) Status |
| TEXT ·Sys_thread_legacy_yield(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_thread_legacy_yield(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_enter(handle Handle, packet *int) Status |
| TEXT ·Sys_vcpu_enter(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_vcpu_enter(SB) |
| |
| // func Sys_vcpu_kick(handle Handle) Status |
| TEXT ·Sys_vcpu_kick(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_vcpu_kick(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_monotonic() Time |
| |
| //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_pager_query_dirty_ranges(pager Handle, pager_vmo Handle, offset uint64, length uint64, buffer unsafe.Pointer, buffer_size uint, actual *uint, avail *uint) Status |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_pager_query_vmo_stats(pager Handle, pager_vmo Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) 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_set_disposition(handle Handle, disposition uint32, disposition_peer 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_next_1(arg 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_syscall_test_widening_unsigned_narrow(a uint64, b uint32, c uint16, d uint8) uint64 |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_syscall_test_widening_signed_narrow(a int64, b int32, c int16, d int8) int64 |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_syscall_test_widening_unsigned_wide(a uint64, b uint32, c uint16, d uint8) uint64 |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_syscall_test_widening_signed_wide(a int64, b int32, c int16, d int8) int64 |
| |
| //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_page_size() uint32 |
| |
| //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_set_performance_info(resource Handle, topic uint32, info unsafe.Pointer, count uint) Status |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_system_get_performance_info(resource Handle, topic uint32, count uint, info unsafe.Pointer, output_count *uint) 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_thread_legacy_yield(options uint32) 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_enter(handle Handle, packet *int) Status |
| |
| //go:noescape |
| //go:nosplit |
| func Sys_vcpu_kick(handle Handle) 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_monotonic() Time |
| TEXT ·Sys_clock_get_monotonic(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_clock_get_monotonic(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_pager_query_dirty_ranges(pager Handle, pager_vmo Handle, offset uint64, length uint64, buffer unsafe.Pointer, buffer_size uint, actual *uint, avail *uint) Status |
| TEXT ·Sys_pager_query_dirty_ranges(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_pager_query_dirty_ranges(SB) |
| |
| // func Sys_pager_query_vmo_stats(pager Handle, pager_vmo Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status |
| TEXT ·Sys_pager_query_vmo_stats(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_pager_query_vmo_stats(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_set_disposition(handle Handle, disposition uint32, disposition_peer uint32) Status |
| TEXT ·Sys_socket_set_disposition(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_socket_set_disposition(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_next_1(arg int32) Status |
| TEXT ·Sys_syscall_next_1(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_next_1(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_syscall_test_widening_unsigned_narrow(a uint64, b uint32, c uint16, d uint8) uint64 |
| TEXT ·Sys_syscall_test_widening_unsigned_narrow(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_test_widening_unsigned_narrow(SB) |
| |
| // func Sys_syscall_test_widening_signed_narrow(a int64, b int32, c int16, d int8) int64 |
| TEXT ·Sys_syscall_test_widening_signed_narrow(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_test_widening_signed_narrow(SB) |
| |
| // func Sys_syscall_test_widening_unsigned_wide(a uint64, b uint32, c uint16, d uint8) uint64 |
| TEXT ·Sys_syscall_test_widening_unsigned_wide(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_test_widening_unsigned_wide(SB) |
| |
| // func Sys_syscall_test_widening_signed_wide(a int64, b int32, c int16, d int8) int64 |
| TEXT ·Sys_syscall_test_widening_signed_wide(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_syscall_test_widening_signed_wide(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_page_size() uint32 |
| TEXT ·Sys_system_get_page_size(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_system_get_page_size(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_set_performance_info(resource Handle, topic uint32, info unsafe.Pointer, count uint) Status |
| TEXT ·Sys_system_set_performance_info(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_system_set_performance_info(SB) |
| |
| // func Sys_system_get_performance_info(resource Handle, topic uint32, count uint, info unsafe.Pointer, output_count *uint) Status |
| TEXT ·Sys_system_get_performance_info(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_system_get_performance_info(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_thread_legacy_yield(options uint32) Status |
| TEXT ·Sys_thread_legacy_yield(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_thread_legacy_yield(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_enter(handle Handle, packet *int) Status |
| TEXT ·Sys_vcpu_enter(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_vcpu_enter(SB) |
| |
| // func Sys_vcpu_kick(handle Handle) Status |
| TEXT ·Sys_vcpu_kick(SB),NOSPLIT,$0 |
| JMP runtime·vdsoCall_zx_vcpu_kick(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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_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) |
| DMB $0xe |
| 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_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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_pager_query_dirty_ranges(pager uint32, pager_vmo uint32, offset uint64, length uint64, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32 |
| TEXT runtime·vdsoCall_zx_pager_query_dirty_ranges(SB),NOSPLIT,$0-60 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| 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 |
| MOVD buffer+24(FP), R4 |
| MOVD buffer_size+32(FP), R5 |
| MOVD actual+40(FP), R6 |
| MOVD avail+48(FP), R7 |
| BL vdso_zx_pager_query_dirty_ranges(SB) |
| MOVW R0, ret+56(FP) |
| MOVD g_m(g), R21 |
| MOVD $0, m_vdsoSP(R21) |
| RET |
| |
| // func vdsoCall_zx_pager_query_vmo_stats(pager uint32, pager_vmo uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32 |
| TEXT runtime·vdsoCall_zx_pager_query_vmo_stats(SB),NOSPLIT,$0-36 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVW pager+0(FP), R0 |
| MOVW pager_vmo+4(FP), R1 |
| MOVW options+8(FP), R2 |
| MOVD buffer+16(FP), R3 |
| MOVD buffer_size+24(FP), R4 |
| BL vdso_zx_pager_query_vmo_stats(SB) |
| MOVW R0, ret+32(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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_set_disposition(handle uint32, disposition uint32, disposition_peer uint32) int32 |
| TEXT runtime·vdsoCall_zx_socket_set_disposition(SB),NOSPLIT,$0-20 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVW handle+0(FP), R0 |
| MOVW disposition+4(FP), R1 |
| MOVW disposition_peer+8(FP), R2 |
| BL vdso_zx_socket_set_disposition(SB) |
| MOVW R0, ret+16(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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| CALL runtime·entersyscall(SB) |
| 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) |
| BL runtime·exitsyscall(SB) |
| 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) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| CALL runtime·entersyscall(SB) |
| 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) |
| BL runtime·exitsyscall(SB) |
| 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) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| CALL runtime·entersyscall(SB) |
| 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) |
| BL runtime·exitsyscall(SB) |
| 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) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| CALL runtime·entersyscall(SB) |
| 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) |
| BL runtime·exitsyscall(SB) |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_next_1(arg int32) int32 |
| TEXT runtime·vdsoCall_zx_syscall_next_1(SB),NOSPLIT,$0-12 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVW arg+0(FP), R0 |
| BL vdso_zx_syscall_next_1(SB) |
| MOVW R0, ret+8(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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_syscall_test_widening_unsigned_narrow(a uint64, b uint32, c uint16, d uint8) uint64 |
| TEXT runtime·vdsoCall_zx_syscall_test_widening_unsigned_narrow(SB),NOSPLIT,$0-32 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVD a+0(FP), R0 |
| MOVW b+8(FP), R1 |
| MOVD c+12(FP), R2 |
| MOVD d+16(FP), R3 |
| BL vdso_zx_syscall_test_widening_unsigned_narrow(SB) |
| MOVD R0, ret+24(FP) |
| MOVD g_m(g), R21 |
| MOVD $0, m_vdsoSP(R21) |
| RET |
| |
| // func vdsoCall_zx_syscall_test_widening_signed_narrow(a int64, b int32, c int16, d int8) int64 |
| TEXT runtime·vdsoCall_zx_syscall_test_widening_signed_narrow(SB),NOSPLIT,$0-32 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVD a+0(FP), R0 |
| MOVW b+8(FP), R1 |
| MOVD c+12(FP), R2 |
| MOVD d+16(FP), R3 |
| BL vdso_zx_syscall_test_widening_signed_narrow(SB) |
| MOVD R0, ret+24(FP) |
| MOVD g_m(g), R21 |
| MOVD $0, m_vdsoSP(R21) |
| RET |
| |
| // func vdsoCall_zx_syscall_test_widening_unsigned_wide(a uint64, b uint32, c uint16, d uint8) uint64 |
| TEXT runtime·vdsoCall_zx_syscall_test_widening_unsigned_wide(SB),NOSPLIT,$0-32 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVD a+0(FP), R0 |
| MOVW b+8(FP), R1 |
| MOVD c+12(FP), R2 |
| MOVD d+16(FP), R3 |
| BL vdso_zx_syscall_test_widening_unsigned_wide(SB) |
| MOVD R0, ret+24(FP) |
| MOVD g_m(g), R21 |
| MOVD $0, m_vdsoSP(R21) |
| RET |
| |
| // func vdsoCall_zx_syscall_test_widening_signed_wide(a int64, b int32, c int16, d int8) int64 |
| TEXT runtime·vdsoCall_zx_syscall_test_widening_signed_wide(SB),NOSPLIT,$0-32 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVD a+0(FP), R0 |
| MOVW b+8(FP), R1 |
| MOVD c+12(FP), R2 |
| MOVD d+16(FP), R3 |
| BL vdso_zx_syscall_test_widening_signed_wide(SB) |
| MOVD R0, ret+24(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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_page_size() uint32 |
| TEXT runtime·vdsoCall_zx_system_get_page_size(SB),NOSPLIT,$0-4 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| BL vdso_zx_system_get_page_size(SB) |
| MOVW 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_set_performance_info(resource uint32, topic uint32, info unsafe.Pointer, count uint) int32 |
| TEXT runtime·vdsoCall_zx_system_set_performance_info(SB),NOSPLIT,$0-28 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVW resource+0(FP), R0 |
| MOVW topic+4(FP), R1 |
| MOVD info+8(FP), R2 |
| MOVD count+16(FP), R3 |
| BL vdso_zx_system_set_performance_info(SB) |
| MOVW R0, ret+24(FP) |
| MOVD g_m(g), R21 |
| MOVD $0, m_vdsoSP(R21) |
| RET |
| |
| // func vdsoCall_zx_system_get_performance_info(resource uint32, topic uint32, count uint, info unsafe.Pointer, output_count unsafe.Pointer) int32 |
| TEXT runtime·vdsoCall_zx_system_get_performance_info(SB),NOSPLIT,$0-36 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVW resource+0(FP), R0 |
| MOVW topic+4(FP), R1 |
| MOVD count+8(FP), R2 |
| MOVD info+16(FP), R3 |
| MOVD output_count+24(FP), R4 |
| BL vdso_zx_system_get_performance_info(SB) |
| MOVW R0, ret+32(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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_thread_legacy_yield(options uint32) int32 |
| TEXT runtime·vdsoCall_zx_thread_legacy_yield(SB),NOSPLIT,$0-12 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVW options+0(FP), R0 |
| BL vdso_zx_thread_legacy_yield(SB) |
| MOVW R0, ret+8(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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_enter(handle uint32, packet unsafe.Pointer) int32 |
| TEXT runtime·vdsoCall_zx_vcpu_enter(SB),NOSPLIT,$0-20 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| 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_enter(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_kick(handle uint32) int32 |
| TEXT runtime·vdsoCall_zx_vcpu_kick(SB),NOSPLIT,$0-12 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| MOVD g_m(g), R21 |
| MOVD LR, m_vdsoPC(R21) |
| DMB $0xe |
| MOVD RSP, R20 |
| MOVD R20, m_vdsoSP(R21) |
| MOVW handle+0(FP), R0 |
| BL vdso_zx_vcpu_kick(SB) |
| MOVW R0, ret+8(FP) |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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) |
| DMB $0xe |
| 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_monotonic", 0xb00e6115, &vdso_zx_clock_get_monotonic}, |
| {"_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_pager_query_dirty_ranges", 0x1e13a323, &vdso_zx_pager_query_dirty_ranges}, |
| {"_zx_pager_query_vmo_stats", 0xd3f95338, &vdso_zx_pager_query_vmo_stats}, |
| {"_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_set_disposition", 0x63347abd, &vdso_zx_socket_set_disposition}, |
| {"_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_next_1", 0xa83386fe, &vdso_zx_syscall_next_1}, |
| {"_zx_syscall_test_wrapper", 0x4d7af9cf, &vdso_zx_syscall_test_wrapper}, |
| {"_zx_syscall_test_handle_create", 0xb996e56d, &vdso_zx_syscall_test_handle_create}, |
| {"_zx_syscall_test_widening_unsigned_narrow", 0x2b822f37, &vdso_zx_syscall_test_widening_unsigned_narrow}, |
| {"_zx_syscall_test_widening_signed_narrow", 0x215c6254, &vdso_zx_syscall_test_widening_signed_narrow}, |
| {"_zx_syscall_test_widening_unsigned_wide", 0xbaf25fc7, &vdso_zx_syscall_test_widening_unsigned_wide}, |
| {"_zx_syscall_test_widening_signed_wide", 0x6b7b27a4, &vdso_zx_syscall_test_widening_signed_wide}, |
| {"_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_page_size", 0x1495920f, &vdso_zx_system_get_page_size}, |
| {"_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_set_performance_info", 0x17cc1da1, &vdso_zx_system_set_performance_info}, |
| {"_zx_system_get_performance_info", 0x85f5f115, &vdso_zx_system_get_performance_info}, |
| {"_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_thread_legacy_yield", 0x1b146d17, &vdso_zx_thread_legacy_yield}, |
| {"_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_enter", 0xa5267710, &vdso_zx_vcpu_enter}, |
| {"_zx_vcpu_kick", 0xcc64db4, &vdso_zx_vcpu_kick}, |
| {"_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_monotonic zx_clock_get_monotonic |
| //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_pager_query_dirty_ranges zx_pager_query_dirty_ranges |
| //go:cgo_import_dynamic vdso_zx_pager_query_vmo_stats zx_pager_query_vmo_stats |
| //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_set_disposition zx_socket_set_disposition |
| //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_next_1 zx_syscall_next_1 |
| //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_syscall_test_widening_unsigned_narrow zx_syscall_test_widening_unsigned_narrow |
| //go:cgo_import_dynamic vdso_zx_syscall_test_widening_signed_narrow zx_syscall_test_widening_signed_narrow |
| //go:cgo_import_dynamic vdso_zx_syscall_test_widening_unsigned_wide zx_syscall_test_widening_unsigned_wide |
| //go:cgo_import_dynamic vdso_zx_syscall_test_widening_signed_wide zx_syscall_test_widening_signed_wide |
| //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_page_size zx_system_get_page_size |
| //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_set_performance_info zx_system_set_performance_info |
| //go:cgo_import_dynamic vdso_zx_system_get_performance_info zx_system_get_performance_info |
| //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_thread_legacy_yield zx_thread_legacy_yield |
| //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_enter zx_vcpu_enter |
| //go:cgo_import_dynamic vdso_zx_vcpu_kick zx_vcpu_kick |
| //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_monotonic vdso_zx_clock_get_monotonic |
| //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_pager_query_dirty_ranges vdso_zx_pager_query_dirty_ranges |
| //go:linkname vdso_zx_pager_query_vmo_stats vdso_zx_pager_query_vmo_stats |
| //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_set_disposition vdso_zx_socket_set_disposition |
| //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_next_1 vdso_zx_syscall_next_1 |
| //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_syscall_test_widening_unsigned_narrow vdso_zx_syscall_test_widening_unsigned_narrow |
| //go:linkname vdso_zx_syscall_test_widening_signed_narrow vdso_zx_syscall_test_widening_signed_narrow |
| //go:linkname vdso_zx_syscall_test_widening_unsigned_wide vdso_zx_syscall_test_widening_unsigned_wide |
| //go:linkname vdso_zx_syscall_test_widening_signed_wide vdso_zx_syscall_test_widening_signed_wide |
| //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_page_size vdso_zx_system_get_page_size |
| //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_set_performance_info vdso_zx_system_set_performance_info |
| //go:linkname vdso_zx_system_get_performance_info vdso_zx_system_get_performance_info |
| //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_thread_legacy_yield vdso_zx_thread_legacy_yield |
| //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_enter vdso_zx_vcpu_enter |
| //go:linkname vdso_zx_vcpu_kick vdso_zx_vcpu_kick |
| //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_monotonic() int64 |
| |
| //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_pager_query_dirty_ranges(pager uint32, pager_vmo uint32, offset uint64, length uint64, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32 |
| |
| //go:noescape |
| //go:nosplit |
| func vdsoCall_zx_pager_query_vmo_stats(pager uint32, pager_vmo uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) 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_set_disposition(handle uint32, disposition uint32, disposition_peer 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_next_1(arg 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_syscall_test_widening_unsigned_narrow(a uint64, b uint32, c uint16, d uint8) uint64 |
| |
| //go:noescape |
| //go:nosplit |
| func vdsoCall_zx_syscall_test_widening_signed_narrow(a int64, b int32, c int16, d int8) int64 |
| |
| //go:noescape |
| //go:nosplit |
| func vdsoCall_zx_syscall_test_widening_unsigned_wide(a uint64, b uint32, c uint16, d uint8) uint64 |
| |
| //go:noescape |
| //go:nosplit |
| func vdsoCall_zx_syscall_test_widening_signed_wide(a int64, b int32, c int16, d int8) int64 |
| |
| //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_page_size() uint32 |
| |
| //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_set_performance_info(resource uint32, topic uint32, info unsafe.Pointer, count uint) int32 |
| |
| //go:noescape |
| //go:nosplit |
| func vdsoCall_zx_system_get_performance_info(resource uint32, topic uint32, count uint, info unsafe.Pointer, output_count 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_thread_legacy_yield(options uint32) 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_enter(handle uint32, packet unsafe.Pointer) int32 |
| |
| //go:noescape |
| //go:nosplit |
| func vdsoCall_zx_vcpu_kick(handle uint32) 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_monotonic 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_pager_query_dirty_ranges uintptr |
| vdso_zx_pager_query_vmo_stats 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_set_disposition 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_next_1 uintptr |
| vdso_zx_syscall_test_wrapper uintptr |
| vdso_zx_syscall_test_handle_create uintptr |
| vdso_zx_syscall_test_widening_unsigned_narrow uintptr |
| vdso_zx_syscall_test_widening_signed_narrow uintptr |
| vdso_zx_syscall_test_widening_unsigned_wide uintptr |
| vdso_zx_syscall_test_widening_signed_wide 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_page_size uintptr |
| vdso_zx_system_get_physmem uintptr |
| vdso_zx_system_get_features uintptr |
| vdso_zx_system_get_event uintptr |
| vdso_zx_system_set_performance_info uintptr |
| vdso_zx_system_get_performance_info 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_thread_legacy_yield uintptr |
| vdso_zx_timer_create uintptr |
| vdso_zx_timer_set uintptr |
| vdso_zx_timer_cancel uintptr |
| vdso_zx_vcpu_create uintptr |
| vdso_zx_vcpu_enter uintptr |
| vdso_zx_vcpu_kick 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_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_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_pager_query_dirty_ranges(pager uint32, pager_vmo uint32, offset uint64, length uint64, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32 |
| TEXT runtime·vdsoCall_zx_pager_query_dirty_ranges(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 pager+0(FP), DI |
| MOVL pager_vmo+4(FP), SI |
| MOVQ offset+8(FP), DX |
| MOVQ length+16(FP), CX |
| MOVQ buffer+24(FP), R8 |
| MOVQ buffer_size+32(FP), R9 |
| MOVQ actual+40(FP), R12 |
| MOVQ avail+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_pager_query_dirty_ranges(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_pager_query_vmo_stats(pager uint32, pager_vmo uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32 |
| TEXT runtime·vdsoCall_zx_pager_query_vmo_stats(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 pager+0(FP), DI |
| MOVL pager_vmo+4(FP), SI |
| MOVL options+8(FP), DX |
| MOVQ buffer+16(FP), CX |
| MOVQ buffer_size+24(FP), R8 |
| MOVQ vdso_zx_pager_query_vmo_stats(SB), AX |
| CALL AX |
| MOVL AX, ret+32(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_set_disposition(handle uint32, disposition uint32, disposition_peer uint32) int32 |
| TEXT runtime·vdsoCall_zx_socket_set_disposition(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 disposition+4(FP), SI |
| MOVL disposition_peer+8(FP), DX |
| MOVQ vdso_zx_socket_set_disposition(SB), AX |
| CALL AX |
| MOVL AX, ret+16(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) |
| CALL runtime·entersyscall(SB) |
| 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) |
| CALL runtime·exitsyscall(SB) |
| 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) |
| CALL runtime·entersyscall(SB) |
| 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) |
| CALL runtime·exitsyscall(SB) |
| 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) |
| CALL runtime·entersyscall(SB) |
| 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) |
| CALL runtime·exitsyscall(SB) |
| 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) |
| CALL runtime·entersyscall(SB) |
| 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) |
| CALL runtime·exitsyscall(SB) |
| 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_next_1(arg int32) int32 |
| TEXT runtime·vdsoCall_zx_syscall_next_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 arg+0(FP), DI |
| MOVQ vdso_zx_syscall_next_1(SB), AX |
| CALL AX |
| MOVL AX, ret+8(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_syscall_test_widening_unsigned_narrow(a uint64, b uint32, c uint16, d uint8) uint64 |
| TEXT runtime·vdsoCall_zx_syscall_test_widening_unsigned_narrow(SB),NOSPLIT,$8-23 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| get_tls(CX) |
| MOVQ g(CX), AX |
| MOVQ 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 a+0(FP), DI |
| MOVL b+8(FP), SI |
| MOVQ c+12(FP), DX |
| MOVQ d+14(FP), CX |
| MOVQ vdso_zx_syscall_test_widening_unsigned_narrow(SB), AX |
| CALL AX |
| MOVQ AX, ret+15(FP) |
| POPQ R14 |
| MOVQ $0, m_vdsoSP(R14) |
| RET |
| |
| // func vdsoCall_zx_syscall_test_widening_signed_narrow(a int64, b int32, c int16, d int8) int64 |
| TEXT runtime·vdsoCall_zx_syscall_test_widening_signed_narrow(SB),NOSPLIT,$8-23 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| get_tls(CX) |
| MOVQ g(CX), AX |
| MOVQ 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 a+0(FP), DI |
| MOVL b+8(FP), SI |
| MOVQ c+12(FP), DX |
| MOVQ d+14(FP), CX |
| MOVQ vdso_zx_syscall_test_widening_signed_narrow(SB), AX |
| CALL AX |
| MOVQ AX, ret+15(FP) |
| POPQ R14 |
| MOVQ $0, m_vdsoSP(R14) |
| RET |
| |
| // func vdsoCall_zx_syscall_test_widening_unsigned_wide(a uint64, b uint32, c uint16, d uint8) uint64 |
| TEXT runtime·vdsoCall_zx_syscall_test_widening_unsigned_wide(SB),NOSPLIT,$8-23 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| get_tls(CX) |
| MOVQ g(CX), AX |
| MOVQ 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 a+0(FP), DI |
| MOVL b+8(FP), SI |
| MOVQ c+12(FP), DX |
| MOVQ d+14(FP), CX |
| MOVQ vdso_zx_syscall_test_widening_unsigned_wide(SB), AX |
| CALL AX |
| MOVQ AX, ret+15(FP) |
| POPQ R14 |
| MOVQ $0, m_vdsoSP(R14) |
| RET |
| |
| // func vdsoCall_zx_syscall_test_widening_signed_wide(a int64, b int32, c int16, d int8) int64 |
| TEXT runtime·vdsoCall_zx_syscall_test_widening_signed_wide(SB),NOSPLIT,$8-23 |
| GO_ARGS |
| NO_LOCAL_POINTERS |
| get_tls(CX) |
| MOVQ g(CX), AX |
| MOVQ 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 a+0(FP), DI |
| MOVL b+8(FP), SI |
| MOVQ c+12(FP), DX |
| MOVQ d+14(FP), CX |
| MOVQ vdso_zx_syscall_test_widening_signed_wide(SB), AX |
| CALL AX |
| MOVQ AX, ret+15(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_page_size() uint32 |
| TEXT runtime·vdsoCall_zx_system_get_page_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_page_size(SB), AX |
| CALL AX |
| MOVL 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_set_performance_info(resource uint32, topic uint32, info unsafe.Pointer, count uint) int32 |
| TEXT runtime·vdsoCall_zx_system_set_performance_info(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 topic+4(FP), SI |
| MOVQ info+8(FP), DX |
| MOVQ count+16(FP), CX |
| MOVQ vdso_zx_system_set_performance_info(SB), AX |
| CALL AX |
| MOVL AX, ret+24(FP) |
| POPQ R14 |
| MOVQ $0, m_vdsoSP(R14) |
| RET |
| |
| // func vdsoCall_zx_system_get_performance_info(resource uint32, topic uint32, count uint, info unsafe.Pointer, output_count unsafe.Pointer) int32 |
| TEXT runtime·vdsoCall_zx_system_get_performance_info(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 topic+4(FP), SI |
| MOVQ count+8(FP), DX |
| MOVQ info+16(FP), CX |
| MOVQ output_count+24(FP), R8 |
| MOVQ vdso_zx_system_get_performance_info(SB), AX |
| CALL AX |
| MOVL AX, ret+32(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_thread_legacy_yield(options uint32) int32 |
| TEXT runtime·vdsoCall_zx_thread_legacy_yield(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 options+0(FP), DI |
| MOVQ vdso_zx_thread_legacy_yield(SB), AX |
| CALL AX |
| MOVL AX, ret+8(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_enter(handle uint32, packet unsafe.Pointer) int32 |
| TEXT runtime·vdsoCall_zx_vcpu_enter(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_enter(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_kick(handle uint32) int32 |
| TEXT runtime·vdsoCall_zx_vcpu_kick(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_vcpu_kick(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| 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": [ |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_CHANNEL", "." |
| ], |
| "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_monotonic", |
| "attributes": [ |
| "*", |
| "vdsocall" |
| ], |
| "top_description": [ |
| "Acquire", "the", "current", "monotonic", "time", "." |
| ], |
| "requirements": [ |
| ], |
| "arguments": [ |
| ], |
| "return_type": "zx_time_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": [ |
| "Create", "an", "object", "allowing", "access", "to", "the", "kernel", "debuglog", "." |
| ], |
| "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": [ |
| "Write", "a", "message", "to", "the", "kernel", "debuglog", "." |
| ], |
| "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": [ |
| "Read", "a", "single", "log", "record", "from", "the", "kernel", "debuglog", "." |
| ], |
| "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": [ |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_EVENT", "." |
| ], |
| "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": [ |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_EVENTPAIR", "." |
| ], |
| "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": [ |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_FIFO", "." |
| ], |
| "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_GUEST_STATS", ",", "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_SYSTEM", "with", "base", "ZX_RSRC_SYSTEM_INFO_BASE", ".", |
| "If", "topic", "is", "ZX_INFO_CPU_STATS", ",", "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_SYSTEM", "with", "base", "ZX_RSRC_SYSTEM_INFO_BASE", ".", |
| "If", "topic", "is", "ZX_INFO_KMEM_STATS", ",", "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_SYSTEM", "with", "base", "ZX_RSRC_SYSTEM_INFO_BASE", ".", |
| "If", "topic", "is", "ZX_INFO_KMEM_STATS_EXTENDED", ",", "handle", "must", "have", "resource", "kind", "ZX_RSRC_KIND_SYSTEM", "with", "base", "ZX_RSRC_SYSTEM_INFO_BASE", ".", |
| "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": [ |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_PAGER", "." |
| ], |
| "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": "pager_query_dirty_ranges", |
| "attributes": [ |
| "*", |
| "next" |
| ], |
| "top_description": [ |
| "Query", "contiguous", "ranges", "of", "dirty", "pages", "in", "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": "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": "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": "pager_query_vmo_stats", |
| "attributes": [ |
| "*", |
| "next" |
| ], |
| "top_description": [ |
| "Query", "pager", "related", "statistics", "on", "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": "pager_vmo", |
| "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": "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "This", "function", "is", "obsolete", "and", "should", "not", "be", "used", "." |
| ], |
| "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": [ |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_PORT", "." |
| ], |
| "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": [ |
| "None", "." |
| ], |
| "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", ".", |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_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", ".", |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_PROFILE", "." |
| ], |
| "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": [ |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_SOCKET", "." |
| ], |
| "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_set_disposition", |
| "attributes": [ |
| "*" |
| ], |
| "top_description": [ |
| "Set", "disposition", "of", "writes", "." |
| ], |
| "requirements": [ |
| "handle", "must", "be", "of", "type", "ZX_OBJ_TYPE_SOCKET", "and", "have", "ZX_RIGHT_MANAGE_SOCKET", "." |
| ], |
| "arguments": [ |
| { |
| "name": "handle", |
| "type": "zx_handle_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "disposition", |
| "type": "uint32_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "disposition_peer", |
| "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": [ |
| "*", |
| "blocking" |
| ], |
| "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": [ |
| "*", |
| "blocking" |
| ], |
| "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": [ |
| "*", |
| "blocking" |
| ], |
| "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": [ |
| "*", |
| "blocking" |
| ], |
| "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_next_1", |
| "attributes": [ |
| "*", |
| "next" |
| ], |
| "top_description": [ |
| ], |
| "requirements": [ |
| ], |
| "arguments": [ |
| { |
| "name": "arg", |
| "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": "syscall_test_widening_unsigned_narrow", |
| "attributes": [ |
| "*", |
| "testonly" |
| ], |
| "top_description": [ |
| ], |
| "requirements": [ |
| ], |
| "arguments": [ |
| { |
| "name": "a", |
| "type": "uint64_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "b", |
| "type": "uint32_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "c", |
| "type": "uint16_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "d", |
| "type": "uint8_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| } |
| ], |
| "return_type": "uint64_t" |
| }, |
| { |
| "name": "syscall_test_widening_signed_narrow", |
| "attributes": [ |
| "*", |
| "testonly" |
| ], |
| "top_description": [ |
| ], |
| "requirements": [ |
| ], |
| "arguments": [ |
| { |
| "name": "a", |
| "type": "int64_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "b", |
| "type": "int32_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "c", |
| "type": "int16_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "d", |
| "type": "int8_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| } |
| ], |
| "return_type": "int64_t" |
| }, |
| { |
| "name": "syscall_test_widening_unsigned_wide", |
| "attributes": [ |
| "*", |
| "testonly" |
| ], |
| "top_description": [ |
| ], |
| "requirements": [ |
| ], |
| "arguments": [ |
| { |
| "name": "a", |
| "type": "uint64_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "b", |
| "type": "uint32_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "c", |
| "type": "uint16_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "d", |
| "type": "uint8_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| } |
| ], |
| "return_type": "uint64_t" |
| }, |
| { |
| "name": "syscall_test_widening_signed_wide", |
| "attributes": [ |
| "*", |
| "testonly" |
| ], |
| "top_description": [ |
| ], |
| "requirements": [ |
| ], |
| "arguments": [ |
| { |
| "name": "a", |
| "type": "int64_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "b", |
| "type": "int32_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "c", |
| "type": "int16_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "d", |
| "type": "int8_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| } |
| ], |
| "return_type": "int64_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_page_size", |
| "attributes": [ |
| "*", |
| "const", |
| "vdsocall" |
| ], |
| "top_description": [ |
| "Get", "the", "page", "size", "for", "the", "system", "." |
| ], |
| "requirements": [ |
| ], |
| "arguments": [ |
| ], |
| "return_type": "uint32_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_set_performance_info", |
| "attributes": [ |
| "*" |
| ], |
| "top_description": [ |
| "Set", "CPU", "performance", "parameters", "." |
| ], |
| "requirements": [ |
| "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_SYSTEM", "." |
| ], |
| "arguments": [ |
| { |
| "name": "resource", |
| "type": "zx_handle_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "topic", |
| "type": "uint32_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "info", |
| "type": "any", |
| "is_array": true, |
| "attributes": [ |
| "IN" |
| ] |
| }, |
| { |
| "name": "count", |
| "type": "size_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| } |
| ], |
| "return_type": "zx_status_t" |
| }, |
| { |
| "name": "system_get_performance_info", |
| "attributes": [ |
| "*" |
| ], |
| "top_description": [ |
| "Get", "CPU", "performance", "parameters", "." |
| ], |
| "requirements": [ |
| "resource", "must", "have", "resource", "kind", "ZX_RSRC_KIND_SYSTEM", "." |
| ], |
| "arguments": [ |
| { |
| "name": "resource", |
| "type": "zx_handle_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "topic", |
| "type": "uint32_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "count", |
| "type": "size_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "info", |
| "type": "any", |
| "is_array": true, |
| "attributes": [ |
| ] |
| }, |
| { |
| "name": "output_count", |
| "type": "size_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_SYSTEM", "with", "base", "ZX_RSRC_SYSTEM_POWER_BASE", "." |
| ], |
| "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": "thread_legacy_yield", |
| "attributes": [ |
| "*" |
| ], |
| "top_description": [ |
| "Yield", "the", "CPU", "of", "the", "current", "thread", "back", "to", "the", "scheduler", "." |
| ], |
| "requirements": [ |
| ], |
| "arguments": [ |
| { |
| "name": "options", |
| "type": "uint32_t", |
| "is_array": false, |
| "attributes": [ |
| ] |
| } |
| ], |
| "return_type": "zx_status_t" |
| }, |
| { |
| "name": "timer_create", |
| "attributes": [ |
| "*" |
| ], |
| "top_description": [ |
| "Create", "a", "timer", "." |
| ], |
| "requirements": [ |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_TIMER", "." |
| ], |
| "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_enter", |
| "attributes": [ |
| "*", |
| "blocking" |
| ], |
| "top_description": [ |
| "Enter", "a", "VCPU", ",", "causing", "it", "to", "resume", "execution", "." |
| ], |
| "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_kick", |
| "attributes": [ |
| "*" |
| ], |
| "top_description": [ |
| "Kick", "a", "VCPU", ",", "causing", "it", "to", "stop", "execution", "." |
| ], |
| "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": [ |
| ] |
| } |
| ], |
| "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": [ |
| "*" |
| ], |
| "top_description": [ |
| "Perform", "an", "operation", "on", "VMOs", "mapped", "into", "this", "VMAR", "." |
| ], |
| "requirements": [ |
| "If", "op", "is", "ZX_VMAR_OP_DECOMMIT", ",", "handle", "must", "have", "ZX_RIGHT_WRITE", ".", |
| "If", "op", "is", "ZX_VMAR_OP_COMMIT", ",", "handle", "must", "have", "ZX_RIGHT_WRITE", "." |
| ], |
| "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": [ |
| "Caller", "job", "policy", "must", "allow", "ZX_POL_NEW_VMO", "." |
| ], |
| "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)) |
| |
| VDSO_SYSCALL(clock_get_monotonic, zx_time_t, /* no attributes */, 0, |
| (), (void)) |
| |
| 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(pager_query_dirty_ranges, zx_status_t, /* no attributes */, 8, |
| (pager, pager_vmo, offset, length, buffer, buffer_size, actual, avail), ( |
| _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, |
| user_out_ptr<void> buffer, |
| size_t buffer_size, |
| user_out_ptr<size_t> actual, |
| user_out_ptr<size_t> avail)) |
| |
| KERNEL_SYSCALL(pager_query_vmo_stats, zx_status_t, /* no attributes */, 5, |
| (pager, pager_vmo, options, buffer, buffer_size), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager, |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo, |
| uint32_t options, |
| user_out_ptr<void> buffer, |
| size_t buffer_size)) |
| |
| 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_set_disposition, zx_status_t, /* no attributes */, 3, |
| (handle, disposition, disposition_peer), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle, |
| uint32_t disposition, |
| uint32_t disposition_peer)) |
| |
| 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)) |
| |
| BLOCKING_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)) |
| |
| BLOCKING_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)) |
| |
| BLOCKING_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)) |
| |
| BLOCKING_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_next_1, zx_status_t, /* no attributes */, 1, |
| (arg), ( |
| int32_t arg)) |
| |
| 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)) |
| |
| KERNEL_SYSCALL(syscall_test_widening_unsigned_narrow, uint64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| uint64_t a, |
| uint32_t b, |
| uint16_t c, |
| uint8_t d)) |
| |
| KERNEL_SYSCALL(syscall_test_widening_signed_narrow, int64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| int64_t a, |
| int32_t b, |
| int16_t c, |
| int8_t d)) |
| |
| KERNEL_SYSCALL(syscall_test_widening_unsigned_wide, uint64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| uint64_t a, |
| uint32_t b, |
| uint16_t c, |
| uint8_t d)) |
| |
| KERNEL_SYSCALL(syscall_test_widening_signed_wide, int64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| int64_t a, |
| int32_t b, |
| int16_t c, |
| int8_t d)) |
| |
| 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_page_size, uint32_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_set_performance_info, zx_status_t, /* no attributes */, 4, |
| (resource, topic, info, count), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource, |
| uint32_t topic, |
| user_in_ptr<const void> info, |
| size_t count)) |
| |
| KERNEL_SYSCALL(system_get_performance_info, zx_status_t, /* no attributes */, 5, |
| (resource, topic, count, info, output_count), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource, |
| uint32_t topic, |
| size_t count, |
| user_out_ptr<void> info, |
| user_out_ptr<size_t> output_count)) |
| |
| 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(thread_legacy_yield, zx_status_t, /* no attributes */, 1, |
| (options), ( |
| uint32_t options)) |
| |
| 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_enter, 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_kick, zx_status_t, /* no attributes */, 1, |
| (handle), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle)) |
| |
| 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(SafeSyscallArgument<zx_handle_t>::RawType iommu, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint64_t>::RawType bti_id, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_bti_create(SafeSyscallArgument<zx_handle_t>::RawType iommu, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint64_t>::RawType bti_id, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(iommu), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<uint64_t>::Sanitize(bti_id), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_bti_pin(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<zx_paddr_t*>::RawType addrs, SafeSyscallArgument<size_t>::RawType num_addrs, SafeSyscallArgument<zx_handle_t*>::RawType pmt, uint64_t pc); |
| syscall_result wrapper_bti_pin(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<zx_paddr_t*>::RawType addrs, SafeSyscallArgument<size_t>::RawType num_addrs, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_handle_t>::Sanitize(vmo), SafeSyscallArgument<uint64_t>::Sanitize(offset), SafeSyscallArgument<uint64_t>::Sanitize(size), make_user_out_ptr(SafeSyscallArgument<zx_paddr_t*>::Sanitize(addrs)), SafeSyscallArgument<size_t>::Sanitize(num_addrs), &out_handle_pmt); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_pmt.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(pmt))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_pmt.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_bti_release_quarantine(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_bti_release_quarantine(SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_channel_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out0, SafeSyscallArgument<zx_handle_t*>::RawType out1, uint64_t pc); |
| syscall_result wrapper_channel_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out0, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out0, &out_handle_out1); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out0.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out0))); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out1.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out1))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out0.finish_copyout(current_process); |
| out_handle_out1.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_channel_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType bytes, SafeSyscallArgument<zx_handle_t*>::RawType handles, SafeSyscallArgument<uint32_t>::RawType num_bytes, SafeSyscallArgument<uint32_t>::RawType num_handles, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType actual_handles, uint64_t pc); |
| syscall_result wrapper_channel_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType bytes, SafeSyscallArgument<zx_handle_t*>::RawType handles, SafeSyscallArgument<uint32_t>::RawType num_bytes, SafeSyscallArgument<uint32_t>::RawType num_handles, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(bytes)), make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(handles)), SafeSyscallArgument<uint32_t>::Sanitize(num_bytes), SafeSyscallArgument<uint32_t>::Sanitize(num_handles), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_bytes)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_handles))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_channel_read_etc(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType bytes, SafeSyscallArgument<zx_handle_info_t*>::RawType handles, SafeSyscallArgument<uint32_t>::RawType num_bytes, SafeSyscallArgument<uint32_t>::RawType num_handles, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType actual_handles, uint64_t pc); |
| syscall_result wrapper_channel_read_etc(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType bytes, SafeSyscallArgument<zx_handle_info_t*>::RawType handles, SafeSyscallArgument<uint32_t>::RawType num_bytes, SafeSyscallArgument<uint32_t>::RawType num_handles, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(bytes)), make_user_out_ptr(SafeSyscallArgument<zx_handle_info_t*>::Sanitize(handles)), SafeSyscallArgument<uint32_t>::Sanitize(num_bytes), SafeSyscallArgument<uint32_t>::Sanitize(num_handles), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_bytes)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_handles))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_channel_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const void*>::RawType bytes, SafeSyscallArgument<uint32_t>::RawType num_bytes, SafeSyscallArgument<const zx_handle_t*>::RawType handles, SafeSyscallArgument<uint32_t>::RawType num_handles, uint64_t pc); |
| syscall_result wrapper_channel_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const void*>::RawType bytes, SafeSyscallArgument<uint32_t>::RawType num_bytes, SafeSyscallArgument<const zx_handle_t*>::RawType handles, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(bytes)), SafeSyscallArgument<uint32_t>::Sanitize(num_bytes), make_user_in_ptr(SafeSyscallArgument<const zx_handle_t*>::Sanitize(handles)), SafeSyscallArgument<uint32_t>::Sanitize(num_handles)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_channel_write_etc(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const void*>::RawType bytes, SafeSyscallArgument<uint32_t>::RawType num_bytes, SafeSyscallArgument<zx_handle_disposition_t*>::RawType handles, SafeSyscallArgument<uint32_t>::RawType num_handles, uint64_t pc); |
| syscall_result wrapper_channel_write_etc(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const void*>::RawType bytes, SafeSyscallArgument<uint32_t>::RawType num_bytes, SafeSyscallArgument<zx_handle_disposition_t*>::RawType handles, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(bytes)), SafeSyscallArgument<uint32_t>::Sanitize(num_bytes), make_user_inout_ptr(SafeSyscallArgument<zx_handle_disposition_t*>::Sanitize(handles)), SafeSyscallArgument<uint32_t>::Sanitize(num_handles)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_channel_call_noretry(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<const zx_channel_call_args_t*>::RawType args, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType actual_handles, uint64_t pc); |
| syscall_result wrapper_channel_call_noretry(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<const zx_channel_call_args_t*>::RawType args, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_time_t>::Sanitize(deadline), make_user_in_ptr(SafeSyscallArgument<const zx_channel_call_args_t*>::Sanitize(args)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_bytes)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_handles))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_channel_call_finish(SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<const zx_channel_call_args_t*>::RawType args, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType actual_handles, uint64_t pc); |
| syscall_result wrapper_channel_call_finish(SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<const zx_channel_call_args_t*>::RawType args, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType 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(SafeSyscallArgument<zx_time_t>::Sanitize(deadline), make_user_in_ptr(SafeSyscallArgument<const zx_channel_call_args_t*>::Sanitize(args)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_bytes)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_handles))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_channel_call_etc_noretry(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_channel_call_etc_args_t*>::RawType args, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType actual_handles, uint64_t pc); |
| syscall_result wrapper_channel_call_etc_noretry(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_channel_call_etc_args_t*>::RawType args, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_time_t>::Sanitize(deadline), make_user_inout_ptr(SafeSyscallArgument<zx_channel_call_etc_args_t*>::Sanitize(args)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_bytes)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_handles))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_channel_call_etc_finish(SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_channel_call_etc_args_t*>::RawType args, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType actual_handles, uint64_t pc); |
| syscall_result wrapper_channel_call_etc_finish(SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_channel_call_etc_args_t*>::RawType args, SafeSyscallArgument<uint32_t*>::RawType actual_bytes, SafeSyscallArgument<uint32_t*>::RawType 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(SafeSyscallArgument<zx_time_t>::Sanitize(deadline), make_user_inout_ptr(SafeSyscallArgument<zx_channel_call_etc_args_t*>::Sanitize(args)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_bytes)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(actual_handles))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_clock_get_monotonic_via_kernel(uint64_t pc); |
| 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(SafeSyscallArgument<uint64_t>::RawType options, SafeSyscallArgument<const void*>::RawType args, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_clock_create(SafeSyscallArgument<uint64_t>::RawType options, SafeSyscallArgument<const void*>::RawType args, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint64_t>::Sanitize(options), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(args)), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_clock_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_time_t*>::RawType now, uint64_t pc); |
| syscall_result wrapper_clock_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_time_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_out_ptr(SafeSyscallArgument<zx_time_t*>::Sanitize(now))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_clock_get_details(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t>::RawType options, SafeSyscallArgument<void*>::RawType details, uint64_t pc); |
| syscall_result wrapper_clock_get_details(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t>::RawType options, SafeSyscallArgument<void*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint64_t>::Sanitize(options), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(details))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_clock_update(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t>::RawType options, SafeSyscallArgument<const void*>::RawType args, uint64_t pc); |
| syscall_result wrapper_clock_update(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t>::RawType options, SafeSyscallArgument<const void*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint64_t>::Sanitize(options), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(args))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_cprng_draw_once(SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_cprng_draw_once(SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_cprng_add_entropy(SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_cprng_add_entropy(SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<const void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_debug_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<char*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_debug_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<char*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_out_ptr(SafeSyscallArgument<char*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_debug_write(SafeSyscallArgument<const char*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_debug_write(SafeSyscallArgument<const char*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<const char*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_debug_send_command(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<const char*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_debug_send_command(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<const char*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), make_user_in_ptr(SafeSyscallArgument<const char*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_debuglog_create(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_debuglog_create(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_debuglog_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_debuglog_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_debuglog_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_debuglog_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_event_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_event_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_eventpair_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out0, SafeSyscallArgument<zx_handle_t*>::RawType out1, uint64_t pc); |
| syscall_result wrapper_eventpair_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out0, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out0, &out_handle_out1); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out0.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out0))); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out1.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out1))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out0.finish_copyout(current_process); |
| out_handle_out1.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_exception_get_thread(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_exception_get_thread(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_exception_get_process(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_exception_get_process(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_fifo_create(SafeSyscallArgument<size_t>::RawType elem_count, SafeSyscallArgument<size_t>::RawType elem_size, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out0, SafeSyscallArgument<zx_handle_t*>::RawType out1, uint64_t pc); |
| syscall_result wrapper_fifo_create(SafeSyscallArgument<size_t>::RawType elem_count, SafeSyscallArgument<size_t>::RawType elem_size, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out0, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<size_t>::Sanitize(elem_count), SafeSyscallArgument<size_t>::Sanitize(elem_size), SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out0, &out_handle_out1); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out0.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out0))); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out1.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out1))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out0.finish_copyout(current_process); |
| out_handle_out1.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_fifo_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<size_t>::RawType elem_size, SafeSyscallArgument<void*>::RawType data, SafeSyscallArgument<size_t>::RawType data_size, SafeSyscallArgument<size_t*>::RawType actual_count, uint64_t pc); |
| syscall_result wrapper_fifo_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<size_t>::RawType elem_size, SafeSyscallArgument<void*>::RawType data, SafeSyscallArgument<size_t>::RawType data_size, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<size_t>::Sanitize(elem_size), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(data)), SafeSyscallArgument<size_t>::Sanitize(data_size), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual_count))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_fifo_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<size_t>::RawType elem_size, SafeSyscallArgument<const void*>::RawType data, SafeSyscallArgument<size_t>::RawType count, SafeSyscallArgument<size_t*>::RawType actual_count, uint64_t pc); |
| syscall_result wrapper_fifo_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<size_t>::RawType elem_size, SafeSyscallArgument<const void*>::RawType data, SafeSyscallArgument<size_t>::RawType count, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<size_t>::Sanitize(elem_size), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(data)), SafeSyscallArgument<size_t>::Sanitize(count), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual_count))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_framebuffer_get_info(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t*>::RawType format, SafeSyscallArgument<uint32_t*>::RawType width, SafeSyscallArgument<uint32_t*>::RawType height, SafeSyscallArgument<uint32_t*>::RawType stride, uint64_t pc); |
| syscall_result wrapper_framebuffer_get_info(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t*>::RawType format, SafeSyscallArgument<uint32_t*>::RawType width, SafeSyscallArgument<uint32_t*>::RawType height, SafeSyscallArgument<uint32_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(format)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(width)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(height)), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(stride))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_framebuffer_set_range(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<uint32_t>::RawType len, SafeSyscallArgument<uint32_t>::RawType format, SafeSyscallArgument<uint32_t>::RawType width, SafeSyscallArgument<uint32_t>::RawType height, SafeSyscallArgument<uint32_t>::RawType stride, uint64_t pc); |
| syscall_result wrapper_framebuffer_set_range(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<uint32_t>::RawType len, SafeSyscallArgument<uint32_t>::RawType format, SafeSyscallArgument<uint32_t>::RawType width, SafeSyscallArgument<uint32_t>::RawType height, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<zx_handle_t>::Sanitize(vmo), SafeSyscallArgument<uint32_t>::Sanitize(len), SafeSyscallArgument<uint32_t>::Sanitize(format), SafeSyscallArgument<uint32_t>::Sanitize(width), SafeSyscallArgument<uint32_t>::Sanitize(height), SafeSyscallArgument<uint32_t>::Sanitize(stride)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_futex_wait(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<zx_futex_t>::RawType current_value, SafeSyscallArgument<zx_handle_t>::RawType new_futex_owner, SafeSyscallArgument<zx_time_t>::RawType deadline, uint64_t pc); |
| syscall_result wrapper_futex_wait(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<zx_futex_t>::RawType current_value, SafeSyscallArgument<zx_handle_t>::RawType new_futex_owner, SafeSyscallArgument<zx_time_t>::RawType 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(SafeSyscallArgument<const zx_futex_t*>::Sanitize(value_ptr)), SafeSyscallArgument<zx_futex_t>::Sanitize(current_value), SafeSyscallArgument<zx_handle_t>::Sanitize(new_futex_owner), SafeSyscallArgument<zx_time_t>::Sanitize(deadline)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_futex_wake(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<uint32_t>::RawType wake_count, uint64_t pc); |
| syscall_result wrapper_futex_wake(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<const zx_futex_t*>::Sanitize(value_ptr)), SafeSyscallArgument<uint32_t>::Sanitize(wake_count)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_futex_requeue(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<uint32_t>::RawType wake_count, SafeSyscallArgument<zx_futex_t>::RawType current_value, SafeSyscallArgument<const zx_futex_t*>::RawType requeue_ptr, SafeSyscallArgument<uint32_t>::RawType requeue_count, SafeSyscallArgument<zx_handle_t>::RawType new_requeue_owner, uint64_t pc); |
| syscall_result wrapper_futex_requeue(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<uint32_t>::RawType wake_count, SafeSyscallArgument<zx_futex_t>::RawType current_value, SafeSyscallArgument<const zx_futex_t*>::RawType requeue_ptr, SafeSyscallArgument<uint32_t>::RawType requeue_count, SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<const zx_futex_t*>::Sanitize(value_ptr)), SafeSyscallArgument<uint32_t>::Sanitize(wake_count), SafeSyscallArgument<zx_futex_t>::Sanitize(current_value), make_user_in_ptr(SafeSyscallArgument<const zx_futex_t*>::Sanitize(requeue_ptr)), SafeSyscallArgument<uint32_t>::Sanitize(requeue_count), SafeSyscallArgument<zx_handle_t>::Sanitize(new_requeue_owner)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_futex_wake_single_owner(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, uint64_t pc); |
| syscall_result wrapper_futex_wake_single_owner(SafeSyscallArgument<const zx_futex_t*>::RawType 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(SafeSyscallArgument<const zx_futex_t*>::Sanitize(value_ptr))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_futex_requeue_single_owner(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<zx_futex_t>::RawType current_value, SafeSyscallArgument<const zx_futex_t*>::RawType requeue_ptr, SafeSyscallArgument<uint32_t>::RawType requeue_count, SafeSyscallArgument<zx_handle_t>::RawType new_requeue_owner, uint64_t pc); |
| syscall_result wrapper_futex_requeue_single_owner(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<zx_futex_t>::RawType current_value, SafeSyscallArgument<const zx_futex_t*>::RawType requeue_ptr, SafeSyscallArgument<uint32_t>::RawType requeue_count, SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<const zx_futex_t*>::Sanitize(value_ptr)), SafeSyscallArgument<zx_futex_t>::Sanitize(current_value), make_user_in_ptr(SafeSyscallArgument<const zx_futex_t*>::Sanitize(requeue_ptr)), SafeSyscallArgument<uint32_t>::Sanitize(requeue_count), SafeSyscallArgument<zx_handle_t>::Sanitize(new_requeue_owner)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_futex_get_owner(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<zx_koid_t*>::RawType koid, uint64_t pc); |
| syscall_result wrapper_futex_get_owner(SafeSyscallArgument<const zx_futex_t*>::RawType value_ptr, SafeSyscallArgument<zx_koid_t*>::RawType 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(SafeSyscallArgument<const zx_futex_t*>::Sanitize(value_ptr)), make_user_out_ptr(SafeSyscallArgument<zx_koid_t*>::Sanitize(koid))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_guest_create(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType guest_handle, SafeSyscallArgument<zx_handle_t*>::RawType vmar_handle, uint64_t pc); |
| syscall_result wrapper_guest_create(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType guest_handle, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_guest_handle, &out_handle_vmar_handle); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_guest_handle.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(guest_handle))); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_vmar_handle.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(vmar_handle))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_guest_handle.finish_copyout(current_process); |
| out_handle_vmar_handle.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_guest_set_trap(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<zx_vaddr_t>::RawType addr, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<zx_handle_t>::RawType port_handle, SafeSyscallArgument<uint64_t>::RawType key, uint64_t pc); |
| syscall_result wrapper_guest_set_trap(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<zx_vaddr_t>::RawType addr, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<zx_handle_t>::RawType port_handle, SafeSyscallArgument<uint64_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(kind), SafeSyscallArgument<zx_vaddr_t>::Sanitize(addr), SafeSyscallArgument<size_t>::Sanitize(size), SafeSyscallArgument<zx_handle_t>::Sanitize(port_handle), SafeSyscallArgument<uint64_t>::Sanitize(key)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_handle_close(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_handle_close(SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_handle_close_many(SafeSyscallArgument<const zx_handle_t*>::RawType handles, SafeSyscallArgument<size_t>::RawType num_handles, uint64_t pc); |
| syscall_result wrapper_handle_close_many(SafeSyscallArgument<const zx_handle_t*>::RawType handles, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<const zx_handle_t*>::Sanitize(handles)), SafeSyscallArgument<size_t>::Sanitize(num_handles)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_handle_duplicate(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_rights_t>::RawType rights, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_handle_duplicate(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_rights_t>::RawType rights, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_rights_t>::Sanitize(rights), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_handle_replace(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_rights_t>::RawType rights, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_handle_replace(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_rights_t>::RawType rights, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_rights_t>::Sanitize(rights), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_interrupt_create(SafeSyscallArgument<zx_handle_t>::RawType src_obj, SafeSyscallArgument<uint32_t>::RawType src_num, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out_handle, uint64_t pc); |
| syscall_result wrapper_interrupt_create(SafeSyscallArgument<zx_handle_t>::RawType src_obj, SafeSyscallArgument<uint32_t>::RawType src_num, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(src_obj), SafeSyscallArgument<uint32_t>::Sanitize(src_num), SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out_handle); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out_handle))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out_handle.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_interrupt_bind(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType port_handle, SafeSyscallArgument<uint64_t>::RawType key, SafeSyscallArgument<uint32_t>::RawType options, uint64_t pc); |
| syscall_result wrapper_interrupt_bind(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType port_handle, SafeSyscallArgument<uint64_t>::RawType key, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_handle_t>::Sanitize(port_handle), SafeSyscallArgument<uint64_t>::Sanitize(key), SafeSyscallArgument<uint32_t>::Sanitize(options)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_interrupt_wait(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_time_t*>::RawType out_timestamp, uint64_t pc); |
| syscall_result wrapper_interrupt_wait(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_time_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_out_ptr(SafeSyscallArgument<zx_time_t*>::Sanitize(out_timestamp))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_interrupt_destroy(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_interrupt_destroy(SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_interrupt_ack(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_interrupt_ack(SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_interrupt_trigger(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_time_t>::RawType timestamp, uint64_t pc); |
| syscall_result wrapper_interrupt_trigger(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_time_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_time_t>::Sanitize(timestamp)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_interrupt_bind_vcpu(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType vcpu, SafeSyscallArgument<uint32_t>::RawType options, uint64_t pc); |
| syscall_result wrapper_interrupt_bind_vcpu(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType vcpu, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_handle_t>::Sanitize(vcpu), SafeSyscallArgument<uint32_t>::Sanitize(options)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_iommu_create(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType type, SafeSyscallArgument<const void*>::RawType desc, SafeSyscallArgument<size_t>::RawType desc_size, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_iommu_create(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType type, SafeSyscallArgument<const void*>::RawType desc, SafeSyscallArgument<size_t>::RawType desc_size, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<uint32_t>::Sanitize(type), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(desc)), SafeSyscallArgument<size_t>::Sanitize(desc_size), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_ioports_request(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint16_t>::RawType io_addr, SafeSyscallArgument<uint32_t>::RawType len, uint64_t pc); |
| syscall_result wrapper_ioports_request(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint16_t>::RawType io_addr, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<uint16_t>::Sanitize(io_addr), SafeSyscallArgument<uint32_t>::Sanitize(len)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_ioports_release(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint16_t>::RawType io_addr, SafeSyscallArgument<uint32_t>::RawType len, uint64_t pc); |
| syscall_result wrapper_ioports_release(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint16_t>::RawType io_addr, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<uint16_t>::Sanitize(io_addr), SafeSyscallArgument<uint32_t>::Sanitize(len)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_job_create(SafeSyscallArgument<zx_handle_t>::RawType parent_job, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_job_create(SafeSyscallArgument<zx_handle_t>::RawType parent_job, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(parent_job), SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_job_set_policy(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint32_t>::RawType topic, SafeSyscallArgument<const void*>::RawType policy, SafeSyscallArgument<uint32_t>::RawType policy_size, uint64_t pc); |
| syscall_result wrapper_job_set_policy(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint32_t>::RawType topic, SafeSyscallArgument<const void*>::RawType policy, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<uint32_t>::Sanitize(topic), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(policy)), SafeSyscallArgument<uint32_t>::Sanitize(policy_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_job_set_critical(SafeSyscallArgument<zx_handle_t>::RawType job, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t>::RawType process, uint64_t pc); |
| syscall_result wrapper_job_set_critical(SafeSyscallArgument<zx_handle_t>::RawType job, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(job), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_handle_t>::Sanitize(process)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_ktrace_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<void*>::RawType data, SafeSyscallArgument<uint32_t>::RawType offset, SafeSyscallArgument<size_t>::RawType data_size, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_ktrace_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<void*>::RawType data, SafeSyscallArgument<uint32_t>::RawType offset, SafeSyscallArgument<size_t>::RawType data_size, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(data)), SafeSyscallArgument<uint32_t>::Sanitize(offset), SafeSyscallArgument<size_t>::Sanitize(data_size), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_ktrace_control(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType action, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType ptr, uint64_t pc); |
| syscall_result wrapper_ktrace_control(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType action, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(action), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_inout_ptr(SafeSyscallArgument<void*>::Sanitize(ptr))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_ktrace_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType id, SafeSyscallArgument<uint32_t>::RawType arg0, SafeSyscallArgument<uint32_t>::RawType arg1, uint64_t pc); |
| syscall_result wrapper_ktrace_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType id, SafeSyscallArgument<uint32_t>::RawType arg0, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(id), SafeSyscallArgument<uint32_t>::Sanitize(arg0), SafeSyscallArgument<uint32_t>::Sanitize(arg1)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_nanosleep(SafeSyscallArgument<zx_time_t>::RawType deadline, uint64_t pc); |
| syscall_result wrapper_nanosleep(SafeSyscallArgument<zx_time_t>::RawType deadline, uint64_t pc) { |
| return do_syscall(ZX_SYS_nanosleep, pc, &VDso::ValidSyscallPC::nanosleep, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_nanosleep(SafeSyscallArgument<zx_time_t>::Sanitize(deadline)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_ticks_get_via_kernel(uint64_t pc); |
| 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(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType count, SafeSyscallArgument<zx_handle_t*>::RawType out_allocation, uint64_t pc); |
| syscall_result wrapper_msi_allocate(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType count, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(count), &out_handle_out_allocation); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out_allocation.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out_allocation))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out_allocation.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_msi_create(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint32_t>::RawType msi_id, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<size_t>::RawType vmo_offset, SafeSyscallArgument<zx_handle_t*>::RawType out_interrupt, uint64_t pc); |
| syscall_result wrapper_msi_create(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint32_t>::RawType msi_id, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<size_t>::RawType vmo_offset, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<uint32_t>::Sanitize(msi_id), SafeSyscallArgument<zx_handle_t>::Sanitize(vmo), SafeSyscallArgument<size_t>::Sanitize(vmo_offset), &out_handle_out_interrupt); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out_interrupt.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out_interrupt))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out_interrupt.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_mtrace_control(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<uint32_t>::RawType action, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType ptr, SafeSyscallArgument<size_t>::RawType ptr_size, uint64_t pc); |
| syscall_result wrapper_mtrace_control(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<uint32_t>::RawType action, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType ptr, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(kind), SafeSyscallArgument<uint32_t>::Sanitize(action), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_inout_ptr(SafeSyscallArgument<void*>::Sanitize(ptr)), SafeSyscallArgument<size_t>::Sanitize(ptr_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_wait_one(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_signals_t>::RawType signals, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_signals_t*>::RawType observed, uint64_t pc); |
| syscall_result wrapper_object_wait_one(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_signals_t>::RawType signals, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_signals_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_signals_t>::Sanitize(signals), SafeSyscallArgument<zx_time_t>::Sanitize(deadline), make_user_out_ptr(SafeSyscallArgument<zx_signals_t*>::Sanitize(observed))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_wait_many(SafeSyscallArgument<zx_wait_item_t*>::RawType items, SafeSyscallArgument<size_t>::RawType num_items, SafeSyscallArgument<zx_time_t>::RawType deadline, uint64_t pc); |
| syscall_result wrapper_object_wait_many(SafeSyscallArgument<zx_wait_item_t*>::RawType items, SafeSyscallArgument<size_t>::RawType num_items, SafeSyscallArgument<zx_time_t>::RawType 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(SafeSyscallArgument<zx_wait_item_t*>::Sanitize(items)), SafeSyscallArgument<size_t>::Sanitize(num_items), SafeSyscallArgument<zx_time_t>::Sanitize(deadline)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_wait_async(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType port, SafeSyscallArgument<uint64_t>::RawType key, SafeSyscallArgument<zx_signals_t>::RawType signals, SafeSyscallArgument<uint32_t>::RawType options, uint64_t pc); |
| syscall_result wrapper_object_wait_async(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType port, SafeSyscallArgument<uint64_t>::RawType key, SafeSyscallArgument<zx_signals_t>::RawType signals, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_handle_t>::Sanitize(port), SafeSyscallArgument<uint64_t>::Sanitize(key), SafeSyscallArgument<zx_signals_t>::Sanitize(signals), SafeSyscallArgument<uint32_t>::Sanitize(options)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_signal(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType clear_mask, SafeSyscallArgument<uint32_t>::RawType set_mask, uint64_t pc); |
| syscall_result wrapper_object_signal(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType clear_mask, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(clear_mask), SafeSyscallArgument<uint32_t>::Sanitize(set_mask)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_signal_peer(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType clear_mask, SafeSyscallArgument<uint32_t>::RawType set_mask, uint64_t pc); |
| syscall_result wrapper_object_signal_peer(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType clear_mask, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(clear_mask), SafeSyscallArgument<uint32_t>::Sanitize(set_mask)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_get_property(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType property, SafeSyscallArgument<void*>::RawType value, SafeSyscallArgument<size_t>::RawType value_size, uint64_t pc); |
| syscall_result wrapper_object_get_property(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType property, SafeSyscallArgument<void*>::RawType value, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(property), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(value)), SafeSyscallArgument<size_t>::Sanitize(value_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_set_property(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType property, SafeSyscallArgument<const void*>::RawType value, SafeSyscallArgument<size_t>::RawType value_size, uint64_t pc); |
| syscall_result wrapper_object_set_property(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType property, SafeSyscallArgument<const void*>::RawType value, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(property), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(value)), SafeSyscallArgument<size_t>::Sanitize(value_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_get_info(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType topic, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType actual, SafeSyscallArgument<size_t*>::RawType avail, uint64_t pc); |
| syscall_result wrapper_object_get_info(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType topic, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType actual, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(topic), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual)), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(avail))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_get_child(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t>::RawType koid, SafeSyscallArgument<zx_rights_t>::RawType rights, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_object_get_child(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t>::RawType koid, SafeSyscallArgument<zx_rights_t>::RawType rights, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint64_t>::Sanitize(koid), SafeSyscallArgument<zx_rights_t>::Sanitize(rights), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_object_set_profile(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType profile, SafeSyscallArgument<uint32_t>::RawType options, uint64_t pc); |
| syscall_result wrapper_object_set_profile(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType profile, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_handle_t>::Sanitize(profile), SafeSyscallArgument<uint32_t>::Sanitize(options)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pager_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_pager_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pager_create_vmo(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t>::RawType port, SafeSyscallArgument<uint64_t>::RawType key, SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_pager_create_vmo(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t>::RawType port, SafeSyscallArgument<uint64_t>::RawType key, SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(pager), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_handle_t>::Sanitize(port), SafeSyscallArgument<uint64_t>::Sanitize(key), SafeSyscallArgument<uint64_t>::Sanitize(size), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pager_detach_vmo(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<zx_handle_t>::RawType vmo, uint64_t pc); |
| syscall_result wrapper_pager_detach_vmo(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(pager), SafeSyscallArgument<zx_handle_t>::Sanitize(vmo)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pager_supply_pages(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<zx_handle_t>::RawType pager_vmo, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType length, SafeSyscallArgument<zx_handle_t>::RawType aux_vmo, SafeSyscallArgument<uint64_t>::RawType aux_offset, uint64_t pc); |
| syscall_result wrapper_pager_supply_pages(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<zx_handle_t>::RawType pager_vmo, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType length, SafeSyscallArgument<zx_handle_t>::RawType aux_vmo, SafeSyscallArgument<uint64_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(pager), SafeSyscallArgument<zx_handle_t>::Sanitize(pager_vmo), SafeSyscallArgument<uint64_t>::Sanitize(offset), SafeSyscallArgument<uint64_t>::Sanitize(length), SafeSyscallArgument<zx_handle_t>::Sanitize(aux_vmo), SafeSyscallArgument<uint64_t>::Sanitize(aux_offset)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pager_op_range(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<uint32_t>::RawType op, SafeSyscallArgument<zx_handle_t>::RawType pager_vmo, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType length, SafeSyscallArgument<uint64_t>::RawType data, uint64_t pc); |
| syscall_result wrapper_pager_op_range(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<uint32_t>::RawType op, SafeSyscallArgument<zx_handle_t>::RawType pager_vmo, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType length, SafeSyscallArgument<uint64_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(pager), SafeSyscallArgument<uint32_t>::Sanitize(op), SafeSyscallArgument<zx_handle_t>::Sanitize(pager_vmo), SafeSyscallArgument<uint64_t>::Sanitize(offset), SafeSyscallArgument<uint64_t>::Sanitize(length), SafeSyscallArgument<uint64_t>::Sanitize(data)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pager_query_dirty_ranges(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<zx_handle_t>::RawType pager_vmo, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType length, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType actual, SafeSyscallArgument<size_t*>::RawType avail, uint64_t pc); |
| syscall_result wrapper_pager_query_dirty_ranges(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<zx_handle_t>::RawType pager_vmo, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType length, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType actual, SafeSyscallArgument<size_t*>::RawType avail, uint64_t pc) { |
| return do_syscall(ZX_SYS_pager_query_dirty_ranges, pc, &VDso::ValidSyscallPC::pager_query_dirty_ranges, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_pager_query_dirty_ranges(SafeSyscallArgument<zx_handle_t>::Sanitize(pager), SafeSyscallArgument<zx_handle_t>::Sanitize(pager_vmo), SafeSyscallArgument<uint64_t>::Sanitize(offset), SafeSyscallArgument<uint64_t>::Sanitize(length), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual)), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(avail))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pager_query_vmo_stats(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<zx_handle_t>::RawType pager_vmo, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_pager_query_vmo_stats(SafeSyscallArgument<zx_handle_t>::RawType pager, SafeSyscallArgument<zx_handle_t>::RawType pager_vmo, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc) { |
| return do_syscall(ZX_SYS_pager_query_vmo_stats, pc, &VDso::ValidSyscallPC::pager_query_vmo_stats, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_pager_query_vmo_stats(SafeSyscallArgument<zx_handle_t>::Sanitize(pager), SafeSyscallArgument<zx_handle_t>::Sanitize(pager_vmo), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pc_firmware_tables(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_paddr_t*>::RawType acpi_rsdp, SafeSyscallArgument<zx_paddr_t*>::RawType smbios, uint64_t pc); |
| syscall_result wrapper_pc_firmware_tables(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_paddr_t*>::RawType acpi_rsdp, SafeSyscallArgument<zx_paddr_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_out_ptr(SafeSyscallArgument<zx_paddr_t*>::Sanitize(acpi_rsdp)), make_user_out_ptr(SafeSyscallArgument<zx_paddr_t*>::Sanitize(smbios))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_get_nth_device(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType index, SafeSyscallArgument<zx_pcie_device_info_t*>::RawType out_info, SafeSyscallArgument<zx_handle_t*>::RawType out_handle, uint64_t pc); |
| syscall_result wrapper_pci_get_nth_device(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType index, SafeSyscallArgument<zx_pcie_device_info_t*>::RawType out_info, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(index), make_user_out_ptr(SafeSyscallArgument<zx_pcie_device_info_t*>::Sanitize(out_info)), &out_handle_out_handle); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out_handle))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out_handle.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_enable_bus_master(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType enable, uint64_t pc); |
| syscall_result wrapper_pci_enable_bus_master(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(enable)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_reset_device(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_pci_reset_device(SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_config_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint16_t>::RawType offset, SafeSyscallArgument<size_t>::RawType width, SafeSyscallArgument<uint32_t*>::RawType out_val, uint64_t pc); |
| syscall_result wrapper_pci_config_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint16_t>::RawType offset, SafeSyscallArgument<size_t>::RawType width, SafeSyscallArgument<uint32_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint16_t>::Sanitize(offset), SafeSyscallArgument<size_t>::Sanitize(width), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(out_val))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_config_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint16_t>::RawType offset, SafeSyscallArgument<size_t>::RawType width, SafeSyscallArgument<uint32_t>::RawType val, uint64_t pc); |
| syscall_result wrapper_pci_config_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint16_t>::RawType offset, SafeSyscallArgument<size_t>::RawType width, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint16_t>::Sanitize(offset), SafeSyscallArgument<size_t>::Sanitize(width), SafeSyscallArgument<uint32_t>::Sanitize(val)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_cfg_pio_rw(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint8_t>::RawType bus, SafeSyscallArgument<uint8_t>::RawType dev, SafeSyscallArgument<uint8_t>::RawType func, SafeSyscallArgument<uint8_t>::RawType offset, SafeSyscallArgument<uint32_t*>::RawType val, SafeSyscallArgument<size_t>::RawType width, SafeSyscallArgument<uint32_t>::RawType write, uint64_t pc); |
| syscall_result wrapper_pci_cfg_pio_rw(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint8_t>::RawType bus, SafeSyscallArgument<uint8_t>::RawType dev, SafeSyscallArgument<uint8_t>::RawType func, SafeSyscallArgument<uint8_t>::RawType offset, SafeSyscallArgument<uint32_t*>::RawType val, SafeSyscallArgument<size_t>::RawType width, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint8_t>::Sanitize(bus), SafeSyscallArgument<uint8_t>::Sanitize(dev), SafeSyscallArgument<uint8_t>::Sanitize(func), SafeSyscallArgument<uint8_t>::Sanitize(offset), make_user_inout_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(val)), SafeSyscallArgument<size_t>::Sanitize(width), SafeSyscallArgument<uint32_t>::Sanitize(write)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_get_bar(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType bar_num, SafeSyscallArgument<zx_pci_bar_t*>::RawType out_bar, SafeSyscallArgument<zx_handle_t*>::RawType out_handle, uint64_t pc); |
| syscall_result wrapper_pci_get_bar(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType bar_num, SafeSyscallArgument<zx_pci_bar_t*>::RawType out_bar, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(bar_num), make_user_out_ptr(SafeSyscallArgument<zx_pci_bar_t*>::Sanitize(out_bar)), &out_handle_out_handle); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out_handle))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out_handle.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_map_interrupt(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<int32_t>::RawType which_irq, SafeSyscallArgument<zx_handle_t*>::RawType out_handle, uint64_t pc); |
| syscall_result wrapper_pci_map_interrupt(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<int32_t>::RawType which_irq, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<int32_t>::Sanitize(which_irq), &out_handle_out_handle); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out_handle.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out_handle))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out_handle.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_query_irq_mode(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType mode, SafeSyscallArgument<uint32_t*>::RawType out_max_irqs, uint64_t pc); |
| syscall_result wrapper_pci_query_irq_mode(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType mode, SafeSyscallArgument<uint32_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(mode), make_user_out_ptr(SafeSyscallArgument<uint32_t*>::Sanitize(out_max_irqs))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_set_irq_mode(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType mode, SafeSyscallArgument<uint32_t>::RawType requested_irq_count, uint64_t pc); |
| syscall_result wrapper_pci_set_irq_mode(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType mode, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(mode), SafeSyscallArgument<uint32_t>::Sanitize(requested_irq_count)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_init(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<const zx_pci_init_arg_t*>::RawType init_buf, SafeSyscallArgument<uint32_t>::RawType len, uint64_t pc); |
| syscall_result wrapper_pci_init(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<const zx_pci_init_arg_t*>::RawType init_buf, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_in_ptr(SafeSyscallArgument<const zx_pci_init_arg_t*>::Sanitize(init_buf)), SafeSyscallArgument<uint32_t>::Sanitize(len)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pci_add_subtract_io_range(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType mmio, SafeSyscallArgument<uint64_t>::RawType base, SafeSyscallArgument<uint64_t>::RawType len, SafeSyscallArgument<uint32_t>::RawType add, uint64_t pc); |
| syscall_result wrapper_pci_add_subtract_io_range(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType mmio, SafeSyscallArgument<uint64_t>::RawType base, SafeSyscallArgument<uint64_t>::RawType len, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(mmio), SafeSyscallArgument<uint64_t>::Sanitize(base), SafeSyscallArgument<uint64_t>::Sanitize(len), SafeSyscallArgument<uint32_t>::Sanitize(add)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_pmt_unpin(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_pmt_unpin(SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_port_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_port_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_port_queue(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<const zx_port_packet_t*>::RawType packet, uint64_t pc); |
| syscall_result wrapper_port_queue(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<const zx_port_packet_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_in_ptr(SafeSyscallArgument<const zx_port_packet_t*>::Sanitize(packet))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_port_wait(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_port_packet_t*>::RawType packet, uint64_t pc); |
| syscall_result wrapper_port_wait(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_port_packet_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_time_t>::Sanitize(deadline), make_user_out_ptr(SafeSyscallArgument<zx_port_packet_t*>::Sanitize(packet))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_port_cancel(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType source, SafeSyscallArgument<uint64_t>::RawType key, uint64_t pc); |
| syscall_result wrapper_port_cancel(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType source, SafeSyscallArgument<uint64_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_handle_t>::Sanitize(source), SafeSyscallArgument<uint64_t>::Sanitize(key)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_process_exit(SafeSyscallArgument<int64_t>::RawType retcode, uint64_t pc); |
| syscall_result wrapper_process_exit(SafeSyscallArgument<int64_t>::RawType 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(SafeSyscallArgument<int64_t>::Sanitize(retcode)); |
| /* NOTREACHED */ |
| return ZX_ERR_BAD_STATE; |
| }); |
| } |
| |
| syscall_result wrapper_process_create(SafeSyscallArgument<zx_handle_t>::RawType job, SafeSyscallArgument<const char*>::RawType name, SafeSyscallArgument<size_t>::RawType name_size, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType proc_handle, SafeSyscallArgument<zx_handle_t*>::RawType vmar_handle, uint64_t pc); |
| syscall_result wrapper_process_create(SafeSyscallArgument<zx_handle_t>::RawType job, SafeSyscallArgument<const char*>::RawType name, SafeSyscallArgument<size_t>::RawType name_size, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType proc_handle, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(job), make_user_in_ptr(SafeSyscallArgument<const char*>::Sanitize(name)), SafeSyscallArgument<size_t>::Sanitize(name_size), SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_proc_handle, &out_handle_vmar_handle); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_proc_handle.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(proc_handle))); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_vmar_handle.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(vmar_handle))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_proc_handle.finish_copyout(current_process); |
| out_handle_vmar_handle.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_process_start(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType thread, SafeSyscallArgument<zx_vaddr_t>::RawType entry, SafeSyscallArgument<zx_vaddr_t>::RawType stack, SafeSyscallArgument<zx_handle_t>::RawType arg1, SafeSyscallArgument<uintptr_t>::RawType arg2, uint64_t pc); |
| syscall_result wrapper_process_start(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType thread, SafeSyscallArgument<zx_vaddr_t>::RawType entry, SafeSyscallArgument<zx_vaddr_t>::RawType stack, SafeSyscallArgument<zx_handle_t>::RawType arg1, SafeSyscallArgument<uintptr_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_handle_t>::Sanitize(thread), SafeSyscallArgument<zx_vaddr_t>::Sanitize(entry), SafeSyscallArgument<zx_vaddr_t>::Sanitize(stack), SafeSyscallArgument<zx_handle_t>::Sanitize(arg1), SafeSyscallArgument<uintptr_t>::Sanitize(arg2)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_process_read_memory(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vaddr_t>::RawType vaddr, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_process_read_memory(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vaddr_t>::RawType vaddr, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_vaddr_t>::Sanitize(vaddr), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_process_write_memory(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vaddr_t>::RawType vaddr, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_process_write_memory(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vaddr_t>::RawType vaddr, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_vaddr_t>::Sanitize(vaddr), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_profile_create(SafeSyscallArgument<zx_handle_t>::RawType root_job, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const zx_profile_info_t*>::RawType profile, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_profile_create(SafeSyscallArgument<zx_handle_t>::RawType root_job, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const zx_profile_info_t*>::RawType profile, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(root_job), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_in_ptr(SafeSyscallArgument<const zx_profile_info_t*>::Sanitize(profile)), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_resource_create(SafeSyscallArgument<zx_handle_t>::RawType parent_rsrc, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint64_t>::RawType base, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<const char*>::RawType name, SafeSyscallArgument<size_t>::RawType name_size, SafeSyscallArgument<zx_handle_t*>::RawType resource_out, uint64_t pc); |
| syscall_result wrapper_resource_create(SafeSyscallArgument<zx_handle_t>::RawType parent_rsrc, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint64_t>::RawType base, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<const char*>::RawType name, SafeSyscallArgument<size_t>::RawType name_size, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(parent_rsrc), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<uint64_t>::Sanitize(base), SafeSyscallArgument<size_t>::Sanitize(size), make_user_in_ptr(SafeSyscallArgument<const char*>::Sanitize(name)), SafeSyscallArgument<size_t>::Sanitize(name_size), &out_handle_resource_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_resource_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(resource_out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_resource_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_smc_call(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<const zx_smc_parameters_t*>::RawType parameters, SafeSyscallArgument<zx_smc_result_t*>::RawType out_smc_result, uint64_t pc); |
| syscall_result wrapper_smc_call(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<const zx_smc_parameters_t*>::RawType parameters, SafeSyscallArgument<zx_smc_result_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_in_ptr(SafeSyscallArgument<const zx_smc_parameters_t*>::Sanitize(parameters)), make_user_out_ptr(SafeSyscallArgument<zx_smc_result_t*>::Sanitize(out_smc_result))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_socket_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out0, SafeSyscallArgument<zx_handle_t*>::RawType out1, uint64_t pc); |
| syscall_result wrapper_socket_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out0, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out0, &out_handle_out1); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out0.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out0))); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out1.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out1))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out0.finish_copyout(current_process); |
| out_handle_out1.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_socket_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_socket_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_socket_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_socket_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_socket_set_disposition(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType disposition, SafeSyscallArgument<uint32_t>::RawType disposition_peer, uint64_t pc); |
| syscall_result wrapper_socket_set_disposition(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType disposition, SafeSyscallArgument<uint32_t>::RawType disposition_peer, uint64_t pc) { |
| return do_syscall(ZX_SYS_socket_set_disposition, pc, &VDso::ValidSyscallPC::socket_set_disposition, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_socket_set_disposition(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(disposition), SafeSyscallArgument<uint32_t>::Sanitize(disposition_peer)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_stream_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<zx_off_t>::RawType seek, SafeSyscallArgument<zx_handle_t*>::RawType out_stream, uint64_t pc); |
| syscall_result wrapper_stream_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<zx_off_t>::RawType seek, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_handle_t>::Sanitize(vmo), SafeSyscallArgument<zx_off_t>::Sanitize(seek), &out_handle_out_stream); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out_stream.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out_stream))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out_stream.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_stream_writev(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const zx_iovec_t*>::RawType vector, SafeSyscallArgument<size_t>::RawType num_vector, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_stream_writev(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<const zx_iovec_t*>::RawType vector, SafeSyscallArgument<size_t>::RawType num_vector, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_in_ptr(SafeSyscallArgument<const zx_iovec_t*>::Sanitize(vector)), SafeSyscallArgument<size_t>::Sanitize(num_vector), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_stream_writev_at(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_off_t>::RawType offset, SafeSyscallArgument<const zx_iovec_t*>::RawType vector, SafeSyscallArgument<size_t>::RawType num_vector, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_stream_writev_at(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_off_t>::RawType offset, SafeSyscallArgument<const zx_iovec_t*>::RawType vector, SafeSyscallArgument<size_t>::RawType num_vector, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_off_t>::Sanitize(offset), make_user_in_ptr(SafeSyscallArgument<const zx_iovec_t*>::Sanitize(vector)), SafeSyscallArgument<size_t>::Sanitize(num_vector), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_stream_readv(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_iovec_t*>::RawType vector, SafeSyscallArgument<size_t>::RawType num_vector, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_stream_readv(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_iovec_t*>::RawType vector, SafeSyscallArgument<size_t>::RawType num_vector, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), make_user_out_ptr(SafeSyscallArgument<zx_iovec_t*>::Sanitize(vector)), SafeSyscallArgument<size_t>::Sanitize(num_vector), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_stream_readv_at(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_off_t>::RawType offset, SafeSyscallArgument<zx_iovec_t*>::RawType vector, SafeSyscallArgument<size_t>::RawType num_vector, SafeSyscallArgument<size_t*>::RawType actual, uint64_t pc); |
| syscall_result wrapper_stream_readv_at(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_off_t>::RawType offset, SafeSyscallArgument<zx_iovec_t*>::RawType vector, SafeSyscallArgument<size_t>::RawType num_vector, SafeSyscallArgument<size_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_off_t>::Sanitize(offset), make_user_out_ptr(SafeSyscallArgument<zx_iovec_t*>::Sanitize(vector)), SafeSyscallArgument<size_t>::Sanitize(num_vector), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(actual))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_stream_seek(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_stream_seek_origin_t>::RawType whence, SafeSyscallArgument<int64_t>::RawType offset, SafeSyscallArgument<zx_off_t*>::RawType out_seek, uint64_t pc); |
| syscall_result wrapper_stream_seek(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_stream_seek_origin_t>::RawType whence, SafeSyscallArgument<int64_t>::RawType offset, SafeSyscallArgument<zx_off_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_stream_seek_origin_t>::Sanitize(whence), SafeSyscallArgument<int64_t>::Sanitize(offset), make_user_out_ptr(SafeSyscallArgument<zx_off_t*>::Sanitize(out_seek))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_0(uint64_t pc); |
| 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(SafeSyscallArgument<int32_t>::RawType a, uint64_t pc); |
| syscall_result wrapper_syscall_test_1(SafeSyscallArgument<int32_t>::RawType 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(SafeSyscallArgument<int32_t>::Sanitize(a)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_2(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, uint64_t pc); |
| syscall_result wrapper_syscall_test_2(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType 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(SafeSyscallArgument<int32_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_3(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, uint64_t pc); |
| syscall_result wrapper_syscall_test_3(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType 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(SafeSyscallArgument<int32_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b), SafeSyscallArgument<int32_t>::Sanitize(c)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_4(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType d, uint64_t pc); |
| syscall_result wrapper_syscall_test_4(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType 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(SafeSyscallArgument<int32_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b), SafeSyscallArgument<int32_t>::Sanitize(c), SafeSyscallArgument<int32_t>::Sanitize(d)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_5(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType d, SafeSyscallArgument<int32_t>::RawType e, uint64_t pc); |
| syscall_result wrapper_syscall_test_5(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType d, SafeSyscallArgument<int32_t>::RawType 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(SafeSyscallArgument<int32_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b), SafeSyscallArgument<int32_t>::Sanitize(c), SafeSyscallArgument<int32_t>::Sanitize(d), SafeSyscallArgument<int32_t>::Sanitize(e)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_6(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType d, SafeSyscallArgument<int32_t>::RawType e, SafeSyscallArgument<int32_t>::RawType f, uint64_t pc); |
| syscall_result wrapper_syscall_test_6(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType d, SafeSyscallArgument<int32_t>::RawType e, SafeSyscallArgument<int32_t>::RawType 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(SafeSyscallArgument<int32_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b), SafeSyscallArgument<int32_t>::Sanitize(c), SafeSyscallArgument<int32_t>::Sanitize(d), SafeSyscallArgument<int32_t>::Sanitize(e), SafeSyscallArgument<int32_t>::Sanitize(f)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_7(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType d, SafeSyscallArgument<int32_t>::RawType e, SafeSyscallArgument<int32_t>::RawType f, SafeSyscallArgument<int32_t>::RawType g, uint64_t pc); |
| syscall_result wrapper_syscall_test_7(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType d, SafeSyscallArgument<int32_t>::RawType e, SafeSyscallArgument<int32_t>::RawType f, SafeSyscallArgument<int32_t>::RawType 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(SafeSyscallArgument<int32_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b), SafeSyscallArgument<int32_t>::Sanitize(c), SafeSyscallArgument<int32_t>::Sanitize(d), SafeSyscallArgument<int32_t>::Sanitize(e), SafeSyscallArgument<int32_t>::Sanitize(f), SafeSyscallArgument<int32_t>::Sanitize(g)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_8(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType d, SafeSyscallArgument<int32_t>::RawType e, SafeSyscallArgument<int32_t>::RawType f, SafeSyscallArgument<int32_t>::RawType g, SafeSyscallArgument<int32_t>::RawType h, uint64_t pc); |
| syscall_result wrapper_syscall_test_8(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, SafeSyscallArgument<int32_t>::RawType d, SafeSyscallArgument<int32_t>::RawType e, SafeSyscallArgument<int32_t>::RawType f, SafeSyscallArgument<int32_t>::RawType g, SafeSyscallArgument<int32_t>::RawType 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(SafeSyscallArgument<int32_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b), SafeSyscallArgument<int32_t>::Sanitize(c), SafeSyscallArgument<int32_t>::Sanitize(d), SafeSyscallArgument<int32_t>::Sanitize(e), SafeSyscallArgument<int32_t>::Sanitize(f), SafeSyscallArgument<int32_t>::Sanitize(g), SafeSyscallArgument<int32_t>::Sanitize(h)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_next_1(SafeSyscallArgument<int32_t>::RawType arg, uint64_t pc); |
| syscall_result wrapper_syscall_next_1(SafeSyscallArgument<int32_t>::RawType arg, uint64_t pc) { |
| return do_syscall(ZX_SYS_syscall_next_1, pc, &VDso::ValidSyscallPC::syscall_next_1, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_syscall_next_1(SafeSyscallArgument<int32_t>::Sanitize(arg)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_wrapper(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType c, uint64_t pc); |
| syscall_result wrapper_syscall_test_wrapper(SafeSyscallArgument<int32_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int32_t>::RawType 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(SafeSyscallArgument<int32_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b), SafeSyscallArgument<int32_t>::Sanitize(c)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_handle_create(SafeSyscallArgument<zx_status_t>::RawType return_value, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_syscall_test_handle_create(SafeSyscallArgument<zx_status_t>::RawType return_value, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_status_t>::Sanitize(return_value), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_widening_unsigned_narrow(SafeSyscallArgument<uint64_t>::RawType a, SafeSyscallArgument<uint32_t>::RawType b, SafeSyscallArgument<uint16_t>::RawType c, SafeSyscallArgument<uint8_t>::RawType d, uint64_t pc); |
| syscall_result wrapper_syscall_test_widening_unsigned_narrow(SafeSyscallArgument<uint64_t>::RawType a, SafeSyscallArgument<uint32_t>::RawType b, SafeSyscallArgument<uint16_t>::RawType c, SafeSyscallArgument<uint8_t>::RawType d, uint64_t pc) { |
| return do_syscall(ZX_SYS_syscall_test_widening_unsigned_narrow, pc, &VDso::ValidSyscallPC::syscall_test_widening_unsigned_narrow, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_syscall_test_widening_unsigned_narrow(SafeSyscallArgument<uint64_t>::Sanitize(a), SafeSyscallArgument<uint32_t>::Sanitize(b), SafeSyscallArgument<uint16_t>::Sanitize(c), SafeSyscallArgument<uint8_t>::Sanitize(d)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_widening_signed_narrow(SafeSyscallArgument<int64_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int16_t>::RawType c, SafeSyscallArgument<int8_t>::RawType d, uint64_t pc); |
| syscall_result wrapper_syscall_test_widening_signed_narrow(SafeSyscallArgument<int64_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int16_t>::RawType c, SafeSyscallArgument<int8_t>::RawType d, uint64_t pc) { |
| return do_syscall(ZX_SYS_syscall_test_widening_signed_narrow, pc, &VDso::ValidSyscallPC::syscall_test_widening_signed_narrow, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_syscall_test_widening_signed_narrow(SafeSyscallArgument<int64_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b), SafeSyscallArgument<int16_t>::Sanitize(c), SafeSyscallArgument<int8_t>::Sanitize(d)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_widening_unsigned_wide(SafeSyscallArgument<uint64_t>::RawType a, SafeSyscallArgument<uint32_t>::RawType b, SafeSyscallArgument<uint16_t>::RawType c, SafeSyscallArgument<uint8_t>::RawType d, uint64_t pc); |
| syscall_result wrapper_syscall_test_widening_unsigned_wide(SafeSyscallArgument<uint64_t>::RawType a, SafeSyscallArgument<uint32_t>::RawType b, SafeSyscallArgument<uint16_t>::RawType c, SafeSyscallArgument<uint8_t>::RawType d, uint64_t pc) { |
| return do_syscall(ZX_SYS_syscall_test_widening_unsigned_wide, pc, &VDso::ValidSyscallPC::syscall_test_widening_unsigned_wide, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_syscall_test_widening_unsigned_wide(SafeSyscallArgument<uint64_t>::Sanitize(a), SafeSyscallArgument<uint32_t>::Sanitize(b), SafeSyscallArgument<uint16_t>::Sanitize(c), SafeSyscallArgument<uint8_t>::Sanitize(d)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_syscall_test_widening_signed_wide(SafeSyscallArgument<int64_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int16_t>::RawType c, SafeSyscallArgument<int8_t>::RawType d, uint64_t pc); |
| syscall_result wrapper_syscall_test_widening_signed_wide(SafeSyscallArgument<int64_t>::RawType a, SafeSyscallArgument<int32_t>::RawType b, SafeSyscallArgument<int16_t>::RawType c, SafeSyscallArgument<int8_t>::RawType d, uint64_t pc) { |
| return do_syscall(ZX_SYS_syscall_test_widening_signed_wide, pc, &VDso::ValidSyscallPC::syscall_test_widening_signed_wide, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_syscall_test_widening_signed_wide(SafeSyscallArgument<int64_t>::Sanitize(a), SafeSyscallArgument<int32_t>::Sanitize(b), SafeSyscallArgument<int16_t>::Sanitize(c), SafeSyscallArgument<int8_t>::Sanitize(d)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_system_get_event(SafeSyscallArgument<zx_handle_t>::RawType root_job, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<zx_handle_t*>::RawType event, uint64_t pc); |
| syscall_result wrapper_system_get_event(SafeSyscallArgument<zx_handle_t>::RawType root_job, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(root_job), SafeSyscallArgument<uint32_t>::Sanitize(kind), &out_handle_event); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_event.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(event))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_event.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_system_set_performance_info(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType topic, SafeSyscallArgument<const void*>::RawType info, SafeSyscallArgument<size_t>::RawType count, uint64_t pc); |
| syscall_result wrapper_system_set_performance_info(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType topic, SafeSyscallArgument<const void*>::RawType info, SafeSyscallArgument<size_t>::RawType count, uint64_t pc) { |
| return do_syscall(ZX_SYS_system_set_performance_info, pc, &VDso::ValidSyscallPC::system_set_performance_info, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_system_set_performance_info(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<uint32_t>::Sanitize(topic), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(info)), SafeSyscallArgument<size_t>::Sanitize(count)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_system_get_performance_info(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType topic, SafeSyscallArgument<size_t>::RawType count, SafeSyscallArgument<void*>::RawType info, SafeSyscallArgument<size_t*>::RawType output_count, uint64_t pc); |
| syscall_result wrapper_system_get_performance_info(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType topic, SafeSyscallArgument<size_t>::RawType count, SafeSyscallArgument<void*>::RawType info, SafeSyscallArgument<size_t*>::RawType output_count, uint64_t pc) { |
| return do_syscall(ZX_SYS_system_get_performance_info, pc, &VDso::ValidSyscallPC::system_get_performance_info, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_system_get_performance_info(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<uint32_t>::Sanitize(topic), SafeSyscallArgument<size_t>::Sanitize(count), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(info)), make_user_out_ptr(SafeSyscallArgument<size_t*>::Sanitize(output_count))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_system_mexec(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<zx_handle_t>::RawType kernel_vmo, SafeSyscallArgument<zx_handle_t>::RawType bootimage_vmo, uint64_t pc); |
| syscall_result wrapper_system_mexec(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<zx_handle_t>::RawType kernel_vmo, SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<zx_handle_t>::Sanitize(kernel_vmo), SafeSyscallArgument<zx_handle_t>::Sanitize(bootimage_vmo)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_system_mexec_payload_get(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_system_mexec_payload_get(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_system_powerctl(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType cmd, SafeSyscallArgument<const zx_system_powerctl_arg_t*>::RawType arg, uint64_t pc); |
| syscall_result wrapper_system_powerctl(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<uint32_t>::RawType cmd, SafeSyscallArgument<const zx_system_powerctl_arg_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<uint32_t>::Sanitize(cmd), make_user_in_ptr(SafeSyscallArgument<const zx_system_powerctl_arg_t*>::Sanitize(arg))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_task_suspend(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t*>::RawType token, uint64_t pc); |
| syscall_result wrapper_task_suspend(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), &out_handle_token); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_token.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(token))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_token.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_task_suspend_token(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t*>::RawType token, uint64_t pc); |
| syscall_result wrapper_task_suspend_token(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), &out_handle_token); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_token.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(token))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_token.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_task_create_exception_channel(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_task_create_exception_channel(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_task_kill(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_task_kill(SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_thread_exit(uint64_t pc); |
| 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(SafeSyscallArgument<zx_handle_t>::RawType process, SafeSyscallArgument<const char*>::RawType name, SafeSyscallArgument<size_t>::RawType name_size, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_thread_create(SafeSyscallArgument<zx_handle_t>::RawType process, SafeSyscallArgument<const char*>::RawType name, SafeSyscallArgument<size_t>::RawType name_size, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(process), make_user_in_ptr(SafeSyscallArgument<const char*>::Sanitize(name)), SafeSyscallArgument<size_t>::Sanitize(name_size), SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_thread_start(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vaddr_t>::RawType thread_entry, SafeSyscallArgument<zx_vaddr_t>::RawType stack, SafeSyscallArgument<uintptr_t>::RawType arg1, SafeSyscallArgument<uintptr_t>::RawType arg2, uint64_t pc); |
| syscall_result wrapper_thread_start(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vaddr_t>::RawType thread_entry, SafeSyscallArgument<zx_vaddr_t>::RawType stack, SafeSyscallArgument<uintptr_t>::RawType arg1, SafeSyscallArgument<uintptr_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_vaddr_t>::Sanitize(thread_entry), SafeSyscallArgument<zx_vaddr_t>::Sanitize(stack), SafeSyscallArgument<uintptr_t>::Sanitize(arg1), SafeSyscallArgument<uintptr_t>::Sanitize(arg2)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_thread_read_state(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_thread_read_state(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(kind), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_thread_write_state(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_thread_write_state(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(kind), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_thread_legacy_yield(SafeSyscallArgument<uint32_t>::RawType options, uint64_t pc); |
| syscall_result wrapper_thread_legacy_yield(SafeSyscallArgument<uint32_t>::RawType options, uint64_t pc) { |
| return do_syscall(ZX_SYS_thread_legacy_yield, pc, &VDso::ValidSyscallPC::thread_legacy_yield, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_thread_legacy_yield(SafeSyscallArgument<uint32_t>::Sanitize(options)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_timer_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_clock_t>::RawType clock_id, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_timer_create(SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_clock_t>::RawType clock_id, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_clock_t>::Sanitize(clock_id), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_timer_set(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_duration_t>::RawType slack, uint64_t pc); |
| syscall_result wrapper_timer_set(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_time_t>::RawType deadline, SafeSyscallArgument<zx_duration_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_time_t>::Sanitize(deadline), SafeSyscallArgument<zx_duration_t>::Sanitize(slack)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_timer_cancel(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_timer_cancel(SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vcpu_create(SafeSyscallArgument<zx_handle_t>::RawType guest, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_vaddr_t>::RawType entry, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_vcpu_create(SafeSyscallArgument<zx_handle_t>::RawType guest, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_vaddr_t>::RawType entry, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(guest), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<zx_vaddr_t>::Sanitize(entry), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vcpu_enter(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_port_packet_t*>::RawType packet, uint64_t pc); |
| syscall_result wrapper_vcpu_enter(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_port_packet_t*>::RawType packet, uint64_t pc) { |
| return do_syscall(ZX_SYS_vcpu_enter, pc, &VDso::ValidSyscallPC::vcpu_enter, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_vcpu_enter(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_out_ptr(SafeSyscallArgument<zx_port_packet_t*>::Sanitize(packet))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vcpu_kick(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_vcpu_kick(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc) { |
| return do_syscall(ZX_SYS_vcpu_kick, pc, &VDso::ValidSyscallPC::vcpu_kick, [&](ProcessDispatcher* current_process) -> uint64_t { |
| auto result = sys_vcpu_kick(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vcpu_interrupt(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType vector, uint64_t pc); |
| syscall_result wrapper_vcpu_interrupt(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(vector)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vcpu_read_state(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_vcpu_read_state(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(kind), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vcpu_write_state(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_vcpu_write_state(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType kind, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(kind), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmar_allocate(SafeSyscallArgument<zx_handle_t>::RawType parent_vmar, SafeSyscallArgument<zx_vm_option_t>::RawType options, SafeSyscallArgument<size_t>::RawType offset, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<zx_handle_t*>::RawType child_vmar, SafeSyscallArgument<zx_vaddr_t*>::RawType child_addr, uint64_t pc); |
| syscall_result wrapper_vmar_allocate(SafeSyscallArgument<zx_handle_t>::RawType parent_vmar, SafeSyscallArgument<zx_vm_option_t>::RawType options, SafeSyscallArgument<size_t>::RawType offset, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<zx_handle_t*>::RawType child_vmar, SafeSyscallArgument<zx_vaddr_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(parent_vmar), SafeSyscallArgument<zx_vm_option_t>::Sanitize(options), SafeSyscallArgument<size_t>::Sanitize(offset), SafeSyscallArgument<size_t>::Sanitize(size), &out_handle_child_vmar, make_user_out_ptr(SafeSyscallArgument<zx_vaddr_t*>::Sanitize(child_addr))); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_child_vmar.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(child_vmar))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_child_vmar.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmar_destroy(SafeSyscallArgument<zx_handle_t>::RawType handle, uint64_t pc); |
| syscall_result wrapper_vmar_destroy(SafeSyscallArgument<zx_handle_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmar_map(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vm_option_t>::RawType options, SafeSyscallArgument<size_t>::RawType vmar_offset, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<uint64_t>::RawType vmo_offset, SafeSyscallArgument<size_t>::RawType len, SafeSyscallArgument<zx_vaddr_t*>::RawType mapped_addr, uint64_t pc); |
| syscall_result wrapper_vmar_map(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vm_option_t>::RawType options, SafeSyscallArgument<size_t>::RawType vmar_offset, SafeSyscallArgument<zx_handle_t>::RawType vmo, SafeSyscallArgument<uint64_t>::RawType vmo_offset, SafeSyscallArgument<size_t>::RawType len, SafeSyscallArgument<zx_vaddr_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_vm_option_t>::Sanitize(options), SafeSyscallArgument<size_t>::Sanitize(vmar_offset), SafeSyscallArgument<zx_handle_t>::Sanitize(vmo), SafeSyscallArgument<uint64_t>::Sanitize(vmo_offset), SafeSyscallArgument<size_t>::Sanitize(len), make_user_out_ptr(SafeSyscallArgument<zx_vaddr_t*>::Sanitize(mapped_addr))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmar_unmap(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vaddr_t>::RawType addr, SafeSyscallArgument<size_t>::RawType len, uint64_t pc); |
| syscall_result wrapper_vmar_unmap(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vaddr_t>::RawType addr, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_vaddr_t>::Sanitize(addr), SafeSyscallArgument<size_t>::Sanitize(len)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmar_protect(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vm_option_t>::RawType options, SafeSyscallArgument<zx_vaddr_t>::RawType addr, SafeSyscallArgument<size_t>::RawType len, uint64_t pc); |
| syscall_result wrapper_vmar_protect(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_vm_option_t>::RawType options, SafeSyscallArgument<zx_vaddr_t>::RawType addr, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_vm_option_t>::Sanitize(options), SafeSyscallArgument<zx_vaddr_t>::Sanitize(addr), SafeSyscallArgument<size_t>::Sanitize(len)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmar_op_range(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType op, SafeSyscallArgument<zx_vaddr_t>::RawType address, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_vmar_op_range(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType op, SafeSyscallArgument<zx_vaddr_t>::RawType address, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(op), SafeSyscallArgument<zx_vaddr_t>::Sanitize(address), SafeSyscallArgument<size_t>::Sanitize(size), make_user_inout_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_create(SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_vmo_create(SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<uint64_t>::Sanitize(size), SafeSyscallArgument<uint32_t>::Sanitize(options), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_vmo_read(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_out_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<uint64_t>::Sanitize(offset), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_vmo_write(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<const void*>::RawType buffer, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_in_ptr(SafeSyscallArgument<const void*>::Sanitize(buffer)), SafeSyscallArgument<uint64_t>::Sanitize(offset), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_get_size(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t*>::RawType size, uint64_t pc); |
| syscall_result wrapper_vmo_get_size(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), make_user_out_ptr(SafeSyscallArgument<uint64_t*>::Sanitize(size))); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_set_size(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t>::RawType size, uint64_t pc); |
| syscall_result wrapper_vmo_set_size(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint64_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint64_t>::Sanitize(size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_op_range(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType op, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType buffer_size, uint64_t pc); |
| syscall_result wrapper_vmo_op_range(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType op, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<void*>::RawType buffer, SafeSyscallArgument<size_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(op), SafeSyscallArgument<uint64_t>::Sanitize(offset), SafeSyscallArgument<uint64_t>::Sanitize(size), make_user_inout_ptr(SafeSyscallArgument<void*>::Sanitize(buffer)), SafeSyscallArgument<size_t>::Sanitize(buffer_size)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_create_child(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_vmo_create_child(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType options, SafeSyscallArgument<uint64_t>::RawType offset, SafeSyscallArgument<uint64_t>::RawType size, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(options), SafeSyscallArgument<uint64_t>::Sanitize(offset), SafeSyscallArgument<uint64_t>::Sanitize(size), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_set_cache_policy(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType cache_policy, uint64_t pc); |
| syscall_result wrapper_vmo_set_cache_policy(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<uint32_t>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<uint32_t>::Sanitize(cache_policy)); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_replace_as_executable(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType vmex, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_vmo_replace_as_executable(SafeSyscallArgument<zx_handle_t>::RawType handle, SafeSyscallArgument<zx_handle_t>::RawType vmex, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(handle), SafeSyscallArgument<zx_handle_t>::Sanitize(vmex), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_create_contiguous(SafeSyscallArgument<zx_handle_t>::RawType bti, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<uint32_t>::RawType alignment_log2, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_vmo_create_contiguous(SafeSyscallArgument<zx_handle_t>::RawType bti, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<uint32_t>::RawType alignment_log2, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(bti), SafeSyscallArgument<size_t>::Sanitize(size), SafeSyscallArgument<uint32_t>::Sanitize(alignment_log2), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| out_handle_out.finish_copyout(current_process); |
| return result; |
| }); |
| } |
| |
| syscall_result wrapper_vmo_create_physical(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<zx_paddr_t>::RawType paddr, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<zx_handle_t*>::RawType out, uint64_t pc); |
| syscall_result wrapper_vmo_create_physical(SafeSyscallArgument<zx_handle_t>::RawType resource, SafeSyscallArgument<zx_paddr_t>::RawType paddr, SafeSyscallArgument<size_t>::RawType size, SafeSyscallArgument<zx_handle_t*>::RawType 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(SafeSyscallArgument<zx_handle_t>::Sanitize(resource), SafeSyscallArgument<zx_paddr_t>::Sanitize(paddr), SafeSyscallArgument<size_t>::Sanitize(size), &out_handle_out); |
| if (result != ZX_OK) |
| return result; |
| result = out_handle_out.begin_copyout(current_process, make_user_out_ptr(SafeSyscallArgument<zx_handle_t*>::Sanitize(out))); |
| if (result != ZX_OK) |
| return result; |
| 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)) |
| |
| VDSO_SYSCALL(clock_get_monotonic, zx_time_t, /* no attributes */, 0, |
| (), (void)) |
| |
| 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(pager_query_dirty_ranges, zx_status_t, /* no attributes */, 8, |
| (pager, pager_vmo, offset, length, buffer, buffer_size, actual, avail), ( |
| _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, |
| void* buffer, |
| size_t buffer_size, |
| size_t* actual, |
| size_t* avail)) |
| |
| KERNEL_SYSCALL(pager_query_vmo_stats, zx_status_t, /* no attributes */, 5, |
| (pager, pager_vmo, options, buffer, buffer_size), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager, |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t pager_vmo, |
| uint32_t options, |
| void* buffer, |
| size_t buffer_size)) |
| |
| 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_set_disposition, zx_status_t, /* no attributes */, 3, |
| (handle, disposition, disposition_peer), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle, |
| uint32_t disposition, |
| uint32_t disposition_peer)) |
| |
| 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)) |
| |
| BLOCKING_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)) |
| |
| BLOCKING_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)) |
| |
| BLOCKING_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)) |
| |
| BLOCKING_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_next_1, zx_status_t, /* no attributes */, 1, |
| (arg), ( |
| int32_t arg)) |
| |
| 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)) |
| |
| KERNEL_SYSCALL(syscall_test_widening_unsigned_narrow, uint64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| uint64_t a, |
| uint32_t b, |
| uint16_t c, |
| uint8_t d)) |
| |
| KERNEL_SYSCALL(syscall_test_widening_signed_narrow, int64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| int64_t a, |
| int32_t b, |
| int16_t c, |
| int8_t d)) |
| |
| KERNEL_SYSCALL(syscall_test_widening_unsigned_wide, uint64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| uint64_t a, |
| uint32_t b, |
| uint16_t c, |
| uint8_t d)) |
| |
| KERNEL_SYSCALL(syscall_test_widening_signed_wide, int64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| int64_t a, |
| int32_t b, |
| int16_t c, |
| int8_t d)) |
| |
| 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_page_size, uint32_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_set_performance_info, zx_status_t, /* no attributes */, 4, |
| (resource, topic, info, count), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource, |
| uint32_t topic, |
| const void* info, |
| size_t count)) |
| |
| KERNEL_SYSCALL(system_get_performance_info, zx_status_t, /* no attributes */, 5, |
| (resource, topic, count, info, output_count), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource, |
| uint32_t topic, |
| size_t count, |
| void* info, |
| size_t* output_count)) |
| |
| 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(thread_legacy_yield, zx_status_t, /* no attributes */, 1, |
| (options), ( |
| uint32_t options)) |
| |
| 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_enter, 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_kick, zx_status_t, /* no attributes */, 1, |
| (handle), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle)) |
| |
| 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_monotonic, zx_time_t, /* no attributes */, 0, |
| (), (void)) |
| |
| _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_set_disposition, zx_status_t, /* no attributes */, 3, |
| (handle, disposition, disposition_peer), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle, |
| uint32_t disposition, |
| uint32_t disposition_peer)) |
| |
| _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_page_size, uint32_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_set_performance_info, zx_status_t, /* no attributes */, 4, |
| (resource, topic, info, count), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource, |
| uint32_t topic, |
| const void* info, |
| size_t count)) |
| |
| _ZX_SYSCALL_DECL(system_get_performance_info, zx_status_t, /* no attributes */, 5, |
| (resource, topic, count, info, output_count), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t resource, |
| uint32_t topic, |
| size_t count, |
| void* info, |
| size_t* output_count)) |
| |
| _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(thread_legacy_yield, zx_status_t, /* no attributes */, 1, |
| (options), ( |
| uint32_t options)) |
| |
| _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_enter, 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_kick, zx_status_t, /* no attributes */, 1, |
| (handle), ( |
| _ZX_SYSCALL_ANNO(use_handle("Fuchsia")) zx_handle_t handle)) |
| |
| _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_monotonic( |
| ) -> zx_time_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_pager_query_dirty_ranges( |
| pager: zx_handle_t, |
| pager_vmo: zx_handle_t, |
| offset: u64, |
| length: u64, |
| buffer: *mut u8, |
| buffer_size: usize, |
| actual: *mut usize, |
| avail: *mut usize |
| ) -> zx_status_t; |
| |
| pub fn zx_pager_query_vmo_stats( |
| pager: zx_handle_t, |
| pager_vmo: zx_handle_t, |
| options: u32, |
| buffer: *mut u8, |
| buffer_size: usize |
| ) -> 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_set_disposition( |
| handle: zx_handle_t, |
| disposition: u32, |
| disposition_peer: 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_next_1( |
| arg: 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_syscall_test_widening_unsigned_narrow( |
| a: u64, |
| b: u32, |
| c: u16, |
| d: u8 |
| ) -> u64; |
| |
| pub fn zx_syscall_test_widening_signed_narrow( |
| a: i64, |
| b: i32, |
| c: i16, |
| d: i8 |
| ) -> i64; |
| |
| pub fn zx_syscall_test_widening_unsigned_wide( |
| a: u64, |
| b: u32, |
| c: u16, |
| d: u8 |
| ) -> u64; |
| |
| pub fn zx_syscall_test_widening_signed_wide( |
| a: i64, |
| b: i32, |
| c: i16, |
| d: i8 |
| ) -> i64; |
| |
| 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_page_size( |
| ) -> u32; |
| |
| 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_set_performance_info( |
| resource: zx_handle_t, |
| topic: u32, |
| info: *const u8, |
| count: usize |
| ) -> zx_status_t; |
| |
| pub fn zx_system_get_performance_info( |
| resource: zx_handle_t, |
| topic: u32, |
| count: usize, |
| info: *mut u8, |
| output_count: *mut usize |
| ) -> 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_thread_legacy_yield( |
| options: u32 |
| ) -> 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_enter( |
| handle: zx_handle_t, |
| packet: *mut zx_port_packet_t |
| ) -> zx_status_t; |
| |
| pub fn zx_vcpu_kick( |
| handle: zx_handle_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_monotonic_via_kernel 12 |
| #define ZX_SYS_clock_create 13 |
| #define ZX_SYS_clock_read 14 |
| #define ZX_SYS_clock_get_details 15 |
| #define ZX_SYS_clock_update 16 |
| #define ZX_SYS_cprng_draw_once 17 |
| #define ZX_SYS_cprng_add_entropy 18 |
| #define ZX_SYS_debug_read 19 |
| #define ZX_SYS_debug_write 20 |
| #define ZX_SYS_debug_send_command 21 |
| #define ZX_SYS_debuglog_create 22 |
| #define ZX_SYS_debuglog_write 23 |
| #define ZX_SYS_debuglog_read 24 |
| #define ZX_SYS_event_create 25 |
| #define ZX_SYS_eventpair_create 26 |
| #define ZX_SYS_exception_get_thread 27 |
| #define ZX_SYS_exception_get_process 28 |
| #define ZX_SYS_fifo_create 29 |
| #define ZX_SYS_fifo_read 30 |
| #define ZX_SYS_fifo_write 31 |
| #define ZX_SYS_framebuffer_get_info 32 |
| #define ZX_SYS_framebuffer_set_range 33 |
| #define ZX_SYS_futex_wait 34 |
| #define ZX_SYS_futex_wake 35 |
| #define ZX_SYS_futex_requeue 36 |
| #define ZX_SYS_futex_wake_single_owner 37 |
| #define ZX_SYS_futex_requeue_single_owner 38 |
| #define ZX_SYS_futex_get_owner 39 |
| #define ZX_SYS_guest_create 40 |
| #define ZX_SYS_guest_set_trap 41 |
| #define ZX_SYS_handle_close 42 |
| #define ZX_SYS_handle_close_many 43 |
| #define ZX_SYS_handle_duplicate 44 |
| #define ZX_SYS_handle_replace 45 |
| #define ZX_SYS_interrupt_create 46 |
| #define ZX_SYS_interrupt_bind 47 |
| #define ZX_SYS_interrupt_wait 48 |
| #define ZX_SYS_interrupt_destroy 49 |
| #define ZX_SYS_interrupt_ack 50 |
| #define ZX_SYS_interrupt_trigger 51 |
| #define ZX_SYS_interrupt_bind_vcpu 52 |
| #define ZX_SYS_iommu_create 53 |
| #define ZX_SYS_ioports_request 54 |
| #define ZX_SYS_ioports_release 55 |
| #define ZX_SYS_job_create 56 |
| #define ZX_SYS_job_set_policy 57 |
| #define ZX_SYS_job_set_critical 58 |
| #define ZX_SYS_ktrace_read 59 |
| #define ZX_SYS_ktrace_control 60 |
| #define ZX_SYS_ktrace_write 61 |
| #define ZX_SYS_nanosleep 62 |
| #define ZX_SYS_ticks_get_via_kernel 63 |
| #define ZX_SYS_msi_allocate 64 |
| #define ZX_SYS_msi_create 65 |
| #define ZX_SYS_mtrace_control 66 |
| #define ZX_SYS_object_wait_one 67 |
| #define ZX_SYS_object_wait_many 68 |
| #define ZX_SYS_object_wait_async 69 |
| #define ZX_SYS_object_signal 70 |
| #define ZX_SYS_object_signal_peer 71 |
| #define ZX_SYS_object_get_property 72 |
| #define ZX_SYS_object_set_property 73 |
| #define ZX_SYS_object_get_info 74 |
| #define ZX_SYS_object_get_child 75 |
| #define ZX_SYS_object_set_profile 76 |
| #define ZX_SYS_pager_create 77 |
| #define ZX_SYS_pager_create_vmo 78 |
| #define ZX_SYS_pager_detach_vmo 79 |
| #define ZX_SYS_pager_supply_pages 80 |
| #define ZX_SYS_pager_op_range 81 |
| #define ZX_SYS_pager_query_dirty_ranges 82 |
| #define ZX_SYS_pager_query_vmo_stats 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_set_disposition 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_next_1 129 |
| #define ZX_SYS_syscall_test_wrapper 130 |
| #define ZX_SYS_syscall_test_handle_create 131 |
| #define ZX_SYS_syscall_test_widening_unsigned_narrow 132 |
| #define ZX_SYS_syscall_test_widening_signed_narrow 133 |
| #define ZX_SYS_syscall_test_widening_unsigned_wide 134 |
| #define ZX_SYS_syscall_test_widening_signed_wide 135 |
| #define ZX_SYS_system_get_event 136 |
| #define ZX_SYS_system_set_performance_info 137 |
| #define ZX_SYS_system_get_performance_info 138 |
| #define ZX_SYS_system_mexec 139 |
| #define ZX_SYS_system_mexec_payload_get 140 |
| #define ZX_SYS_system_powerctl 141 |
| #define ZX_SYS_task_suspend 142 |
| #define ZX_SYS_task_suspend_token 143 |
| #define ZX_SYS_task_create_exception_channel 144 |
| #define ZX_SYS_task_kill 145 |
| #define ZX_SYS_thread_exit 146 |
| #define ZX_SYS_thread_create 147 |
| #define ZX_SYS_thread_start 148 |
| #define ZX_SYS_thread_read_state 149 |
| #define ZX_SYS_thread_write_state 150 |
| #define ZX_SYS_thread_legacy_yield 151 |
| #define ZX_SYS_timer_create 152 |
| #define ZX_SYS_timer_set 153 |
| #define ZX_SYS_timer_cancel 154 |
| #define ZX_SYS_vcpu_create 155 |
| #define ZX_SYS_vcpu_enter 156 |
| #define ZX_SYS_vcpu_kick 157 |
| #define ZX_SYS_vcpu_interrupt 158 |
| #define ZX_SYS_vcpu_read_state 159 |
| #define ZX_SYS_vcpu_write_state 160 |
| #define ZX_SYS_vmar_allocate 161 |
| #define ZX_SYS_vmar_destroy 162 |
| #define ZX_SYS_vmar_map 163 |
| #define ZX_SYS_vmar_unmap 164 |
| #define ZX_SYS_vmar_protect 165 |
| #define ZX_SYS_vmar_op_range 166 |
| #define ZX_SYS_vmo_create 167 |
| #define ZX_SYS_vmo_read 168 |
| #define ZX_SYS_vmo_write 169 |
| #define ZX_SYS_vmo_get_size 170 |
| #define ZX_SYS_vmo_set_size 171 |
| #define ZX_SYS_vmo_op_range 172 |
| #define ZX_SYS_vmo_create_child 173 |
| #define ZX_SYS_vmo_set_cache_policy 174 |
| #define ZX_SYS_vmo_replace_as_executable 175 |
| #define ZX_SYS_vmo_create_contiguous 176 |
| #define ZX_SYS_vmo_create_physical 177 |
| #define ZX_SYS_COUNT 178 |
| ----- 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)) |
| |
| _ZX_SYSCALL_DECL(syscall_test_widening_unsigned_narrow, uint64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| uint64_t a, |
| uint32_t b, |
| uint16_t c, |
| uint8_t d)) |
| |
| _ZX_SYSCALL_DECL(syscall_test_widening_signed_narrow, int64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| int64_t a, |
| int32_t b, |
| int16_t c, |
| int8_t d)) |
| |
| _ZX_SYSCALL_DECL(syscall_test_widening_unsigned_wide, uint64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| uint64_t a, |
| uint32_t b, |
| uint16_t c, |
| uint8_t d)) |
| |
| _ZX_SYSCALL_DECL(syscall_test_widening_signed_wide, int64_t, /* no attributes */, 4, |
| (a, b, c, d), ( |
| int64_t a, |
| int32_t b, |
| int16_t c, |
| int8_t d)) |
| |
| ----- testonly-public-header.h END ----- |
| |
| |