// Copyright 2018 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.

package zx

import "unsafe"

//go:noescape
//go:nosplit
func Sys_clock_get(clock_id uint32) Time

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

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

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

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

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

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

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

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

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

//go:noescape
//go:nosplit
func Sys_system_get_version(version *uint8, version_size uint) Status

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

//go:noescape
//go:nosplit
func sys_system_get_features(kind uint32, out *uint32) Status

//go:noescape
//go:nosplit
func Sys_cache_flush(addr unsafe.Pointer, size uint, options uint32) 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_object_wait_one(handle Handle, signals Signals, deadline Time, observed *Signals) Status

//go:noescape
//go:nosplit
func sys_object_wait_many(items *WaitItem, count 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_set_cookie(handle Handle, scope Handle, cookie uint64) Status

//go:noescape
//go:nosplit
func Sys_object_get_cookie(handle Handle, scope Handle, cookie *uint64) Status

//go:noescape
//go:nosplit
func Sys_object_get_info(handle Handle, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual_count *uint, avail_count *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_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 *int, 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_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_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_share(handle Handle, socket_to_share Handle) Status

//go:noescape
//go:nosplit
func sys_socket_accept(handle Handle, out_socket *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_set_priority(prio int32) 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(proc Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) Status

//go:noescape
//go:nosplit
func Sys_process_write_memory(proc Handle, vaddr Vaddr, buffer unsafe.Pointer, buffer_size uint, actual *uint) 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(job Handle, options uint32, topic uint32, policy unsafe.Pointer, count uint32) Status

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

//go:noescape
//go:nosplit
func Sys_task_resume(handle Handle, options uint32) 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_resume_from_exception(handle Handle, port Handle, options uint32) Status

//go:noescape
//go:nosplit
func Sys_task_kill(handle Handle) 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_futex_wait(value_ptr *int, current_value int32, deadline Time) Status

//go:noescape
//go:nosplit
func Sys_futex_wake(value_ptr *int, count uint32) Status

//go:noescape
//go:nosplit
func Sys_futex_requeue(wake_ptr *int, wake_count uint32, current_value int32, requeue_ptr *int, requeue_count uint32) 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_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_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_clone(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_vmar_allocate_old(parent_vmar Handle, offset uint64, size uint64, map_flags uint32, child_vmar *Handle, child_addr *Vaddr) Status

//go:noescape
//go:nosplit
func sys_vmar_map_old(handle Handle, vmar_offset uint64, vmo Handle, vmo_offset uint64, len uint64, map_flags uint32, mapped_addr *Vaddr) Status

//go:noescape
//go:nosplit
func sys_vmar_protect_old(handle Handle, addr Vaddr, len uint64, prot_flags uint32) Status

//go:noescape
//go:nosplit
func sys_vmar_allocate(parent_vmar Handle, options VMFlag, offset uint64, size uint64, 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 uint64, vmo Handle, vmo_offset uint64, len uint64, mapped_addr *Vaddr) Status

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

//go:noescape
//go:nosplit
func Sys_vmar_protect(handle Handle, options VMFlag, addr Vaddr, len uint64) 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, len uint) 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, count 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_profile_create(resource Handle, profile *int, out *Handle) Status

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

//go:noescape
//go:nosplit
func Sys_futex_wake_handle_close_thread_exit(value_ptr *int, count uint32, new_value int32, handle Handle)

//go:noescape
//go:nosplit
func Sys_log_write(handle Handle, len uint32, buffer unsafe.Pointer, options uint32) Status

//go:noescape
//go:nosplit
func Sys_log_read(handle Handle, len uint32, buffer unsafe.Pointer, options uint32) 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_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_mtrace_control(handle Handle, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) Status

//go:noescape
//go:nosplit
func Sys_debug_read(handle Handle, buffer *uint8, buffer_size *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_interrupt_create(src_obj Handle, src_num uint32, options uint32, out *Handle) Status

//go:noescape
//go:nosplit
func Sys_interrupt_bind(handle Handle, port 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_ioports_request(resource Handle, io_addr uint16, len uint32) 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: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_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, addrs_count uint, out *Handle) Status

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

//go:noescape
//go:nosplit
func Sys_pmt_unpin(handle Handle) 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_pc_firmware_tables(handle Handle, acpi_rsdp *Paddr, smbios *Paddr) Status

//go:noescape
//go:nosplit
func Sys_smc_call(handle Handle, parameters *SMCParameters, out_smc_result *SMCResult) 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_system_mexec(resource Handle, kernel Handle, bootimage Handle) Status

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

