aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/cloudabi/cloudabi_vdso_aarch64.c')
-rw-r--r--sys/contrib/cloudabi/cloudabi_vdso_aarch64.c1610
1 files changed, 0 insertions, 1610 deletions
diff --git a/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c b/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c
deleted file mode 100644
index 0c7abf72baa6..000000000000
--- a/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c
+++ /dev/null
@@ -1,1610 +0,0 @@
-// Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-// SUCH DAMAGE.
-//
-// This file is automatically generated. Do not edit.
-//
-// Source: https://github.com/NuxiNL/cloudabi
-
-#include <cloudabi_types.h>
-
-cloudabi_errno_t
-cloudabi_sys_clock_res_get(
- cloudabi_clockid_t clock_id,
- cloudabi_timestamp_t *resolution
-) {
- register uint64_t reg_x8 asm("x8") = 0;
- register uint64_t reg_x0 asm("x0") = (uint64_t)clock_id;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *resolution = (cloudabi_timestamp_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_clock_time_get(
- cloudabi_clockid_t clock_id,
- cloudabi_timestamp_t precision,
- cloudabi_timestamp_t *time
-) {
- register uint64_t reg_x8 asm("x8") = 1;
- register uint64_t reg_x0 asm("x0") = (uint64_t)clock_id;
- register uint64_t reg_x1 asm("x1") = (uint64_t)precision;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *time = (cloudabi_timestamp_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_condvar_signal(
- _Atomic(cloudabi_condvar_t) *condvar,
- cloudabi_scope_t scope,
- cloudabi_nthreads_t nwaiters
-) {
- register uint64_t reg_x8 asm("x8") = 2;
- register uint64_t reg_x0 asm("x0") = (uint64_t)condvar;
- register uint64_t reg_x1 asm("x1") = (uint64_t)scope;
- register uint64_t reg_x2 asm("x2") = (uint64_t)nwaiters;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_close(
- cloudabi_fd_t fd
-) {
- register uint64_t reg_x8 asm("x8") = 3;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_create1(
- cloudabi_filetype_t type,
- cloudabi_fd_t *fd
-) {
- register uint64_t reg_x8 asm("x8") = 4;
- register uint64_t reg_x0 asm("x0") = (uint64_t)type;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *fd = (cloudabi_fd_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_create2(
- cloudabi_filetype_t type,
- cloudabi_fd_t *fd1,
- cloudabi_fd_t *fd2
-) {
- register uint64_t reg_x8 asm("x8") = 5;
- register uint64_t reg_x0 asm("x0") = (uint64_t)type;
- register uint64_t reg_x1 asm("x1");
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- , "=r"(reg_x1)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *fd1 = (cloudabi_fd_t)reg_x0;
- *fd2 = (cloudabi_fd_t)reg_x1;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_datasync(
- cloudabi_fd_t fd
-) {
- register uint64_t reg_x8 asm("x8") = 6;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_dup(
- cloudabi_fd_t from,
- cloudabi_fd_t *fd
-) {
- register uint64_t reg_x8 asm("x8") = 7;
- register uint64_t reg_x0 asm("x0") = (uint64_t)from;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *fd = (cloudabi_fd_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_pread(
- cloudabi_fd_t fd,
- const cloudabi_iovec_t *iov,
- size_t iovcnt,
- cloudabi_filesize_t offset,
- size_t *nread
-) {
- register uint64_t reg_x8 asm("x8") = 8;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)iov;
- register uint64_t reg_x2 asm("x2") = (uint64_t)iovcnt;
- register uint64_t reg_x3 asm("x3") = (uint64_t)offset;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *nread = (size_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_pwrite(
- cloudabi_fd_t fd,
- const cloudabi_ciovec_t *iov,
- size_t iovcnt,
- cloudabi_filesize_t offset,
- size_t *nwritten
-) {
- register uint64_t reg_x8 asm("x8") = 9;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)iov;
- register uint64_t reg_x2 asm("x2") = (uint64_t)iovcnt;
- register uint64_t reg_x3 asm("x3") = (uint64_t)offset;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *nwritten = (size_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_read(
- cloudabi_fd_t fd,
- const cloudabi_iovec_t *iov,
- size_t iovcnt,
- size_t *nread
-) {
- register uint64_t reg_x8 asm("x8") = 10;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)iov;
- register uint64_t reg_x2 asm("x2") = (uint64_t)iovcnt;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *nread = (size_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_replace(
- cloudabi_fd_t from,
- cloudabi_fd_t to
-) {
- register uint64_t reg_x8 asm("x8") = 11;
- register uint64_t reg_x0 asm("x0") = (uint64_t)from;
- register uint64_t reg_x1 asm("x1") = (uint64_t)to;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_seek(
- cloudabi_fd_t fd,
- cloudabi_filedelta_t offset,
- cloudabi_whence_t whence,
- cloudabi_filesize_t *newoffset
-) {
- register uint64_t reg_x8 asm("x8") = 12;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)offset;
- register uint64_t reg_x2 asm("x2") = (uint64_t)whence;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *newoffset = (cloudabi_filesize_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_stat_get(
- cloudabi_fd_t fd,
- cloudabi_fdstat_t *buf
-) {
- register uint64_t reg_x8 asm("x8") = 13;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)buf;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_stat_put(
- cloudabi_fd_t fd,
- const cloudabi_fdstat_t *buf,
- cloudabi_fdsflags_t flags
-) {
- register uint64_t reg_x8 asm("x8") = 14;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)buf;
- register uint64_t reg_x2 asm("x2") = (uint64_t)flags;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_sync(
- cloudabi_fd_t fd
-) {
- register uint64_t reg_x8 asm("x8") = 15;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_fd_write(
- cloudabi_fd_t fd,
- const cloudabi_ciovec_t *iov,
- size_t iovcnt,
- size_t *nwritten
-) {
- register uint64_t reg_x8 asm("x8") = 16;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)iov;
- register uint64_t reg_x2 asm("x2") = (uint64_t)iovcnt;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *nwritten = (size_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_advise(
- cloudabi_fd_t fd,
- cloudabi_filesize_t offset,
- cloudabi_filesize_t len,
- cloudabi_advice_t advice
-) {
- register uint64_t reg_x8 asm("x8") = 17;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)offset;
- register uint64_t reg_x2 asm("x2") = (uint64_t)len;
- register uint64_t reg_x3 asm("x3") = (uint64_t)advice;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_allocate(
- cloudabi_fd_t fd,
- cloudabi_filesize_t offset,
- cloudabi_filesize_t len
-) {
- register uint64_t reg_x8 asm("x8") = 18;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)offset;
- register uint64_t reg_x2 asm("x2") = (uint64_t)len;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_create(
- cloudabi_fd_t fd,
- const char *path,
- size_t pathlen,
- cloudabi_filetype_t type
-) {
- register uint64_t reg_x8 asm("x8") = 19;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)path;
- register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen;
- register uint64_t reg_x3 asm("x3") = (uint64_t)type;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_link(
- cloudabi_lookup_t fd1,
- const char *path1,
- size_t path1len,
- cloudabi_fd_t fd2,
- const char *path2,
- size_t path2len
-) {
- register uint64_t reg_x8 asm("x8") = 20;
- register uint64_t reg_x0 asm("x0") = *(uint64_t *)&fd1;
- register uint64_t reg_x1 asm("x1") = (uint64_t)path1;
- register uint64_t reg_x2 asm("x2") = (uint64_t)path1len;
- register uint64_t reg_x3 asm("x3") = (uint64_t)fd2;
- register uint64_t reg_x4 asm("x4") = (uint64_t)path2;
- register uint64_t reg_x5 asm("x5") = (uint64_t)path2len;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- , "r"(reg_x4)
- , "r"(reg_x5)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_open(
- cloudabi_lookup_t dirfd,
- const char *path,
- size_t pathlen,
- cloudabi_oflags_t oflags,
- const cloudabi_fdstat_t *fds,
- cloudabi_fd_t *fd
-) {
- register uint64_t reg_x8 asm("x8") = 21;
- register uint64_t reg_x0 asm("x0") = *(uint64_t *)&dirfd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)path;
- register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen;
- register uint64_t reg_x3 asm("x3") = (uint64_t)oflags;
- register uint64_t reg_x4 asm("x4") = (uint64_t)fds;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- , "r"(reg_x4)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *fd = (cloudabi_fd_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_readdir(
- cloudabi_fd_t fd,
- void *buf,
- size_t nbyte,
- cloudabi_dircookie_t cookie,
- size_t *bufused
-) {
- register uint64_t reg_x8 asm("x8") = 22;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)buf;
- register uint64_t reg_x2 asm("x2") = (uint64_t)nbyte;
- register uint64_t reg_x3 asm("x3") = (uint64_t)cookie;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *bufused = (size_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_readlink(
- cloudabi_fd_t fd,
- const char *path,
- size_t pathlen,
- char *buf,
- size_t bufsize,
- size_t *bufused
-) {
- register uint64_t reg_x8 asm("x8") = 23;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)path;
- register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen;
- register uint64_t reg_x3 asm("x3") = (uint64_t)buf;
- register uint64_t reg_x4 asm("x4") = (uint64_t)bufsize;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- , "r"(reg_x4)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *bufused = (size_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_rename(
- cloudabi_fd_t oldfd,
- const char *old,
- size_t oldlen,
- cloudabi_fd_t newfd,
- const char *new,
- size_t newlen
-) {
- register uint64_t reg_x8 asm("x8") = 24;
- register uint64_t reg_x0 asm("x0") = (uint64_t)oldfd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)old;
- register uint64_t reg_x2 asm("x2") = (uint64_t)oldlen;
- register uint64_t reg_x3 asm("x3") = (uint64_t)newfd;
- register uint64_t reg_x4 asm("x4") = (uint64_t)new;
- register uint64_t reg_x5 asm("x5") = (uint64_t)newlen;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- , "r"(reg_x4)
- , "r"(reg_x5)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_stat_fget(
- cloudabi_fd_t fd,
- cloudabi_filestat_t *buf
-) {
- register uint64_t reg_x8 asm("x8") = 25;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)buf;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_stat_fput(
- cloudabi_fd_t fd,
- const cloudabi_filestat_t *buf,
- cloudabi_fsflags_t flags
-) {
- register uint64_t reg_x8 asm("x8") = 26;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)buf;
- register uint64_t reg_x2 asm("x2") = (uint64_t)flags;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_stat_get(
- cloudabi_lookup_t fd,
- const char *path,
- size_t pathlen,
- cloudabi_filestat_t *buf
-) {
- register uint64_t reg_x8 asm("x8") = 27;
- register uint64_t reg_x0 asm("x0") = *(uint64_t *)&fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)path;
- register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen;
- register uint64_t reg_x3 asm("x3") = (uint64_t)buf;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_stat_put(
- cloudabi_lookup_t fd,
- const char *path,
- size_t pathlen,
- const cloudabi_filestat_t *buf,
- cloudabi_fsflags_t flags
-) {
- register uint64_t reg_x8 asm("x8") = 28;
- register uint64_t reg_x0 asm("x0") = *(uint64_t *)&fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)path;
- register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen;
- register uint64_t reg_x3 asm("x3") = (uint64_t)buf;
- register uint64_t reg_x4 asm("x4") = (uint64_t)flags;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- , "r"(reg_x4)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_symlink(
- const char *path1,
- size_t path1len,
- cloudabi_fd_t fd,
- const char *path2,
- size_t path2len
-) {
- register uint64_t reg_x8 asm("x8") = 29;
- register uint64_t reg_x0 asm("x0") = (uint64_t)path1;
- register uint64_t reg_x1 asm("x1") = (uint64_t)path1len;
- register uint64_t reg_x2 asm("x2") = (uint64_t)fd;
- register uint64_t reg_x3 asm("x3") = (uint64_t)path2;
- register uint64_t reg_x4 asm("x4") = (uint64_t)path2len;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- , "r"(reg_x4)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_file_unlink(
- cloudabi_fd_t fd,
- const char *path,
- size_t pathlen,
- cloudabi_ulflags_t flags
-) {
- register uint64_t reg_x8 asm("x8") = 30;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)path;
- register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen;
- register uint64_t reg_x3 asm("x3") = (uint64_t)flags;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_lock_unlock(
- _Atomic(cloudabi_lock_t) *lock,
- cloudabi_scope_t scope
-) {
- register uint64_t reg_x8 asm("x8") = 31;
- register uint64_t reg_x0 asm("x0") = (uint64_t)lock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)scope;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_mem_advise(
- void *addr,
- size_t len,
- cloudabi_advice_t advice
-) {
- register uint64_t reg_x8 asm("x8") = 32;
- register uint64_t reg_x0 asm("x0") = (uint64_t)addr;
- register uint64_t reg_x1 asm("x1") = (uint64_t)len;
- register uint64_t reg_x2 asm("x2") = (uint64_t)advice;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_mem_lock(
- const void *addr,
- size_t len
-) {
- register uint64_t reg_x8 asm("x8") = 33;
- register uint64_t reg_x0 asm("x0") = (uint64_t)addr;
- register uint64_t reg_x1 asm("x1") = (uint64_t)len;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_mem_map(
- void *addr,
- size_t len,
- cloudabi_mprot_t prot,
- cloudabi_mflags_t flags,
- cloudabi_fd_t fd,
- cloudabi_filesize_t off,
- void **mem
-) {
- register uint64_t reg_x8 asm("x8") = 34;
- register uint64_t reg_x0 asm("x0") = (uint64_t)addr;
- register uint64_t reg_x1 asm("x1") = (uint64_t)len;
- register uint64_t reg_x2 asm("x2") = (uint64_t)prot;
- register uint64_t reg_x3 asm("x3") = (uint64_t)flags;
- register uint64_t reg_x4 asm("x4") = (uint64_t)fd;
- register uint64_t reg_x5 asm("x5") = (uint64_t)off;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- , "r"(reg_x4)
- , "r"(reg_x5)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *mem = (void *)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_mem_protect(
- void *addr,
- size_t len,
- cloudabi_mprot_t prot
-) {
- register uint64_t reg_x8 asm("x8") = 35;
- register uint64_t reg_x0 asm("x0") = (uint64_t)addr;
- register uint64_t reg_x1 asm("x1") = (uint64_t)len;
- register uint64_t reg_x2 asm("x2") = (uint64_t)prot;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_mem_sync(
- void *addr,
- size_t len,
- cloudabi_msflags_t flags
-) {
- register uint64_t reg_x8 asm("x8") = 36;
- register uint64_t reg_x0 asm("x0") = (uint64_t)addr;
- register uint64_t reg_x1 asm("x1") = (uint64_t)len;
- register uint64_t reg_x2 asm("x2") = (uint64_t)flags;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_mem_unlock(
- const void *addr,
- size_t len
-) {
- register uint64_t reg_x8 asm("x8") = 37;
- register uint64_t reg_x0 asm("x0") = (uint64_t)addr;
- register uint64_t reg_x1 asm("x1") = (uint64_t)len;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_mem_unmap(
- void *addr,
- size_t len
-) {
- register uint64_t reg_x8 asm("x8") = 38;
- register uint64_t reg_x0 asm("x0") = (uint64_t)addr;
- register uint64_t reg_x1 asm("x1") = (uint64_t)len;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_poll(
- const cloudabi_subscription_t *in,
- cloudabi_event_t *out,
- size_t nsubscriptions,
- size_t *nevents
-) {
- register uint64_t reg_x8 asm("x8") = 39;
- register uint64_t reg_x0 asm("x0") = (uint64_t)in;
- register uint64_t reg_x1 asm("x1") = (uint64_t)out;
- register uint64_t reg_x2 asm("x2") = (uint64_t)nsubscriptions;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *nevents = (size_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_poll_fd(
- cloudabi_fd_t fd,
- const cloudabi_subscription_t *in,
- size_t nin,
- cloudabi_event_t *out,
- size_t nout,
- const cloudabi_subscription_t *timeout,
- size_t *nevents
-) {
- register uint64_t reg_x8 asm("x8") = 57;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)in;
- register uint64_t reg_x2 asm("x2") = (uint64_t)nin;
- register uint64_t reg_x3 asm("x3") = (uint64_t)out;
- register uint64_t reg_x4 asm("x4") = (uint64_t)nout;
- register uint64_t reg_x5 asm("x5") = (uint64_t)timeout;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- , "r"(reg_x4)
- , "r"(reg_x5)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *nevents = (size_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_proc_exec(
- cloudabi_fd_t fd,
- const void *data,
- size_t datalen,
- const cloudabi_fd_t *fds,
- size_t fdslen
-) {
- register uint64_t reg_x8 asm("x8") = 40;
- register uint64_t reg_x0 asm("x0") = (uint64_t)fd;
- register uint64_t reg_x1 asm("x1") = (uint64_t)data;
- register uint64_t reg_x2 asm("x2") = (uint64_t)datalen;
- register uint64_t reg_x3 asm("x3") = (uint64_t)fds;
- register uint64_t reg_x4 asm("x4") = (uint64_t)fdslen;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- , "r"(reg_x4)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-_Noreturn void
-cloudabi_sys_proc_exit(
- cloudabi_exitcode_t rval
-) {
- register uint64_t reg_x8 asm("x8") = 41;
- register uint64_t reg_x0 asm("x0") = (uint64_t)rval;
- asm volatile (
- "\tsvc 0\n"
- :
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- for (;;);
-}
-
-cloudabi_errno_t
-cloudabi_sys_proc_fork(
- cloudabi_fd_t *fd,
- cloudabi_tid_t *tid
-) {
- register uint64_t reg_x8 asm("x8") = 42;
- register uint64_t reg_x0 asm("x0");
- register uint64_t reg_x1 asm("x1");
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- , "=r"(reg_x1)
- : "r"(reg_x8)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *fd = (cloudabi_fd_t)reg_x0;
- *tid = (cloudabi_tid_t)reg_x1;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_proc_raise(
- cloudabi_signal_t sig
-) {
- register uint64_t reg_x8 asm("x8") = 43;
- register uint64_t reg_x0 asm("x0") = (uint64_t)sig;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_random_get(
- void *buf,
- size_t nbyte
-) {
- register uint64_t reg_x8 asm("x8") = 44;
- register uint64_t reg_x0 asm("x0") = (uint64_t)buf;
- register uint64_t reg_x1 asm("x1") = (uint64_t)nbyte;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_sock_accept(
- cloudabi_fd_t sock,
- cloudabi_sockstat_t *buf,
- cloudabi_fd_t *conn
-) {
- register uint64_t reg_x8 asm("x8") = 45;
- register uint64_t reg_x0 asm("x0") = (uint64_t)sock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)buf;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *conn = (cloudabi_fd_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_sock_bind(
- cloudabi_fd_t sock,
- cloudabi_fd_t fd,
- const char *path,
- size_t pathlen
-) {
- register uint64_t reg_x8 asm("x8") = 46;
- register uint64_t reg_x0 asm("x0") = (uint64_t)sock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)fd;
- register uint64_t reg_x2 asm("x2") = (uint64_t)path;
- register uint64_t reg_x3 asm("x3") = (uint64_t)pathlen;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_sock_connect(
- cloudabi_fd_t sock,
- cloudabi_fd_t fd,
- const char *path,
- size_t pathlen
-) {
- register uint64_t reg_x8 asm("x8") = 47;
- register uint64_t reg_x0 asm("x0") = (uint64_t)sock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)fd;
- register uint64_t reg_x2 asm("x2") = (uint64_t)path;
- register uint64_t reg_x3 asm("x3") = (uint64_t)pathlen;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- , "r"(reg_x3)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_sock_listen(
- cloudabi_fd_t sock,
- cloudabi_backlog_t backlog
-) {
- register uint64_t reg_x8 asm("x8") = 48;
- register uint64_t reg_x0 asm("x0") = (uint64_t)sock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)backlog;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_sock_recv(
- cloudabi_fd_t sock,
- const cloudabi_recv_in_t *in,
- cloudabi_recv_out_t *out
-) {
- register uint64_t reg_x8 asm("x8") = 49;
- register uint64_t reg_x0 asm("x0") = (uint64_t)sock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)in;
- register uint64_t reg_x2 asm("x2") = (uint64_t)out;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_sock_send(
- cloudabi_fd_t sock,
- const cloudabi_send_in_t *in,
- cloudabi_send_out_t *out
-) {
- register uint64_t reg_x8 asm("x8") = 50;
- register uint64_t reg_x0 asm("x0") = (uint64_t)sock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)in;
- register uint64_t reg_x2 asm("x2") = (uint64_t)out;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_sock_shutdown(
- cloudabi_fd_t sock,
- cloudabi_sdflags_t how
-) {
- register uint64_t reg_x8 asm("x8") = 51;
- register uint64_t reg_x0 asm("x0") = (uint64_t)sock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)how;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_sock_stat_get(
- cloudabi_fd_t sock,
- cloudabi_sockstat_t *buf,
- cloudabi_ssflags_t flags
-) {
- register uint64_t reg_x8 asm("x8") = 52;
- register uint64_t reg_x0 asm("x0") = (uint64_t)sock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)buf;
- register uint64_t reg_x2 asm("x2") = (uint64_t)flags;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- , "r"(reg_x2)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_thread_create(
- cloudabi_threadattr_t *attr,
- cloudabi_tid_t *tid
-) {
- register uint64_t reg_x8 asm("x8") = 53;
- register uint64_t reg_x0 asm("x0") = (uint64_t)attr;
- register uint64_t okay;
- asm volatile (
- "\tsvc 0\n"
- "\tcset %0, cc\n"
- : "=r"(okay)
- , "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- if (okay) {
- *tid = (cloudabi_tid_t)reg_x0;
- return 0;
- }
- return reg_x0;
-}
-
-_Noreturn void
-cloudabi_sys_thread_exit(
- _Atomic(cloudabi_lock_t) *lock,
- cloudabi_scope_t scope
-) {
- register uint64_t reg_x8 asm("x8") = 54;
- register uint64_t reg_x0 asm("x0") = (uint64_t)lock;
- register uint64_t reg_x1 asm("x1") = (uint64_t)scope;
- asm volatile (
- "\tsvc 0\n"
- :
- : "r"(reg_x8)
- , "r"(reg_x0)
- , "r"(reg_x1)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- for (;;);
-}
-
-cloudabi_errno_t
-cloudabi_sys_thread_tcb_set(
- void *tcb
-) {
- register uint64_t reg_x8 asm("x8") = 55;
- register uint64_t reg_x0 asm("x0") = (uint64_t)tcb;
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- , "r"(reg_x0)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-
-cloudabi_errno_t
-cloudabi_sys_thread_yield(void) {
- register uint64_t reg_x8 asm("x8") = 56;
- register uint64_t reg_x0 asm("x0");
- asm volatile (
- "\tsvc 0\n"
- : "=r"(reg_x0)
- : "r"(reg_x8)
- : "memory"
- , "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7"
- , "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15"
- , "x16", "x17", "x18"
- , "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}
-