summaryrefslogtreecommitdiffstats
path: root/sys/contrib/cloudabi/syscalls.master
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2016-03-24 21:47:15 +0000
committered <ed@FreeBSD.org>2016-03-24 21:47:15 +0000
commitdfa2acdc8249aebdb00d24a0bd149b416b407320 (patch)
tree10ebf70906a0df7cec2a498c94c01578f266a88a /sys/contrib/cloudabi/syscalls.master
parentdb175d7b4144b44f51ba3dfd898ba9eb674538d8 (diff)
downloadFreeBSD-src-dfa2acdc8249aebdb00d24a0bd149b416b407320.zip
FreeBSD-src-dfa2acdc8249aebdb00d24a0bd149b416b407320.tar.gz
Replace the CloudABI system call table by a machine generated version.
The type definitions and constants that were used by COMPAT_CLOUDABI64 are a literal copy of some headers stored inside of CloudABI's C library, cloudlibc. What is annoying is that we can't make use of cloudlibc's system call list, as the format is completely different and doesn't provide enough information. It had to be synced in manually. We recently decided to solve this (and some other problems) by moving the ABI definitions into a separate file: https://github.com/NuxiNL/cloudabi/blob/master/cloudabi.txt This file is processed by a pile of Python scripts to generate the header files like before, documentation (markdown), but in our case more importantly: a FreeBSD system call table. This change discards the old files in sys/contrib/cloudabi and replaces them by the latest copies, which requires some minor changes here and there. Because cloudabi.txt also enforces consistent names of the system call arguments, we have to patch up a small number of system call implementations to use the new argument names. The new header files can also be included directly in FreeBSD kernel space without needing any includes/defines, so we can now remove cloudabi_syscalldefs.h and cloudabi64_syscalldefs.h. Patch up the sources to include the definitions directly from sys/contrib/cloudabi instead.
Diffstat (limited to 'sys/contrib/cloudabi/syscalls.master')
-rw-r--r--sys/contrib/cloudabi/syscalls.master317
1 files changed, 317 insertions, 0 deletions
diff --git a/sys/contrib/cloudabi/syscalls.master b/sys/contrib/cloudabi/syscalls.master
new file mode 100644
index 0000000..0257fa6
--- /dev/null
+++ b/sys/contrib/cloudabi/syscalls.master
@@ -0,0 +1,317 @@
+ $FreeBSD$
+
+; Copyright (c) 2016 Nuxi, https://nuxi.nl/
+;
+; 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 <sys/sysent.h>
+#include <sys/sysproto.h>
+
+#include <contrib/cloudabi/cloudabi64_types.h>
+
+#include <compat/cloudabi64/cloudabi64_proto.h>
+
+0 AUE_NULL STD { cloudabi_timestamp_t \
+ cloudabi_sys_clock_res_get( \
+ cloudabi_clockid_t clock_id); }
+
+1 AUE_NULL STD { cloudabi_timestamp_t \
+ cloudabi_sys_clock_time_get( \
+ cloudabi_clockid_t clock_id, \
+ cloudabi_timestamp_t precision); }
+
+2 AUE_NULL STD { void cloudabi_sys_condvar_signal( \
+ cloudabi_condvar_t *condvar, \
+ cloudabi_mflags_t scope, \
+ cloudabi_nthreads_t nwaiters); }
+
+3 AUE_NULL STD { void cloudabi_sys_fd_close( \
+ cloudabi_fd_t fd); }
+
+4 AUE_NULL STD { cloudabi_fd_t cloudabi_sys_fd_create1( \
+ cloudabi_filetype_t type); }
+
+5 AUE_NULL STD { void cloudabi_sys_fd_create2( \
+ cloudabi_filetype_t type); }
+
+6 AUE_NULL STD { void cloudabi_sys_fd_datasync( \
+ cloudabi_fd_t fd); }
+
+7 AUE_NULL STD { cloudabi_fd_t cloudabi_sys_fd_dup( \
+ cloudabi_fd_t from); }
+
+8 AUE_NULL STD { size_t cloudabi64_sys_fd_pread( \
+ cloudabi_fd_t fd, \
+ const cloudabi64_iovec_t *iov, \
+ size_t iovcnt, \
+ cloudabi_filesize_t offset); }
+
+9 AUE_NULL STD { size_t cloudabi64_sys_fd_pwrite( \
+ cloudabi_fd_t fd, \
+ const cloudabi64_ciovec_t *iov, \
+ size_t iovcnt, \
+ cloudabi_filesize_t offset); }
+
+10 AUE_NULL STD { size_t cloudabi64_sys_fd_read( \
+ cloudabi_fd_t fd, \
+ const cloudabi64_iovec_t *iov, \
+ size_t iovcnt); }
+
+11 AUE_NULL STD { void cloudabi_sys_fd_replace( \
+ cloudabi_fd_t from, \
+ cloudabi_fd_t to); }
+
+12 AUE_NULL STD { cloudabi_filesize_t \
+ cloudabi_sys_fd_seek( \
+ cloudabi_fd_t fd, \
+ cloudabi_filedelta_t offset, \
+ cloudabi_whence_t whence); }
+
+13 AUE_NULL STD { void cloudabi_sys_fd_stat_get( \
+ cloudabi_fd_t fd, \
+ cloudabi_fdstat_t *buf); }
+
+14 AUE_NULL STD { void cloudabi_sys_fd_stat_put( \
+ cloudabi_fd_t fd, \
+ const cloudabi_fdstat_t *buf, \
+ cloudabi_fdsflags_t flags); }
+
+15 AUE_NULL STD { void cloudabi_sys_fd_sync( \
+ cloudabi_fd_t fd); }
+
+16 AUE_NULL STD { size_t cloudabi64_sys_fd_write( \
+ cloudabi_fd_t fd, \
+ const cloudabi64_ciovec_t *iov, \
+ size_t iovcnt); }
+
+17 AUE_NULL STD { void cloudabi_sys_file_advise( \
+ cloudabi_fd_t fd, \
+ cloudabi_filesize_t offset, \
+ cloudabi_filesize_t len, \
+ cloudabi_advice_t advice); }
+
+18 AUE_NULL STD { void cloudabi_sys_file_allocate( \
+ cloudabi_fd_t fd, \
+ cloudabi_filesize_t offset, \
+ cloudabi_filesize_t len); }
+
+19 AUE_NULL STD { void cloudabi_sys_file_create( \
+ cloudabi_fd_t fd, \
+ const char *path, \
+ size_t pathlen, \
+ cloudabi_filetype_t type); }
+
+20 AUE_NULL STD { void cloudabi_sys_file_link( \
+ cloudabi_lookup_t fd1, \
+ const char *path1, \
+ size_t path1len, \
+ cloudabi_fd_t fd2, \
+ const char *path2, \
+ size_t path2len); }
+
+21 AUE_NULL STD { cloudabi_fd_t cloudabi_sys_file_open( \
+ cloudabi_lookup_t dirfd, \
+ const char *path, \
+ size_t pathlen, \
+ cloudabi_oflags_t oflags, \
+ const cloudabi_fdstat_t *fds); }
+
+22 AUE_NULL STD { size_t cloudabi_sys_file_readdir( \
+ cloudabi_fd_t fd, \
+ void *buf, \
+ size_t nbyte, \
+ cloudabi_dircookie_t cookie); }
+
+23 AUE_NULL STD { size_t cloudabi_sys_file_readlink( \
+ cloudabi_fd_t fd, \
+ const char *path, \
+ size_t pathlen, \
+ char *buf, \
+ size_t bufsize); }
+
+24 AUE_NULL STD { void cloudabi_sys_file_rename( \
+ cloudabi_fd_t oldfd, \
+ const char *old, \
+ size_t oldlen, \
+ cloudabi_fd_t newfd, \
+ const char *new, \
+ size_t newlen); }
+
+25 AUE_NULL STD { void cloudabi_sys_file_stat_fget( \
+ cloudabi_fd_t fd, \
+ cloudabi_filestat_t *buf); }
+
+26 AUE_NULL STD { void cloudabi_sys_file_stat_fput( \
+ cloudabi_fd_t fd, \
+ const cloudabi_filestat_t *buf, \
+ cloudabi_fsflags_t flags); }
+
+27 AUE_NULL STD { void cloudabi_sys_file_stat_get( \
+ cloudabi_lookup_t fd, \
+ const char *path, \
+ size_t pathlen, \
+ cloudabi_filestat_t *buf); }
+
+28 AUE_NULL STD { void cloudabi_sys_file_stat_put( \
+ cloudabi_lookup_t fd, \
+ const char *path, \
+ size_t pathlen, \
+ const cloudabi_filestat_t *buf, \
+ cloudabi_fsflags_t flags); }
+
+29 AUE_NULL STD { void cloudabi_sys_file_symlink( \
+ const char *path1, \
+ size_t path1len, \
+ cloudabi_fd_t fd, \
+ const char *path2, \
+ size_t path2len); }
+
+30 AUE_NULL STD { void cloudabi_sys_file_unlink( \
+ cloudabi_fd_t fd, \
+ const char *path, \
+ size_t pathlen, \
+ cloudabi_ulflags_t flags); }
+
+31 AUE_NULL STD { void cloudabi_sys_lock_unlock( \
+ cloudabi_lock_t *lock, \
+ cloudabi_mflags_t scope); }
+
+32 AUE_NULL STD { void cloudabi_sys_mem_advise( \
+ void *addr, \
+ size_t len, \
+ cloudabi_advice_t advice); }
+
+33 AUE_NULL STD { void cloudabi_sys_mem_lock( \
+ const void *addr, \
+ size_t len); }
+
+34 AUE_NULL STD { void 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); }
+
+35 AUE_NULL STD { void cloudabi_sys_mem_protect( \
+ void *addr, \
+ size_t len, \
+ cloudabi_mprot_t prot); }
+
+36 AUE_NULL STD { void cloudabi_sys_mem_sync( \
+ void *addr, \
+ size_t len, \
+ cloudabi_msflags_t flags); }
+
+37 AUE_NULL STD { void cloudabi_sys_mem_unlock( \
+ const void *addr, \
+ size_t len); }
+
+38 AUE_NULL STD { void cloudabi_sys_mem_unmap( \
+ void *addr, \
+ size_t len); }
+
+39 AUE_NULL STD { size_t cloudabi64_sys_poll( \
+ const cloudabi64_subscription_t *in, \
+ cloudabi64_event_t *out, \
+ size_t nsubscriptions); }
+
+40 AUE_NULL STD { void cloudabi_sys_proc_exec( \
+ cloudabi_fd_t fd, \
+ const void *data, \
+ size_t datalen, \
+ const cloudabi_fd_t *fds, \
+ size_t fdslen); }
+
+41 AUE_NULL STD { void cloudabi_sys_proc_exit( \
+ cloudabi_exitcode_t rval); }
+
+42 AUE_NULL STD { void cloudabi_sys_proc_fork(); }
+
+43 AUE_NULL STD { void cloudabi_sys_proc_raise( \
+ cloudabi_signal_t sig); }
+
+44 AUE_NULL STD { void cloudabi_sys_random_get( \
+ void *buf, \
+ size_t nbyte); }
+
+45 AUE_NULL STD { cloudabi_fd_t cloudabi_sys_sock_accept( \
+ cloudabi_fd_t sock, \
+ cloudabi_sockstat_t *buf); }
+
+46 AUE_NULL STD { void cloudabi_sys_sock_bind( \
+ cloudabi_fd_t sock, \
+ cloudabi_fd_t fd, \
+ const char *path, \
+ size_t pathlen); }
+
+47 AUE_NULL STD { void cloudabi_sys_sock_connect( \
+ cloudabi_fd_t sock, \
+ cloudabi_fd_t fd, \
+ const char *path, \
+ size_t pathlen); }
+
+48 AUE_NULL STD { void cloudabi_sys_sock_listen( \
+ cloudabi_fd_t sock, \
+ cloudabi_backlog_t backlog); }
+
+49 AUE_NULL STD { void cloudabi64_sys_sock_recv( \
+ cloudabi_fd_t sock, \
+ const cloudabi64_recv_in_t *in, \
+ cloudabi64_recv_out_t *out); }
+
+50 AUE_NULL STD { void cloudabi64_sys_sock_send( \
+ cloudabi_fd_t sock, \
+ const cloudabi64_send_in_t *in, \
+ cloudabi64_send_out_t *out); }
+
+51 AUE_NULL STD { void cloudabi_sys_sock_shutdown( \
+ cloudabi_fd_t sock, \
+ cloudabi_sdflags_t how); }
+
+52 AUE_NULL STD { void cloudabi_sys_sock_stat_get( \
+ cloudabi_fd_t sock, \
+ cloudabi_sockstat_t *buf, \
+ cloudabi_ssflags_t flags); }
+
+53 AUE_NULL STD { cloudabi_tid_t cloudabi64_sys_thread_create( \
+ cloudabi64_threadattr_t *attr); }
+
+54 AUE_NULL STD { void cloudabi_sys_thread_exit( \
+ cloudabi_lock_t *lock, \
+ cloudabi_mflags_t scope); }
+
+55 AUE_NULL STD { void cloudabi_sys_thread_tcb_set( \
+ void *tcb); }
+
+56 AUE_NULL STD { void cloudabi_sys_thread_yield(); }
+
+57 AUE_NULL STD { size_t cloudabi64_sys_poll_fd( \
+ cloudabi_fd_t fd, \
+ const cloudabi64_subscription_t *in, \
+ size_t nin, \
+ cloudabi64_event_t *out, \
+ size_t nout, \
+ const cloudabi64_subscription_t *timeout); }
OpenPOWER on IntegriCloud