diff options
Diffstat (limited to 'sys/contrib/cloudabi/cloudabi_vdso_x86_64.c')
-rw-r--r-- | sys/contrib/cloudabi/cloudabi_vdso_x86_64.c | 1376 |
1 files changed, 0 insertions, 1376 deletions
diff --git a/sys/contrib/cloudabi/cloudabi_vdso_x86_64.c b/sys/contrib/cloudabi/cloudabi_vdso_x86_64.c deleted file mode 100644 index ae0c8c293775..000000000000 --- a/sys/contrib/cloudabi/cloudabi_vdso_x86_64.c +++ /dev/null @@ -1,1376 +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_rax asm("rax") = 0; - register uint64_t reg_rdi asm("rdi") = (uint64_t)clock_id; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *resolution = (cloudabi_timestamp_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 1; - register uint64_t reg_rdi asm("rdi") = (uint64_t)clock_id; - register uint64_t reg_rsi asm("rsi") = (uint64_t)precision; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *time = (cloudabi_timestamp_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_condvar_signal( - _Atomic(cloudabi_condvar_t) *condvar, - cloudabi_scope_t scope, - cloudabi_nthreads_t nwaiters -) { - register uint64_t reg_rax asm("rax") = 2; - register uint64_t reg_rdi asm("rdi") = (uint64_t)condvar; - register uint64_t reg_rsi asm("rsi") = (uint64_t)scope; - register uint64_t reg_rdx asm("rdx") = (uint64_t)nwaiters; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_fd_close( - cloudabi_fd_t fd -) { - register uint64_t reg_rax asm("rax") = 3; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_fd_create1( - cloudabi_filetype_t type, - cloudabi_fd_t *fd -) { - register uint64_t reg_rax asm("rax") = 4; - register uint64_t reg_rdi asm("rdi") = (uint64_t)type; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *fd = (cloudabi_fd_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_fd_create2( - cloudabi_filetype_t type, - cloudabi_fd_t *fd1, - cloudabi_fd_t *fd2 -) { - register uint64_t reg_rax asm("rax") = 5; - register uint64_t reg_rdi asm("rdi") = (uint64_t)type; - register uint64_t reg_rdx asm("rdx"); - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - , "=r"(reg_rdx) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *fd1 = (cloudabi_fd_t)reg_rax; - *fd2 = (cloudabi_fd_t)reg_rdx; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_fd_datasync( - cloudabi_fd_t fd -) { - register uint64_t reg_rax asm("rax") = 6; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_fd_dup( - cloudabi_fd_t from, - cloudabi_fd_t *fd -) { - register uint64_t reg_rax asm("rax") = 7; - register uint64_t reg_rdi asm("rdi") = (uint64_t)from; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *fd = (cloudabi_fd_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 8; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)iov; - register uint64_t reg_rdx asm("rdx") = (uint64_t)iovcnt; - register uint64_t reg_r10 asm("r10") = (uint64_t)offset; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *nread = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 9; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)iov; - register uint64_t reg_rdx asm("rdx") = (uint64_t)iovcnt; - register uint64_t reg_r10 asm("r10") = (uint64_t)offset; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *nwritten = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 10; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)iov; - register uint64_t reg_rdx asm("rdx") = (uint64_t)iovcnt; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *nread = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_fd_replace( - cloudabi_fd_t from, - cloudabi_fd_t to -) { - register uint64_t reg_rax asm("rax") = 11; - register uint64_t reg_rdi asm("rdi") = (uint64_t)from; - register uint64_t reg_rsi asm("rsi") = (uint64_t)to; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 12; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)offset; - register uint64_t reg_rdx asm("rdx") = (uint64_t)whence; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *newoffset = (cloudabi_filesize_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_fd_stat_get( - cloudabi_fd_t fd, - cloudabi_fdstat_t *buf -) { - register uint64_t reg_rax asm("rax") = 13; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 14; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register uint64_t reg_rdx asm("rdx") = (uint64_t)flags; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_fd_sync( - cloudabi_fd_t fd -) { - register uint64_t reg_rax asm("rax") = 15; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 16; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)iov; - register uint64_t reg_rdx asm("rdx") = (uint64_t)iovcnt; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *nwritten = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 17; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)offset; - register uint64_t reg_rdx asm("rdx") = (uint64_t)len; - register uint64_t reg_r10 asm("r10") = (uint64_t)advice; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_file_allocate( - cloudabi_fd_t fd, - cloudabi_filesize_t offset, - cloudabi_filesize_t len -) { - register uint64_t reg_rax asm("rax") = 18; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)offset; - register uint64_t reg_rdx asm("rdx") = (uint64_t)len; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 19; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)type; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 20; - register uint64_t reg_rdi asm("rdi") = *(uint64_t *)&fd1; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path1; - register uint64_t reg_rdx asm("rdx") = (uint64_t)path1len; - register uint64_t reg_r10 asm("r10") = (uint64_t)fd2; - register uint64_t reg_r8 asm("r8") = (uint64_t)path2; - register uint64_t reg_r9 asm("r9") = (uint64_t)path2len; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - , "r"(reg_r8) - , "r"(reg_r9) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 21; - register uint64_t reg_rdi asm("rdi") = *(uint64_t *)&dirfd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)oflags; - register uint64_t reg_r8 asm("r8") = (uint64_t)fds; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - , "r"(reg_r8) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *fd = (cloudabi_fd_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 22; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register uint64_t reg_rdx asm("rdx") = (uint64_t)nbyte; - register uint64_t reg_r10 asm("r10") = (uint64_t)cookie; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *bufused = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 23; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)buf; - register uint64_t reg_r8 asm("r8") = (uint64_t)bufsize; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - , "r"(reg_r8) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *bufused = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 24; - register uint64_t reg_rdi asm("rdi") = (uint64_t)oldfd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)old; - register uint64_t reg_rdx asm("rdx") = (uint64_t)oldlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)newfd; - register uint64_t reg_r8 asm("r8") = (uint64_t)new; - register uint64_t reg_r9 asm("r9") = (uint64_t)newlen; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - , "r"(reg_r8) - , "r"(reg_r9) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_file_stat_fget( - cloudabi_fd_t fd, - cloudabi_filestat_t *buf -) { - register uint64_t reg_rax asm("rax") = 25; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 26; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register uint64_t reg_rdx asm("rdx") = (uint64_t)flags; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 27; - register uint64_t reg_rdi asm("rdi") = *(uint64_t *)&fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)buf; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 28; - register uint64_t reg_rdi asm("rdi") = *(uint64_t *)&fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)buf; - register uint64_t reg_r8 asm("r8") = (uint64_t)flags; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - , "r"(reg_r8) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 29; - register uint64_t reg_rdi asm("rdi") = (uint64_t)path1; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path1len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)fd; - register uint64_t reg_r10 asm("r10") = (uint64_t)path2; - register uint64_t reg_r8 asm("r8") = (uint64_t)path2len; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - , "r"(reg_r8) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 30; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)flags; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_lock_unlock( - _Atomic(cloudabi_lock_t) *lock, - cloudabi_scope_t scope -) { - register uint64_t reg_rax asm("rax") = 31; - register uint64_t reg_rdi asm("rdi") = (uint64_t)lock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)scope; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_mem_advise( - void *addr, - size_t len, - cloudabi_advice_t advice -) { - register uint64_t reg_rax asm("rax") = 32; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)advice; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_mem_lock( - const void *addr, - size_t len -) { - register uint64_t reg_rax asm("rax") = 33; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 34; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)prot; - register uint64_t reg_r10 asm("r10") = (uint64_t)flags; - register uint64_t reg_r8 asm("r8") = (uint64_t)fd; - register uint64_t reg_r9 asm("r9") = (uint64_t)off; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - , "r"(reg_r8) - , "r"(reg_r9) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *mem = (void *)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_mem_protect( - void *addr, - size_t len, - cloudabi_mprot_t prot -) { - register uint64_t reg_rax asm("rax") = 35; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)prot; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_mem_sync( - void *addr, - size_t len, - cloudabi_msflags_t flags -) { - register uint64_t reg_rax asm("rax") = 36; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)flags; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_mem_unlock( - const void *addr, - size_t len -) { - register uint64_t reg_rax asm("rax") = 37; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_mem_unmap( - void *addr, - size_t len -) { - register uint64_t reg_rax asm("rax") = 38; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 39; - register uint64_t reg_rdi asm("rdi") = (uint64_t)in; - register uint64_t reg_rsi asm("rsi") = (uint64_t)out; - register uint64_t reg_rdx asm("rdx") = (uint64_t)nsubscriptions; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *nevents = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 57; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)in; - register uint64_t reg_rdx asm("rdx") = (uint64_t)nin; - register uint64_t reg_r10 asm("r10") = (uint64_t)out; - register uint64_t reg_r8 asm("r8") = (uint64_t)nout; - register uint64_t reg_r9 asm("r9") = (uint64_t)timeout; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - , "r"(reg_r8) - , "r"(reg_r9) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *nevents = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 40; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)data; - register uint64_t reg_rdx asm("rdx") = (uint64_t)datalen; - register uint64_t reg_r10 asm("r10") = (uint64_t)fds; - register uint64_t reg_r8 asm("r8") = (uint64_t)fdslen; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - , "r"(reg_r8) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -_Noreturn void -cloudabi_sys_proc_exit( - cloudabi_exitcode_t rval -) { - register uint64_t reg_rax asm("rax") = 41; - register uint64_t reg_rdi asm("rdi") = (uint64_t)rval; - asm volatile ( - "\tsyscall\n" - : - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - for (;;); -} - -cloudabi_errno_t -cloudabi_sys_proc_fork( - cloudabi_fd_t *fd, - cloudabi_tid_t *tid -) { - register uint64_t reg_rax asm("rax") = 42; - register uint64_t reg_rdx asm("rdx"); - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - , "=r"(reg_rdx) - : "r"(reg_rax) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *fd = (cloudabi_fd_t)reg_rax; - *tid = (cloudabi_tid_t)reg_rdx; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_proc_raise( - cloudabi_signal_t sig -) { - register uint64_t reg_rax asm("rax") = 43; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sig; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_random_get( - void *buf, - size_t nbyte -) { - register uint64_t reg_rax asm("rax") = 44; - register uint64_t reg_rdi asm("rdi") = (uint64_t)buf; - register uint64_t reg_rsi asm("rsi") = (uint64_t)nbyte; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_sock_accept( - cloudabi_fd_t sock, - cloudabi_sockstat_t *buf, - cloudabi_fd_t *conn -) { - register uint64_t reg_rax asm("rax") = 45; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *conn = (cloudabi_fd_t)reg_rax; - return 0; - } - return reg_rax; -} - -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_rax asm("rax") = 46; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)fd; - register uint64_t reg_rdx asm("rdx") = (uint64_t)path; - register uint64_t reg_r10 asm("r10") = (uint64_t)pathlen; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 47; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)fd; - register uint64_t reg_rdx asm("rdx") = (uint64_t)path; - register uint64_t reg_r10 asm("r10") = (uint64_t)pathlen; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - , "r"(reg_r10) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_sock_listen( - cloudabi_fd_t sock, - cloudabi_backlog_t backlog -) { - register uint64_t reg_rax asm("rax") = 48; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)backlog; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 49; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)in; - register uint64_t reg_rdx asm("rdx") = (uint64_t)out; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -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_rax asm("rax") = 50; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)in; - register uint64_t reg_rdx asm("rdx") = (uint64_t)out; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_sock_shutdown( - cloudabi_fd_t sock, - cloudabi_sdflags_t how -) { - register uint64_t reg_rax asm("rax") = 51; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)how; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_sock_stat_get( - cloudabi_fd_t sock, - cloudabi_sockstat_t *buf, - cloudabi_ssflags_t flags -) { - register uint64_t reg_rax asm("rax") = 52; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register uint64_t reg_rdx asm("rdx") = (uint64_t)flags; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - , "r"(reg_rdx) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_thread_create( - cloudabi_threadattr_t *attr, - cloudabi_tid_t *tid -) { - register uint64_t reg_rax asm("rax") = 53; - register uint64_t reg_rdi asm("rdi") = (uint64_t)attr; - register char okay; - asm volatile ( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay) - , "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *tid = (cloudabi_tid_t)reg_rax; - return 0; - } - return reg_rax; -} - -_Noreturn void -cloudabi_sys_thread_exit( - _Atomic(cloudabi_lock_t) *lock, - cloudabi_scope_t scope -) { - register uint64_t reg_rax asm("rax") = 54; - register uint64_t reg_rdi asm("rdi") = (uint64_t)lock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)scope; - asm volatile ( - "\tsyscall\n" - : - : "r"(reg_rax) - , "r"(reg_rdi) - , "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - for (;;); -} - -cloudabi_errno_t -cloudabi_sys_thread_tcb_set( - void *tcb -) { - register uint64_t reg_rax asm("rax") = 55; - register uint64_t reg_rdi asm("rdi") = (uint64_t)tcb; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - , "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t -cloudabi_sys_thread_yield(void) { - register uint64_t reg_rax asm("rax") = 56; - asm volatile ( - "\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - |