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.c1058
1 files changed, 0 insertions, 1058 deletions
diff --git a/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c b/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c
deleted file mode 100644
index e6e14342d454..000000000000
--- a/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c
+++ /dev/null
@@ -1,1058 +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", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x4", "x5", "x6", "x7", "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", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x4", "x5", "x6", "x7", "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", "x6", "x7", "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", "x5", "x6", "x7", "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", "x4", "x5", "x6", "x7", "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", "x5", "x6", "x7", "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", "x6", "x7", "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", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x4", "x5", "x6", "x7", "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", "x5", "x6", "x7", "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", "x5", "x6", "x7", "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", "x4", "x5", "x6", "x7", "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", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x2", "x3", "x4", "x5", "x6", "x7", "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", "x3", "x4", "x5", "x6", "x7", "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") = 40;
- 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", "x6", "x7", "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") = 41;
- 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", "x5", "x6", "x7", "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") = 42;
- register uint64_t reg_x0 asm("x0") = (uint64_t)rval;
- asm volatile("\tsvc 0\n"
- :
- : "r"(reg_x8), "r"(reg_x0)
- : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "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") = 43;
- 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", "x2", "x3", "x4", "x5", "x6", "x7", "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") = 44;
- 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", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "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") = 45;
- 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", "x2", "x3", "x4", "x5", "x6", "x7", "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") = 46;
- 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", "x2", "x3", "x4", "x5", "x6", "x7", "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") = 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", "x4", "x5", "x6", "x7", "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") = 48;
- 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", "x4", "x5", "x6", "x7", "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") = 49;
- 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", "x2", "x3", "x4", "x5", "x6", "x7", "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") = 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", "x3", "x4", "x5", "x6", "x7", "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") = 51;
- 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", "x3", "x4", "x5", "x6", "x7", "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") = 52;
- 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", "x2", "x3", "x4", "x5", "x6", "x7", "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") = 53;
- 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", "x3", "x4", "x5", "x6", "x7", "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") = 54;
- 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", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "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") = 55;
- 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", "x2", "x3", "x4", "x5", "x6", "x7", "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_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", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9",
- "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18",
- "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
- return reg_x0;
-}