| // Copyright 2016 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // Zircon system calls for the Fuchsia OS. |
| // Generated by mkfuchsia.go, do not edit. |
| |
| #include "textflag.h" |
| |
| // func Sys_clock_get(clock_id uint32) Time |
| TEXT ·Sys_clock_get(SB),NOSPLIT,$0-16 |
| MOVL clock_id+0(FP), DI |
| MOVQ vdso_zx_clock_get(SB), AX |
| CALL AX |
| MOVQ AX, ret+8(FP) |
| RET |
| |
| // func Sys_clock_get_new(clock_id uint32, out *Time) Status |
| TEXT ·Sys_clock_get_new(SB),NOSPLIT,$0-20 |
| MOVL clock_id+0(FP), DI |
| MOVQ out+8(FP), SI |
| MOVQ vdso_zx_clock_get_new(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_clock_get_monotonic() Time |
| TEXT ·Sys_clock_get_monotonic(SB),NOSPLIT,$0-8 |
| MOVQ vdso_zx_clock_get_monotonic(SB), AX |
| CALL AX |
| MOVQ AX, ret+0(FP) |
| RET |
| |
| // func Sys_nanosleep(deadline Time) Status |
| TEXT ·Sys_nanosleep(SB),NOSPLIT,$0-12 |
| MOVQ deadline+0(FP), DI |
| MOVQ vdso_zx_nanosleep(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_ticks_get() uint64 |
| TEXT ·Sys_ticks_get(SB),NOSPLIT,$0-8 |
| MOVQ vdso_zx_ticks_get(SB), AX |
| CALL AX |
| MOVQ AX, ret+0(FP) |
| RET |
| |
| // func Sys_ticks_per_second() uint64 |
| TEXT ·Sys_ticks_per_second(SB),NOSPLIT,$0-8 |
| MOVQ vdso_zx_ticks_per_second(SB), AX |
| CALL AX |
| MOVQ AX, ret+0(FP) |
| RET |
| |
| // func Sys_deadline_after(nanoseconds Duration) Time |
| TEXT ·Sys_deadline_after(SB),NOSPLIT,$0-16 |
| MOVQ nanoseconds+0(FP), DI |
| MOVQ vdso_zx_deadline_after(SB), AX |
| CALL AX |
| MOVQ AX, ret+8(FP) |
| RET |
| |
| // func Sys_clock_adjust(handle Handle, clock_id uint32, offset int64) Status |
| TEXT ·Sys_clock_adjust(SB),NOSPLIT,$0-20 |
| MOVL handle+0(FP), DI |
| MOVL clock_id+4(FP), SI |
| MOVQ offset+8(FP), DX |
| MOVQ vdso_zx_clock_adjust(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func sys_system_get_dcache_line_size() uint32 |
| TEXT ·sys_system_get_dcache_line_size(SB),NOSPLIT,$0-4 |
| MOVQ vdso_zx_system_get_dcache_line_size(SB), AX |
| CALL AX |
| MOVL AX, ret+0(FP) |
| RET |
| |
| // func Sys_system_get_num_cpus() uint32 |
| TEXT ·Sys_system_get_num_cpus(SB),NOSPLIT,$0-4 |
| MOVQ vdso_zx_system_get_num_cpus(SB), AX |
| CALL AX |
| MOVL AX, ret+0(FP) |
| RET |
| |
| // func Sys_system_get_version(version *uint8, version_size uint) Status |
| TEXT ·Sys_system_get_version(SB),NOSPLIT,$0-20 |
| MOVQ version+0(FP), DI |
| MOVQ version_size+8(FP), SI |
| MOVQ vdso_zx_system_get_version(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_system_get_physmem() uint64 |
| TEXT ·Sys_system_get_physmem(SB),NOSPLIT,$0-8 |
| MOVQ vdso_zx_system_get_physmem(SB), AX |
| CALL AX |
| MOVQ AX, ret+0(FP) |
| RET |
| |
| // func sys_system_get_features(kind uint32, out *uint32) Status |
| TEXT ·sys_system_get_features(SB),NOSPLIT,$0-20 |
| MOVL kind+0(FP), DI |
| MOVQ out+8(FP), SI |
| MOVQ vdso_zx_system_get_features(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_cache_flush(addr unsafe.Pointer, size uint, options uint32) Status |
| TEXT ·Sys_cache_flush(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_handle_close(handle Handle) Status |
| TEXT ·Sys_handle_close(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVQ vdso_zx_handle_close(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_handle_close_many(handles *Handle, num_handles uint) Status |
| TEXT ·Sys_handle_close_many(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func sys_handle_duplicate(handle Handle, rights Rights, out *Handle) Status |
| TEXT ·sys_handle_duplicate(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_handle_replace(handle Handle, rights Rights, out *Handle) Status |
| TEXT ·Sys_handle_replace(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status |
| TEXT ·Sys_object_wait_one(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func sys_object_wait_many(items *WaitItem, count uint, deadline Time) Status |
| TEXT ·sys_object_wait_many(SB),NOSPLIT,$0-28 |
| CALL runtime·entersyscall(SB) |
| MOVQ items+0(FP), DI |
| MOVQ count+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) |
| RET |
| |
| // func Sys_object_wait_async(handle Handle, port Handle, key uint64, signals Signals, options uint32) Status |
| TEXT ·Sys_object_wait_async(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_object_signal(handle Handle, clear_mask uint32, set_mask uint32) Status |
| TEXT ·Sys_object_signal(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_object_signal_peer(handle Handle, clear_mask uint32, set_mask uint32) Status |
| TEXT ·Sys_object_signal_peer(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_object_get_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status |
| TEXT ·Sys_object_get_property(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_object_set_property(handle Handle, property uint32, value unsafe.Pointer, value_size uint) Status |
| TEXT ·Sys_object_set_property(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_object_set_cookie(handle Handle, scope Handle, cookie uint64) Status |
| TEXT ·Sys_object_set_cookie(SB),NOSPLIT,$0-20 |
| MOVL handle+0(FP), DI |
| MOVL scope+4(FP), SI |
| MOVQ cookie+8(FP), DX |
| MOVQ vdso_zx_object_set_cookie(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_object_get_cookie(handle Handle, scope Handle, cookie *uint64) Status |
| TEXT ·Sys_object_get_cookie(SB),NOSPLIT,$0-20 |
| MOVL handle+0(FP), DI |
| MOVL scope+4(FP), SI |
| MOVQ cookie+8(FP), DX |
| MOVQ vdso_zx_object_get_cookie(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_object_get_info(handle Handle, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual_count *uint, avail_count *uint) Status |
| TEXT ·Sys_object_get_info(SB),NOSPLIT,$0-44 |
| MOVL handle+0(FP), DI |
| MOVL topic+4(FP), SI |
| MOVQ buffer+8(FP), DX |
| MOVQ buffer_size+16(FP), CX |
| MOVQ actual_count+24(FP), R8 |
| MOVQ avail_count+32(FP), R9 |
| MOVQ vdso_zx_object_get_info(SB), AX |
| CALL AX |
| MOVL AX, ret+40(FP) |
| RET |
| |
| // func Sys_object_get_child(handle Handle, koid uint64, rights Rights, out *Handle) Status |
| TEXT ·Sys_object_get_child(SB),NOSPLIT,$0-36 |
| 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) |
| RET |
| |
| // func sys_object_set_profile(handle Handle, profile Handle, options uint32) Status |
| TEXT ·sys_object_set_profile(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func sys_channel_create(options uint32, out0 *Handle, out1 *Handle) Status |
| TEXT ·sys_channel_create(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // 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,$32-52 |
| 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) |
| RET |
| |
| // func sys_channel_read_etc(handle Handle, options uint32, bytes unsafe.Pointer, handles *int, num_bytes uint32, num_handles uint32, actual_bytes *uint32, actual_handles *uint32) Status |
| TEXT ·sys_channel_read_etc(SB),NOSPLIT,$32-52 |
| 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) |
| RET |
| |
| // 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-44 |
| 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) |
| RET |
| |
| // 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-44 |
| 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) |
| RET |
| |
| // func Sys_channel_call_finish(deadline Time, args *ChannelCallArgs, actual_bytes *uint32, actual_handles *uint32) Status |
| TEXT ·Sys_channel_call_finish(SB),NOSPLIT,$0-36 |
| 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) |
| RET |
| |
| // 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-44 |
| 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) |
| RET |
| |
| // func sys_socket_create(options uint32, out0 *Handle, out1 *Handle) Status |
| TEXT ·sys_socket_create(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func sys_socket_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status |
| TEXT ·sys_socket_write(SB),NOSPLIT,$0-36 |
| 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) |
| RET |
| |
| // func sys_socket_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status |
| TEXT ·sys_socket_read(SB),NOSPLIT,$0-36 |
| 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) |
| RET |
| |
| // func sys_socket_share(handle Handle, socket_to_share Handle) Status |
| TEXT ·sys_socket_share(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVL socket_to_share+4(FP), SI |
| MOVQ vdso_zx_socket_share(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func sys_socket_accept(handle Handle, out_socket *Handle) Status |
| TEXT ·sys_socket_accept(SB),NOSPLIT,$0-20 |
| MOVL handle+0(FP), DI |
| MOVQ out_socket+8(FP), SI |
| MOVQ vdso_zx_socket_accept(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_thread_exit() |
| TEXT ·Sys_thread_exit(SB),NOSPLIT,$0-0 |
| MOVQ vdso_zx_thread_exit(SB), AX |
| CALL AX |
| RET |
| |
| // func Sys_thread_create(process Handle, name *uint8, name_size uint, options uint32, out *Handle) Status |
| TEXT ·Sys_thread_create(SB),NOSPLIT,$0-44 |
| 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) |
| RET |
| |
| // func Sys_thread_start(handle Handle, thread_entry Vaddr, stack Vaddr, arg1 uintptr, arg2 uintptr) Status |
| TEXT ·Sys_thread_start(SB),NOSPLIT,$0-44 |
| 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) |
| RET |
| |
| // func Sys_thread_read_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status |
| TEXT ·Sys_thread_read_state(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_thread_write_state(handle Handle, kind uint32, buffer unsafe.Pointer, buffer_size uint) Status |
| TEXT ·Sys_thread_write_state(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_thread_set_priority(prio int32) Status |
| TEXT ·Sys_thread_set_priority(SB),NOSPLIT,$0-12 |
| MOVL prio+0(FP), DI |
| MOVQ vdso_zx_thread_set_priority(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_process_exit(retcode int64) |
| TEXT ·Sys_process_exit(SB),NOSPLIT,$0-8 |
| MOVQ retcode+0(FP), DI |
| MOVQ vdso_zx_process_exit(SB), AX |
| CALL AX |
| RET |
| |
| // 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-52 |
| 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) |
| RET |
| |
| // func Sys_process_start(handle Handle, thread Handle, entry Vaddr, stack Vaddr, arg1 Handle, arg2 uintptr) Status |
| TEXT ·Sys_process_start(SB),NOSPLIT,$0-44 |
| 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) |
| RET |
| |
| // func Sys_process_read_memory(proc Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status |
| TEXT ·Sys_process_read_memory(SB),NOSPLIT,$0-44 |
| MOVL proc+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) |
| RET |
| |
| // func Sys_process_write_memory(proc Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status |
| TEXT ·Sys_process_write_memory(SB),NOSPLIT,$0-44 |
| MOVL proc+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) |
| RET |
| |
| // func Sys_job_create(parent_job Handle, options uint32, out *Handle) Status |
| TEXT ·Sys_job_create(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_job_set_policy(job Handle, options uint32, topic uint32, policy unsafe.Pointer, count uint32) Status |
| TEXT ·Sys_job_set_policy(SB),NOSPLIT,$0-36 |
| MOVL job+0(FP), DI |
| MOVL options+4(FP), SI |
| MOVL topic+8(FP), DX |
| MOVQ policy+16(FP), CX |
| MOVL count+24(FP), R8 |
| MOVQ vdso_zx_job_set_policy(SB), AX |
| CALL AX |
| MOVL AX, ret+32(FP) |
| RET |
| |
| // func Sys_task_bind_exception_port(handle Handle, port Handle, key uint64, options uint32) Status |
| TEXT ·Sys_task_bind_exception_port(SB),NOSPLIT,$0-28 |
| MOVL handle+0(FP), DI |
| MOVL port+4(FP), SI |
| MOVQ key+8(FP), DX |
| MOVL options+16(FP), CX |
| MOVQ vdso_zx_task_bind_exception_port(SB), AX |
| CALL AX |
| MOVL AX, ret+24(FP) |
| RET |
| |
| // func Sys_task_resume(handle Handle, options uint32) Status |
| TEXT ·Sys_task_resume(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVL options+4(FP), SI |
| MOVQ vdso_zx_task_resume(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_task_suspend(handle Handle, token *Handle) Status |
| TEXT ·Sys_task_suspend(SB),NOSPLIT,$0-20 |
| MOVL handle+0(FP), DI |
| MOVQ token+8(FP), SI |
| MOVQ vdso_zx_task_suspend(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_task_suspend_token(handle Handle, token *Handle) Status |
| TEXT ·Sys_task_suspend_token(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_task_resume_from_exception(handle Handle, port Handle, options uint32) Status |
| TEXT ·Sys_task_resume_from_exception(SB),NOSPLIT,$0-20 |
| MOVL handle+0(FP), DI |
| MOVL port+4(FP), SI |
| MOVL options+8(FP), DX |
| MOVQ vdso_zx_task_resume_from_exception(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_task_kill(handle Handle) Status |
| TEXT ·Sys_task_kill(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVQ vdso_zx_task_kill(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_event_create(options uint32, out *Handle) Status |
| TEXT ·Sys_event_create(SB),NOSPLIT,$0-20 |
| MOVL options+0(FP), DI |
| MOVQ out+8(FP), SI |
| MOVQ vdso_zx_event_create(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_eventpair_create(options uint32, out0 *Handle, out1 *Handle) Status |
| TEXT ·Sys_eventpair_create(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_futex_wait(value_ptr *int, current_value int32, deadline Time) Status |
| TEXT ·Sys_futex_wait(SB),NOSPLIT,$0-28 |
| MOVQ value_ptr+0(FP), DI |
| MOVL current_value+8(FP), SI |
| MOVQ deadline+16(FP), DX |
| MOVQ vdso_zx_futex_wait(SB), AX |
| CALL AX |
| MOVL AX, ret+24(FP) |
| RET |
| |
| // func Sys_futex_wake(value_ptr *int, count uint32) Status |
| TEXT ·Sys_futex_wake(SB),NOSPLIT,$0-20 |
| MOVQ value_ptr+0(FP), DI |
| MOVL count+8(FP), SI |
| MOVQ vdso_zx_futex_wake(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_futex_requeue(wake_ptr *int, wake_count uint32, current_value int32, requeue_ptr *int, requeue_count uint32) Status |
| TEXT ·Sys_futex_requeue(SB),NOSPLIT,$0-36 |
| MOVQ wake_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 |
| MOVQ vdso_zx_futex_requeue(SB), AX |
| CALL AX |
| MOVL AX, ret+32(FP) |
| RET |
| |
| // func Sys_port_create(options uint32, out *Handle) Status |
| TEXT ·Sys_port_create(SB),NOSPLIT,$0-20 |
| MOVL options+0(FP), DI |
| MOVQ out+8(FP), SI |
| MOVQ vdso_zx_port_create(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_port_queue(handle Handle, packet *int) Status |
| TEXT ·Sys_port_queue(SB),NOSPLIT,$0-20 |
| MOVL handle+0(FP), DI |
| MOVQ packet+8(FP), SI |
| MOVQ vdso_zx_port_queue(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_port_wait(handle Handle, deadline Time, packet *int) Status |
| TEXT ·Sys_port_wait(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_port_cancel(handle Handle, source Handle, key uint64) Status |
| TEXT ·Sys_port_cancel(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_timer_create(options uint32, clock_id uint32, out *Handle) Status |
| TEXT ·Sys_timer_create(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_timer_set(handle Handle, deadline Time, slack Duration) Status |
| TEXT ·Sys_timer_set(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_timer_cancel(handle Handle) Status |
| TEXT ·Sys_timer_cancel(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVQ vdso_zx_timer_cancel(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_vmo_create(size uint64, options uint32, out *Handle) Status |
| TEXT ·Sys_vmo_create(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func sys_vmo_read(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status |
| TEXT ·sys_vmo_read(SB),NOSPLIT,$0-36 |
| 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) |
| RET |
| |
| // func sys_vmo_write(handle Handle, buffer unsafe.Pointer, offset uint64, buffer_size uint) Status |
| TEXT ·sys_vmo_write(SB),NOSPLIT,$0-36 |
| 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) |
| RET |
| |
| // func sys_vmo_get_size(handle Handle, size *uint64) Status |
| TEXT ·sys_vmo_get_size(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func sys_vmo_set_size(handle Handle, size uint64) Status |
| TEXT ·sys_vmo_set_size(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // 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-44 |
| 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) |
| RET |
| |
| // func Sys_vmo_clone(handle Handle, options uint32, offset uint64, size uint64, out *Handle) Status |
| TEXT ·Sys_vmo_clone(SB),NOSPLIT,$0-36 |
| 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_clone(SB), AX |
| CALL AX |
| MOVL AX, ret+32(FP) |
| RET |
| |
| // func Sys_vmo_set_cache_policy(handle Handle, cache_policy uint32) Status |
| TEXT ·Sys_vmo_set_cache_policy(SB),NOSPLIT,$0-12 |
| 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) |
| RET |
| |
| // func sys_vmar_allocate_old(parent_vmar Handle, offset uint64, size uint64, map_flags uint32, child_vmar *Handle, child_addr *Vaddr) Status |
| TEXT ·sys_vmar_allocate_old(SB),NOSPLIT,$0-52 |
| MOVL parent_vmar+0(FP), DI |
| MOVQ offset+8(FP), SI |
| MOVQ size+16(FP), DX |
| MOVL map_flags+24(FP), CX |
| MOVQ child_vmar+32(FP), R8 |
| MOVQ child_addr+40(FP), R9 |
| MOVQ vdso_zx_vmar_allocate_old(SB), AX |
| CALL AX |
| MOVL AX, ret+48(FP) |
| RET |
| |
| // func sys_vmar_map_old(handle Handle, vmar_offset uint64, vmo Handle, vmo_offset uint64, len uint64, map_flags uint32, mapped_addr *Vaddr) Status |
| TEXT ·sys_vmar_map_old(SB),NOSPLIT,$24-60 |
| MOVL handle+0(FP), DI |
| MOVQ vmar_offset+8(FP), SI |
| MOVL vmo+16(FP), DX |
| MOVQ vmo_offset+24(FP), CX |
| MOVQ len+32(FP), R8 |
| MOVL map_flags+40(FP), R9 |
| MOVQ mapped_addr+48(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_old(SB), AX |
| CALL AX |
| POPQ R12 |
| MOVQ BP, SP |
| MOVL AX, ret+56(FP) |
| RET |
| |
| // func sys_vmar_protect_old(handle Handle, addr Vaddr, len uint64, prot_flags uint32) Status |
| TEXT ·sys_vmar_protect_old(SB),NOSPLIT,$0-36 |
| MOVL handle+0(FP), DI |
| MOVQ addr+8(FP), SI |
| MOVQ len+16(FP), DX |
| MOVL prot_flags+24(FP), CX |
| MOVQ vdso_zx_vmar_protect_old(SB), AX |
| CALL AX |
| MOVL AX, ret+32(FP) |
| RET |
| |
| // func sys_vmar_allocate(parent_vmar Handle, offset uint64, size uint64, map_flags uint32, child_vmar *Handle, child_addr *Vaddr) Status |
| TEXT ·sys_vmar_allocate(SB),NOSPLIT,$0-52 |
| MOVL parent_vmar+0(FP), DI |
| MOVQ offset+8(FP), SI |
| MOVQ size+16(FP), DX |
| MOVL map_flags+24(FP), CX |
| MOVQ child_vmar+32(FP), R8 |
| MOVQ child_addr+40(FP), R9 |
| MOVQ vdso_zx_vmar_allocate(SB), AX |
| CALL AX |
| MOVL AX, ret+48(FP) |
| RET |
| |
| // func sys_vmar_destroy(handle Handle) Status |
| TEXT ·sys_vmar_destroy(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVQ vdso_zx_vmar_destroy(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_vmar_map(handle Handle, vmar_offset uint64, vmo Handle, vmo_offset uint64, len uint64, map_flags uint32, mapped_addr *Vaddr) Status |
| TEXT ·Sys_vmar_map(SB),NOSPLIT,$24-60 |
| MOVL handle+0(FP), DI |
| MOVQ vmar_offset+8(FP), SI |
| MOVL vmo+16(FP), DX |
| MOVQ vmo_offset+24(FP), CX |
| MOVQ len+32(FP), R8 |
| MOVL map_flags+40(FP), R9 |
| MOVQ mapped_addr+48(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+56(FP) |
| RET |
| |
| // func Sys_vmar_unmap(handle Handle, addr Vaddr, len uint64) Status |
| TEXT ·Sys_vmar_unmap(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_vmar_protect(handle Handle, addr Vaddr, len uint64, prot_flags uint32) Status |
| TEXT ·Sys_vmar_protect(SB),NOSPLIT,$0-36 |
| MOVL handle+0(FP), DI |
| MOVQ addr+8(FP), SI |
| MOVQ len+16(FP), DX |
| MOVL prot_flags+24(FP), CX |
| MOVQ vdso_zx_vmar_protect(SB), AX |
| CALL AX |
| MOVL AX, ret+32(FP) |
| RET |
| |
| // func Sys_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) Status |
| TEXT ·Sys_cprng_draw_once(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_cprng_draw(buffer unsafe.Pointer, buffer_size uint) |
| TEXT ·Sys_cprng_draw(SB),NOSPLIT,$0-16 |
| MOVQ buffer+0(FP), DI |
| MOVQ buffer_size+8(FP), SI |
| MOVQ vdso_zx_cprng_draw(SB), AX |
| CALL AX |
| RET |
| |
| // func Sys_cprng_draw_new(buffer unsafe.Pointer, data_size uint) Status |
| TEXT ·Sys_cprng_draw_new(SB),NOSPLIT,$0-20 |
| MOVQ buffer+0(FP), DI |
| MOVQ data_size+8(FP), SI |
| MOVQ vdso_zx_cprng_draw_new(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_cprng_add_entropy(buffer unsafe.Pointer, len uint) Status |
| TEXT ·Sys_cprng_add_entropy(SB),NOSPLIT,$0-20 |
| MOVQ buffer+0(FP), DI |
| MOVQ len+8(FP), SI |
| MOVQ vdso_zx_cprng_add_entropy(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_fifo_create(elem_count uint, elem_size uint, options uint32, out0 *Handle, out1 *Handle) Status |
| TEXT ·Sys_fifo_create(SB),NOSPLIT,$0-44 |
| 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) |
| RET |
| |
| // func Sys_fifo_read(handle Handle, elem_size uint, data unsafe.Pointer, count uint, actual_count *uint) Status |
| TEXT ·Sys_fifo_read(SB),NOSPLIT,$0-44 |
| 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_read(SB), AX |
| CALL AX |
| MOVL AX, ret+40(FP) |
| RET |
| |
| // 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-44 |
| 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) |
| RET |
| |
| // func Sys_profile_create(resource Handle, profile *int, out *Handle) Status |
| TEXT ·Sys_profile_create(SB),NOSPLIT,$0-28 |
| MOVL resource+0(FP), DI |
| MOVQ profile+8(FP), SI |
| MOVQ out+16(FP), DX |
| MOVQ vdso_zx_profile_create(SB), AX |
| CALL AX |
| MOVL AX, ret+24(FP) |
| RET |
| |
| // func Sys_vmar_unmap_handle_close_thread_exit(vmar_handle Handle, addr Vaddr, size uint, handle Handle) Status |
| TEXT ·Sys_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$0-36 |
| MOVL vmar_handle+0(FP), DI |
| MOVQ addr+8(FP), SI |
| MOVQ size+16(FP), DX |
| MOVL handle+24(FP), CX |
| MOVQ vdso_zx_vmar_unmap_handle_close_thread_exit(SB), AX |
| CALL AX |
| MOVL AX, ret+32(FP) |
| RET |
| |
| // func Sys_futex_wake_handle_close_thread_exit(value_ptr *int, count uint32, new_value int32, handle Handle) |
| TEXT ·Sys_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$0-24 |
| MOVQ value_ptr+0(FP), DI |
| MOVL count+8(FP), SI |
| MOVL new_value+12(FP), DX |
| MOVL handle+16(FP), CX |
| MOVQ vdso_zx_futex_wake_handle_close_thread_exit(SB), AX |
| CALL AX |
| RET |
| |
| // func Sys_log_write(handle Handle, len uint32, buffer unsafe.Pointer, options uint32) Status |
| TEXT ·Sys_log_write(SB),NOSPLIT,$0-28 |
| MOVL handle+0(FP), DI |
| MOVL len+4(FP), SI |
| MOVQ buffer+8(FP), DX |
| MOVL options+16(FP), CX |
| MOVQ vdso_zx_log_write(SB), AX |
| CALL AX |
| MOVL AX, ret+24(FP) |
| RET |
| |
| // func Sys_log_read(handle Handle, len uint32, buffer unsafe.Pointer, options uint32) Status |
| TEXT ·Sys_log_read(SB),NOSPLIT,$0-28 |
| MOVL handle+0(FP), DI |
| MOVL len+4(FP), SI |
| MOVQ buffer+8(FP), DX |
| MOVL options+16(FP), CX |
| MOVQ vdso_zx_log_read(SB), AX |
| CALL AX |
| MOVL AX, ret+24(FP) |
| RET |
| |
| // func Sys_debuglog_create(resource Handle, options uint32, out *Handle) Status |
| TEXT ·Sys_debuglog_create(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_debuglog_write(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status |
| TEXT ·Sys_debuglog_write(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_debuglog_read(handle Handle, options uint32, buffer unsafe.Pointer, buffer_size uint) Status |
| TEXT ·Sys_debuglog_read(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_ktrace_read(handle Handle, data unsafe.Pointer, offset uint32, data_size uint, actual *uint) Status |
| TEXT ·Sys_ktrace_read(SB),NOSPLIT,$0-44 |
| 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) |
| RET |
| |
| // func Sys_ktrace_control(handle Handle, action uint32, options uint32, ptr unsafe.Pointer) Status |
| TEXT ·Sys_ktrace_control(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_ktrace_write(handle Handle, id uint32, arg0 uint32, arg1 uint32) Status |
| TEXT ·Sys_ktrace_write(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // 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-36 |
| 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) |
| RET |
| |
| // func Sys_debug_read(handle Handle, buffer *uint8, buffer_size *uint) Status |
| TEXT ·Sys_debug_read(SB),NOSPLIT,$0-28 |
| MOVL handle+0(FP), DI |
| MOVQ buffer+8(FP), SI |
| MOVQ buffer_size+16(FP), DX |
| MOVQ vdso_zx_debug_read(SB), AX |
| CALL AX |
| MOVL AX, ret+24(FP) |
| RET |
| |
| // func Sys_debug_write(buffer *uint8, buffer_size uint) Status |
| TEXT ·Sys_debug_write(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_debug_send_command(resource Handle, buffer *uint8, buffer_size uint) Status |
| TEXT ·Sys_debug_send_command(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_interrupt_create(src_obj Handle, src_num uint32, options uint32, out *Handle) Status |
| TEXT ·Sys_interrupt_create(SB),NOSPLIT,$0-28 |
| MOVL src_obj+0(FP), DI |
| MOVL src_num+4(FP), SI |
| MOVL options+8(FP), DX |
| MOVQ out+16(FP), CX |
| MOVQ vdso_zx_interrupt_create(SB), AX |
| CALL AX |
| MOVL AX, ret+24(FP) |
| RET |
| |
| // func Sys_interrupt_bind(handle Handle, port Handle, key uint64, options uint32) Status |
| TEXT ·Sys_interrupt_bind(SB),NOSPLIT,$0-28 |
| MOVL handle+0(FP), DI |
| MOVL port+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) |
| RET |
| |
| // func Sys_interrupt_wait(handle Handle, out_timestamp *Time) Status |
| TEXT ·Sys_interrupt_wait(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_interrupt_destroy(handle Handle) Status |
| TEXT ·Sys_interrupt_destroy(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVQ vdso_zx_interrupt_destroy(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_interrupt_ack(handle Handle) Status |
| TEXT ·Sys_interrupt_ack(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVQ vdso_zx_interrupt_ack(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_interrupt_trigger(handle Handle, options uint32, timestamp Time) Status |
| TEXT ·Sys_interrupt_trigger(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_ioports_request(resource Handle, io_addr uint16, len uint32) Status |
| TEXT ·Sys_ioports_request(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |
| // func Sys_vmo_create_contiguous(bti Handle, size uint, alignment_log2 uint32, out *Handle) Status |
| TEXT ·Sys_vmo_create_contiguous(SB),NOSPLIT,$0-36 |
| 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) |
| RET |
| |
| // func Sys_vmo_create_physical(resource Handle, paddr Paddr, size uint, out *Handle) Status |
| TEXT ·Sys_vmo_create_physical(SB),NOSPLIT,$0-36 |
| 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) |
| RET |
| |
| // func Sys_iommu_create(resource Handle, typ uint32, desc unsafe.Pointer, desc_size uint, out *Handle) Status |
| TEXT ·Sys_iommu_create(SB),NOSPLIT,$0-36 |
| 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) |
| RET |
| |
| // func Sys_bti_create(iommu Handle, options uint32, bti_id uint64, out *Handle) Status |
| TEXT ·Sys_bti_create(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_bti_pin(handle Handle, options uint32, vmo Handle, offset uint64, size uint64, addrs *Paddr, addrs_count uint, out *Handle) Status |
| TEXT ·Sys_bti_pin(SB),NOSPLIT,$32-60 |
| 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 addrs_count+40(FP), R12 |
| MOVQ out+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) |
| RET |
| |
| // func Sys_bti_release_quarantine(handle Handle) Status |
| TEXT ·Sys_bti_release_quarantine(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVQ vdso_zx_bti_release_quarantine(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_pmt_unpin(handle Handle) Status |
| TEXT ·Sys_pmt_unpin(SB),NOSPLIT,$0-12 |
| MOVL handle+0(FP), DI |
| MOVQ vdso_zx_pmt_unpin(SB), AX |
| CALL AX |
| MOVL AX, ret+8(FP) |
| RET |
| |
| // func Sys_framebuffer_get_info(resource Handle, format *uint32, width *uint32, height *uint32, stride *uint32) Status |
| TEXT ·Sys_framebuffer_get_info(SB),NOSPLIT,$0-44 |
| 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) |
| RET |
| |
| // 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,$24-36 |
| 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) |
| RET |
| |
| // func Sys_pc_firmware_tables(handle Handle, acpi_rsdp *Paddr, smbios *Paddr) Status |
| TEXT ·Sys_pc_firmware_tables(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // func Sys_smc_call(handle Handle, parameters *SMCParameters, out_smc_result *SMCResult) Status |
| TEXT ·Sys_smc_call(SB),NOSPLIT,$0-28 |
| 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) |
| RET |
| |
| // 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,$24-52 |
| 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) |
| RET |
| |
| // func Sys_system_mexec(resource Handle, kernel Handle, bootimage Handle) Status |
| TEXT ·Sys_system_mexec(SB),NOSPLIT,$0-20 |
| MOVL resource+0(FP), DI |
| MOVL kernel+4(FP), SI |
| MOVL bootimage+8(FP), DX |
| MOVQ vdso_zx_system_mexec(SB), AX |
| CALL AX |
| MOVL AX, ret+16(FP) |
| RET |
| |
| // func Sys_system_powerctl(resource Handle, cmd uint32, arg *int) Status |
| TEXT ·Sys_system_powerctl(SB),NOSPLIT,$0-20 |
| 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) |
| RET |
| |