summaryrefslogtreecommitdiffstats
path: root/sys/compat/cloudabi64
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/cloudabi64')
-rw-r--r--sys/compat/cloudabi64/Makefile4
-rw-r--r--sys/compat/cloudabi64/cloudabi64_fd.c11
-rw-r--r--sys/compat/cloudabi64/cloudabi64_module.c11
-rw-r--r--sys/compat/cloudabi64/cloudabi64_poll.c19
-rw-r--r--sys/compat/cloudabi64/cloudabi64_proto.h33
-rw-r--r--sys/compat/cloudabi64/cloudabi64_sock.c15
-rw-r--r--sys/compat/cloudabi64/cloudabi64_syscall.h37
-rw-r--r--sys/compat/cloudabi64/cloudabi64_syscalls.c35
-rw-r--r--sys/compat/cloudabi64/cloudabi64_sysent.c35
-rw-r--r--sys/compat/cloudabi64/cloudabi64_systrace_args.c194
-rw-r--r--sys/compat/cloudabi64/cloudabi64_util.h3
11 files changed, 195 insertions, 202 deletions
diff --git a/sys/compat/cloudabi64/Makefile b/sys/compat/cloudabi64/Makefile
index 83d27a3..60ae571 100644
--- a/sys/compat/cloudabi64/Makefile
+++ b/sys/compat/cloudabi64/Makefile
@@ -8,7 +8,7 @@ sysent: cloudabi64_sysent.c cloudabi64_syscall.h cloudabi64_proto.h \
cloudabi64_sysent.c cloudabi64_syscall.h cloudabi64_proto.h \
cloudabi64_syscalls.c cloudabi64_systrace_args.c: \
- ../../kern/makesyscalls.sh ../../contrib/cloudabi/syscalls.master \
+ ../../kern/makesyscalls.sh ../../contrib/cloudabi/syscalls64.master \
syscalls.conf
- sh ../../kern/makesyscalls.sh ../../contrib/cloudabi/syscalls.master \
+ sh ../../kern/makesyscalls.sh ../../contrib/cloudabi/syscalls64.master \
syscalls.conf
diff --git a/sys/compat/cloudabi64/cloudabi64_fd.c b/sys/compat/cloudabi64/cloudabi64_fd.c
index 7d0c69a..fcfcc42 100644
--- a/sys/compat/cloudabi64/cloudabi64_fd.c
+++ b/sys/compat/cloudabi64/cloudabi64_fd.c
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$");
#include <contrib/cloudabi/cloudabi64_types.h>
#include <compat/cloudabi64/cloudabi64_proto.h>
+#include <compat/cloudabi64/cloudabi64_util.h>
/* Copies in 64-bit iovec structures from userspace. */
static int
@@ -70,9 +71,9 @@ cloudabi64_copyinuio(const cloudabi64_iovec_t *iovp, size_t iovcnt,
free(uio, M_IOV);
return (error);
}
- iov[i].iov_base = (void *)iovobj.iov_base;
+ iov[i].iov_base = TO_PTR(iovobj.iov_base);
iov[i].iov_len = iovobj.iov_len;
- if (iov[i].iov_len > SSIZE_MAX - uio->uio_resid) {
+ if (iov[i].iov_len > INT64_MAX - uio->uio_resid) {
free(uio, M_IOV);
return (EINVAL);
}
@@ -105,8 +106,7 @@ cloudabi64_sys_fd_pwrite(struct thread *td,
struct uio *uio;
int error;
- error = cloudabi64_copyinuio((const cloudabi64_iovec_t *)uap->iov,
- uap->iovcnt, &uio);
+ error = cloudabi64_copyinuio(TO_PTR(uap->iov), uap->iovcnt, &uio);
if (error != 0)
return (error);
error = kern_pwritev(td, uap->fd, uio, uap->offset);
@@ -136,8 +136,7 @@ cloudabi64_sys_fd_write(struct thread *td,
struct uio *uio;
int error;
- error = cloudabi64_copyinuio((const cloudabi64_iovec_t *)uap->iov,
- uap->iovcnt, &uio);
+ error = cloudabi64_copyinuio(TO_PTR(uap->iov), uap->iovcnt, &uio);
if (error != 0)
return (error);
error = kern_writev(td, uap->fd, uio);
diff --git a/sys/compat/cloudabi64/cloudabi64_module.c b/sys/compat/cloudabi64/cloudabi64_module.c
index 246a887..da1ea11 100644
--- a/sys/compat/cloudabi64/cloudabi64_module.c
+++ b/sys/compat/cloudabi64/cloudabi64_module.c
@@ -38,8 +38,13 @@ __FBSDID("$FreeBSD$");
#include <contrib/cloudabi/cloudabi64_types.h>
+#include <compat/cloudabi/cloudabi_util.h>
+
#include <compat/cloudabi64/cloudabi64_util.h>
+extern char _binary_cloudabi64_vdso_o_start[];
+extern char _binary_cloudabi64_vdso_o_end[];
+
register_t *
cloudabi64_copyout_strings(struct image_params *imgp)
{
@@ -107,6 +112,8 @@ cloudabi64_fixup(register_t **stack_base, struct image_params *imgp)
PTR(CLOUDABI_AT_PHDR, args->phdr),
VAL(CLOUDABI_AT_PHNUM, args->phnum),
VAL(CLOUDABI_AT_TID, td->td_tid),
+ PTR(CLOUDABI_AT_SYSINFO_EHDR,
+ imgp->proc->p_sysent->sv_shared_page_base),
#undef VAL
#undef PTR
{ .a_type = CLOUDABI_AT_NULL },
@@ -127,6 +134,9 @@ cloudabi64_modevent(module_t mod, int type, void *data)
switch (type) {
case MOD_LOAD:
+ cloudabi_vdso_init(cloudabi64_brand.sysvec,
+ _binary_cloudabi64_vdso_o_start,
+ _binary_cloudabi64_vdso_o_end);
if (elf64_insert_brand_entry(&cloudabi64_brand) < 0) {
printf("Failed to add CloudABI ELF brand handler\n");
return (EINVAL);
@@ -139,6 +149,7 @@ cloudabi64_modevent(module_t mod, int type, void *data)
printf("Failed to remove CloudABI ELF brand handler\n");
return (EINVAL);
}
+ cloudabi_vdso_destroy(cloudabi64_brand.sysvec);
return (0);
default:
return (EOPNOTSUPP);
diff --git a/sys/compat/cloudabi64/cloudabi64_poll.c b/sys/compat/cloudabi64/cloudabi64_poll.c
index e44d69f..63d8120 100644
--- a/sys/compat/cloudabi64/cloudabi64_poll.c
+++ b/sys/compat/cloudabi64/cloudabi64_poll.c
@@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$");
#include <compat/cloudabi/cloudabi_util.h>
#include <compat/cloudabi64/cloudabi64_proto.h>
+#include <compat/cloudabi64/cloudabi64_util.h>
/* Converts a FreeBSD signal number to a CloudABI signal number. */
static cloudabi_signal_t
@@ -98,7 +99,7 @@ cloudabi64_kevent_copyin(void *arg, struct kevent *kevp, int count)
return (error);
memset(kevp, 0, sizeof(*kevp));
- kevp->udata = (void *)sub.userdata;
+ kevp->udata = TO_PTR(sub.userdata);
switch (sub.type) {
case CLOUDABI_EVENTTYPE_CLOCK:
kevp->filter = EVFILT_TIMER;
@@ -264,9 +265,9 @@ cloudabi64_sys_poll(struct thread *td, struct cloudabi64_sys_poll_args *uap)
ev.condvar.condvar = sub.condvar.condvar;
ev.error = cloudabi_convert_errno(
cloudabi_futex_condvar_wait(
- td, (cloudabi_condvar_t *)sub.condvar.condvar,
+ td, TO_PTR(sub.condvar.condvar),
sub.condvar.condvar_scope,
- (cloudabi_lock_t *)sub.condvar.lock,
+ TO_PTR(sub.condvar.lock),
sub.condvar.lock_scope,
CLOUDABI_CLOCK_MONOTONIC, UINT64_MAX, 0));
td->td_retval[0] = 1;
@@ -276,7 +277,7 @@ cloudabi64_sys_poll(struct thread *td, struct cloudabi64_sys_poll_args *uap)
ev.lock.lock = sub.lock.lock;
ev.error = cloudabi_convert_errno(
cloudabi_futex_lock_rdlock(
- td, (cloudabi_lock_t *)sub.lock.lock,
+ td, TO_PTR(sub.lock.lock),
sub.lock.lock_scope, CLOUDABI_CLOCK_MONOTONIC,
UINT64_MAX, 0));
td->td_retval[0] = 1;
@@ -286,7 +287,7 @@ cloudabi64_sys_poll(struct thread *td, struct cloudabi64_sys_poll_args *uap)
ev.lock.lock = sub.lock.lock;
ev.error = cloudabi_convert_errno(
cloudabi_futex_lock_wrlock(
- td, (cloudabi_lock_t *)sub.lock.lock,
+ td, TO_PTR(sub.lock.lock),
sub.lock.lock_scope, CLOUDABI_CLOCK_MONOTONIC,
UINT64_MAX, 0));
td->td_retval[0] = 1;
@@ -311,9 +312,9 @@ cloudabi64_sys_poll(struct thread *td, struct cloudabi64_sys_poll_args *uap)
ev[0].condvar.condvar = sub[0].condvar.condvar;
ev[1].clock.identifier = sub[1].clock.identifier;
error = cloudabi_futex_condvar_wait(
- td, (cloudabi_condvar_t *)sub[0].condvar.condvar,
+ td, TO_PTR(sub[0].condvar.condvar),
sub[0].condvar.condvar_scope,
- (cloudabi_lock_t *)sub[0].condvar.lock,
+ TO_PTR(sub[0].condvar.lock),
sub[0].condvar.lock_scope, sub[1].clock.clock_id,
sub[1].clock.timeout, sub[1].clock.precision);
if (error == ETIMEDOUT) {
@@ -332,7 +333,7 @@ cloudabi64_sys_poll(struct thread *td, struct cloudabi64_sys_poll_args *uap)
ev[0].lock.lock = sub[0].lock.lock;
ev[1].clock.identifier = sub[1].clock.identifier;
error = cloudabi_futex_lock_rdlock(
- td, (cloudabi_lock_t *)sub[0].lock.lock,
+ td, TO_PTR(sub[0].lock.lock),
sub[0].lock.lock_scope, sub[1].clock.clock_id,
sub[1].clock.timeout, sub[1].clock.precision);
if (error == ETIMEDOUT) {
@@ -351,7 +352,7 @@ cloudabi64_sys_poll(struct thread *td, struct cloudabi64_sys_poll_args *uap)
ev[0].lock.lock = sub[0].lock.lock;
ev[1].clock.identifier = sub[1].clock.identifier;
error = cloudabi_futex_lock_wrlock(
- td, (cloudabi_lock_t *)sub[0].lock.lock,
+ td, TO_PTR(sub[0].lock.lock),
sub[0].lock.lock_scope, sub[1].clock.clock_id,
sub[1].clock.timeout, sub[1].clock.precision);
if (error == ETIMEDOUT) {
diff --git a/sys/compat/cloudabi64/cloudabi64_proto.h b/sys/compat/cloudabi64/cloudabi64_proto.h
index 79a0f60..aed44ad 100644
--- a/sys/compat/cloudabi64/cloudabi64_proto.h
+++ b/sys/compat/cloudabi64/cloudabi64_proto.h
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/contrib/cloudabi/syscalls.master 297468 2016-03-31 18:50:06Z ed
+ * created from FreeBSD: head/sys/contrib/cloudabi/syscalls64.master 304483 2016-08-19 17:53:37Z ed
*/
#ifndef _CLOUDABI64_SYSPROTO_H_
@@ -236,6 +236,14 @@ struct cloudabi64_sys_poll_args {
char out_l_[PADL_(cloudabi64_event_t *)]; cloudabi64_event_t * out; char out_r_[PADR_(cloudabi64_event_t *)];
char nsubscriptions_l_[PADL_(size_t)]; size_t nsubscriptions; char nsubscriptions_r_[PADR_(size_t)];
};
+struct cloudabi64_sys_poll_fd_args {
+ char fd_l_[PADL_(cloudabi_fd_t)]; cloudabi_fd_t fd; char fd_r_[PADR_(cloudabi_fd_t)];
+ char in_l_[PADL_(const cloudabi64_subscription_t *)]; const cloudabi64_subscription_t * in; char in_r_[PADR_(const cloudabi64_subscription_t *)];
+ char nin_l_[PADL_(size_t)]; size_t nin; char nin_r_[PADR_(size_t)];
+ char out_l_[PADL_(cloudabi64_event_t *)]; cloudabi64_event_t * out; char out_r_[PADR_(cloudabi64_event_t *)];
+ char nout_l_[PADL_(size_t)]; size_t nout; char nout_r_[PADR_(size_t)];
+ char timeout_l_[PADL_(const cloudabi64_subscription_t *)]; const cloudabi64_subscription_t * timeout; char timeout_r_[PADR_(const cloudabi64_subscription_t *)];
+};
struct cloudabi_sys_proc_exec_args {
char fd_l_[PADL_(cloudabi_fd_t)]; cloudabi_fd_t fd; char fd_r_[PADR_(cloudabi_fd_t)];
char data_l_[PADL_(const void *)]; const void * data; char data_r_[PADR_(const void *)];
@@ -302,20 +310,9 @@ struct cloudabi_sys_thread_exit_args {
char lock_l_[PADL_(cloudabi_lock_t *)]; cloudabi_lock_t * lock; char lock_r_[PADR_(cloudabi_lock_t *)];
char scope_l_[PADL_(cloudabi_scope_t)]; cloudabi_scope_t scope; char scope_r_[PADR_(cloudabi_scope_t)];
};
-struct cloudabi_sys_thread_tcb_set_args {
- char tcb_l_[PADL_(void *)]; void * tcb; char tcb_r_[PADR_(void *)];
-};
struct cloudabi_sys_thread_yield_args {
register_t dummy;
};
-struct cloudabi64_sys_poll_fd_args {
- char fd_l_[PADL_(cloudabi_fd_t)]; cloudabi_fd_t fd; char fd_r_[PADR_(cloudabi_fd_t)];
- char in_l_[PADL_(const cloudabi64_subscription_t *)]; const cloudabi64_subscription_t * in; char in_r_[PADR_(const cloudabi64_subscription_t *)];
- char nin_l_[PADL_(size_t)]; size_t nin; char nin_r_[PADR_(size_t)];
- char out_l_[PADL_(cloudabi64_event_t *)]; cloudabi64_event_t * out; char out_r_[PADR_(cloudabi64_event_t *)];
- char nout_l_[PADL_(size_t)]; size_t nout; char nout_r_[PADR_(size_t)];
- char timeout_l_[PADL_(const cloudabi64_subscription_t *)]; const cloudabi64_subscription_t * timeout; char timeout_r_[PADR_(const cloudabi64_subscription_t *)];
-};
int cloudabi_sys_clock_res_get(struct thread *, struct cloudabi_sys_clock_res_get_args *);
int cloudabi_sys_clock_time_get(struct thread *, struct cloudabi_sys_clock_time_get_args *);
int cloudabi_sys_condvar_signal(struct thread *, struct cloudabi_sys_condvar_signal_args *);
@@ -356,6 +353,7 @@ int cloudabi_sys_mem_sync(struct thread *, struct cloudabi_sys_mem_sync_args *);
int cloudabi_sys_mem_unlock(struct thread *, struct cloudabi_sys_mem_unlock_args *);
int cloudabi_sys_mem_unmap(struct thread *, struct cloudabi_sys_mem_unmap_args *);
int cloudabi64_sys_poll(struct thread *, struct cloudabi64_sys_poll_args *);
+int cloudabi64_sys_poll_fd(struct thread *, struct cloudabi64_sys_poll_fd_args *);
int cloudabi_sys_proc_exec(struct thread *, struct cloudabi_sys_proc_exec_args *);
int cloudabi_sys_proc_exit(struct thread *, struct cloudabi_sys_proc_exit_args *);
int cloudabi_sys_proc_fork(struct thread *, struct cloudabi_sys_proc_fork_args *);
@@ -371,9 +369,7 @@ int cloudabi_sys_sock_shutdown(struct thread *, struct cloudabi_sys_sock_shutdow
int cloudabi_sys_sock_stat_get(struct thread *, struct cloudabi_sys_sock_stat_get_args *);
int cloudabi64_sys_thread_create(struct thread *, struct cloudabi64_sys_thread_create_args *);
int cloudabi_sys_thread_exit(struct thread *, struct cloudabi_sys_thread_exit_args *);
-int cloudabi_sys_thread_tcb_set(struct thread *, struct cloudabi_sys_thread_tcb_set_args *);
int cloudabi_sys_thread_yield(struct thread *, struct cloudabi_sys_thread_yield_args *);
-int cloudabi64_sys_poll_fd(struct thread *, struct cloudabi64_sys_poll_fd_args *);
#ifdef COMPAT_43
@@ -398,6 +394,12 @@ int cloudabi64_sys_poll_fd(struct thread *, struct cloudabi64_sys_poll_fd_args *
#endif /* COMPAT_FREEBSD7 */
+
+#ifdef COMPAT_FREEBSD10
+
+
+#endif /* COMPAT_FREEBSD10 */
+
#define CLOUDABI64_SYS_AUE_cloudabi_sys_clock_res_get AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi_sys_clock_time_get AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi_sys_condvar_signal AUE_NULL
@@ -438,6 +440,7 @@ int cloudabi64_sys_poll_fd(struct thread *, struct cloudabi64_sys_poll_fd_args *
#define CLOUDABI64_SYS_AUE_cloudabi_sys_mem_unlock AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi_sys_mem_unmap AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi64_sys_poll AUE_NULL
+#define CLOUDABI64_SYS_AUE_cloudabi64_sys_poll_fd AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi_sys_proc_exec AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi_sys_proc_exit AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi_sys_proc_fork AUE_NULL
@@ -453,9 +456,7 @@ int cloudabi64_sys_poll_fd(struct thread *, struct cloudabi64_sys_poll_fd_args *
#define CLOUDABI64_SYS_AUE_cloudabi_sys_sock_stat_get AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi64_sys_thread_create AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi_sys_thread_exit AUE_NULL
-#define CLOUDABI64_SYS_AUE_cloudabi_sys_thread_tcb_set AUE_NULL
#define CLOUDABI64_SYS_AUE_cloudabi_sys_thread_yield AUE_NULL
-#define CLOUDABI64_SYS_AUE_cloudabi64_sys_poll_fd AUE_NULL
#undef PAD_
#undef PADL_
diff --git a/sys/compat/cloudabi64/cloudabi64_sock.c b/sys/compat/cloudabi64/cloudabi64_sock.c
index e6b9c94..3915ddf 100644
--- a/sys/compat/cloudabi64/cloudabi64_sock.c
+++ b/sys/compat/cloudabi64/cloudabi64_sock.c
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
#include <compat/cloudabi/cloudabi_util.h>
#include <compat/cloudabi64/cloudabi64_proto.h>
+#include <compat/cloudabi64/cloudabi64_util.h>
static MALLOC_DEFINE(M_SOCKET, "socket", "CloudABI socket");
@@ -52,6 +53,7 @@ cloudabi64_sys_sock_recv(struct thread *td,
cloudabi64_recv_out_t ro = {};
cloudabi64_iovec_t iovobj;
struct msghdr msghdr = {};
+ const cloudabi64_iovec_t *user_iov;
size_t i;
int error;
@@ -65,14 +67,14 @@ cloudabi64_sys_sock_recv(struct thread *td,
msghdr.msg_iovlen = ri.ri_datalen;
msghdr.msg_iov = malloc(msghdr.msg_iovlen * sizeof(struct iovec),
M_SOCKET, M_WAITOK);
+ user_iov = TO_PTR(ri.ri_data);
for (i = 0; i < msghdr.msg_iovlen; i++) {
- error = copyin(&((cloudabi64_iovec_t *)ri.ri_data)[i], &iovobj,
- sizeof(iovobj));
+ error = copyin(&user_iov[i], &iovobj, sizeof(iovobj));
if (error != 0) {
free(msghdr.msg_iov, M_SOCKET);
return (error);
}
- msghdr.msg_iov[i].iov_base = (void *)iovobj.iov_base;
+ msghdr.msg_iov[i].iov_base = TO_PTR(iovobj.iov_base);
msghdr.msg_iov[i].iov_len = iovobj.iov_len;
}
msghdr.msg_name = &ss;
@@ -104,6 +106,7 @@ cloudabi64_sys_sock_send(struct thread *td,
cloudabi64_send_out_t so = {};
cloudabi64_ciovec_t iovobj;
struct msghdr msghdr = {};
+ const cloudabi64_ciovec_t *user_iov;
size_t i;
int error, flags;
@@ -117,14 +120,14 @@ cloudabi64_sys_sock_send(struct thread *td,
msghdr.msg_iovlen = si.si_datalen;
msghdr.msg_iov = malloc(msghdr.msg_iovlen * sizeof(struct iovec),
M_SOCKET, M_WAITOK);
+ user_iov = TO_PTR(si.si_data);
for (i = 0; i < msghdr.msg_iovlen; i++) {
- error = copyin(&((cloudabi64_ciovec_t *)si.si_data)[i], &iovobj,
- sizeof(iovobj));
+ error = copyin(&user_iov[i], &iovobj, sizeof(iovobj));
if (error != 0) {
free(msghdr.msg_iov, M_SOCKET);
return (error);
}
- msghdr.msg_iov[i].iov_base = (void *)iovobj.iov_base;
+ msghdr.msg_iov[i].iov_base = TO_PTR(iovobj.iov_base);
msghdr.msg_iov[i].iov_len = iovobj.iov_len;
}
diff --git a/sys/compat/cloudabi64/cloudabi64_syscall.h b/sys/compat/cloudabi64/cloudabi64_syscall.h
index b5694bf..7d99d5e 100644
--- a/sys/compat/cloudabi64/cloudabi64_syscall.h
+++ b/sys/compat/cloudabi64/cloudabi64_syscall.h
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/contrib/cloudabi/syscalls.master 297468 2016-03-31 18:50:06Z ed
+ * created from FreeBSD: head/sys/contrib/cloudabi/syscalls64.master 304483 2016-08-19 17:53:37Z ed
*/
#define CLOUDABI64_SYS_cloudabi_sys_clock_res_get 0
@@ -46,22 +46,21 @@
#define CLOUDABI64_SYS_cloudabi_sys_mem_unlock 37
#define CLOUDABI64_SYS_cloudabi_sys_mem_unmap 38
#define CLOUDABI64_SYS_cloudabi64_sys_poll 39
-#define CLOUDABI64_SYS_cloudabi_sys_proc_exec 40
-#define CLOUDABI64_SYS_cloudabi_sys_proc_exit 41
-#define CLOUDABI64_SYS_cloudabi_sys_proc_fork 42
-#define CLOUDABI64_SYS_cloudabi_sys_proc_raise 43
-#define CLOUDABI64_SYS_cloudabi_sys_random_get 44
-#define CLOUDABI64_SYS_cloudabi_sys_sock_accept 45
-#define CLOUDABI64_SYS_cloudabi_sys_sock_bind 46
-#define CLOUDABI64_SYS_cloudabi_sys_sock_connect 47
-#define CLOUDABI64_SYS_cloudabi_sys_sock_listen 48
-#define CLOUDABI64_SYS_cloudabi64_sys_sock_recv 49
-#define CLOUDABI64_SYS_cloudabi64_sys_sock_send 50
-#define CLOUDABI64_SYS_cloudabi_sys_sock_shutdown 51
-#define CLOUDABI64_SYS_cloudabi_sys_sock_stat_get 52
-#define CLOUDABI64_SYS_cloudabi64_sys_thread_create 53
-#define CLOUDABI64_SYS_cloudabi_sys_thread_exit 54
-#define CLOUDABI64_SYS_cloudabi_sys_thread_tcb_set 55
+#define CLOUDABI64_SYS_cloudabi64_sys_poll_fd 40
+#define CLOUDABI64_SYS_cloudabi_sys_proc_exec 41
+#define CLOUDABI64_SYS_cloudabi_sys_proc_exit 42
+#define CLOUDABI64_SYS_cloudabi_sys_proc_fork 43
+#define CLOUDABI64_SYS_cloudabi_sys_proc_raise 44
+#define CLOUDABI64_SYS_cloudabi_sys_random_get 45
+#define CLOUDABI64_SYS_cloudabi_sys_sock_accept 46
+#define CLOUDABI64_SYS_cloudabi_sys_sock_bind 47
+#define CLOUDABI64_SYS_cloudabi_sys_sock_connect 48
+#define CLOUDABI64_SYS_cloudabi_sys_sock_listen 49
+#define CLOUDABI64_SYS_cloudabi64_sys_sock_recv 50
+#define CLOUDABI64_SYS_cloudabi64_sys_sock_send 51
+#define CLOUDABI64_SYS_cloudabi_sys_sock_shutdown 52
+#define CLOUDABI64_SYS_cloudabi_sys_sock_stat_get 53
+#define CLOUDABI64_SYS_cloudabi64_sys_thread_create 54
+#define CLOUDABI64_SYS_cloudabi_sys_thread_exit 55
#define CLOUDABI64_SYS_cloudabi_sys_thread_yield 56
-#define CLOUDABI64_SYS_cloudabi64_sys_poll_fd 57
-#define CLOUDABI64_SYS_MAXSYSCALL 58
+#define CLOUDABI64_SYS_MAXSYSCALL 57
diff --git a/sys/compat/cloudabi64/cloudabi64_syscalls.c b/sys/compat/cloudabi64/cloudabi64_syscalls.c
index 03407ff..d430056 100644
--- a/sys/compat/cloudabi64/cloudabi64_syscalls.c
+++ b/sys/compat/cloudabi64/cloudabi64_syscalls.c
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/contrib/cloudabi/syscalls.master 297468 2016-03-31 18:50:06Z ed
+ * created from FreeBSD: head/sys/contrib/cloudabi/syscalls64.master 304483 2016-08-19 17:53:37Z ed
*/
const char *cloudabi64_syscallnames[] = {
@@ -47,22 +47,21 @@ const char *cloudabi64_syscallnames[] = {
"cloudabi_sys_mem_unlock", /* 37 = cloudabi_sys_mem_unlock */
"cloudabi_sys_mem_unmap", /* 38 = cloudabi_sys_mem_unmap */
"cloudabi64_sys_poll", /* 39 = cloudabi64_sys_poll */
- "cloudabi_sys_proc_exec", /* 40 = cloudabi_sys_proc_exec */
- "cloudabi_sys_proc_exit", /* 41 = cloudabi_sys_proc_exit */
- "cloudabi_sys_proc_fork", /* 42 = cloudabi_sys_proc_fork */
- "cloudabi_sys_proc_raise", /* 43 = cloudabi_sys_proc_raise */
- "cloudabi_sys_random_get", /* 44 = cloudabi_sys_random_get */
- "cloudabi_sys_sock_accept", /* 45 = cloudabi_sys_sock_accept */
- "cloudabi_sys_sock_bind", /* 46 = cloudabi_sys_sock_bind */
- "cloudabi_sys_sock_connect", /* 47 = cloudabi_sys_sock_connect */
- "cloudabi_sys_sock_listen", /* 48 = cloudabi_sys_sock_listen */
- "cloudabi64_sys_sock_recv", /* 49 = cloudabi64_sys_sock_recv */
- "cloudabi64_sys_sock_send", /* 50 = cloudabi64_sys_sock_send */
- "cloudabi_sys_sock_shutdown", /* 51 = cloudabi_sys_sock_shutdown */
- "cloudabi_sys_sock_stat_get", /* 52 = cloudabi_sys_sock_stat_get */
- "cloudabi64_sys_thread_create", /* 53 = cloudabi64_sys_thread_create */
- "cloudabi_sys_thread_exit", /* 54 = cloudabi_sys_thread_exit */
- "cloudabi_sys_thread_tcb_set", /* 55 = cloudabi_sys_thread_tcb_set */
+ "cloudabi64_sys_poll_fd", /* 40 = cloudabi64_sys_poll_fd */
+ "cloudabi_sys_proc_exec", /* 41 = cloudabi_sys_proc_exec */
+ "cloudabi_sys_proc_exit", /* 42 = cloudabi_sys_proc_exit */
+ "cloudabi_sys_proc_fork", /* 43 = cloudabi_sys_proc_fork */
+ "cloudabi_sys_proc_raise", /* 44 = cloudabi_sys_proc_raise */
+ "cloudabi_sys_random_get", /* 45 = cloudabi_sys_random_get */
+ "cloudabi_sys_sock_accept", /* 46 = cloudabi_sys_sock_accept */
+ "cloudabi_sys_sock_bind", /* 47 = cloudabi_sys_sock_bind */
+ "cloudabi_sys_sock_connect", /* 48 = cloudabi_sys_sock_connect */
+ "cloudabi_sys_sock_listen", /* 49 = cloudabi_sys_sock_listen */
+ "cloudabi64_sys_sock_recv", /* 50 = cloudabi64_sys_sock_recv */
+ "cloudabi64_sys_sock_send", /* 51 = cloudabi64_sys_sock_send */
+ "cloudabi_sys_sock_shutdown", /* 52 = cloudabi_sys_sock_shutdown */
+ "cloudabi_sys_sock_stat_get", /* 53 = cloudabi_sys_sock_stat_get */
+ "cloudabi64_sys_thread_create", /* 54 = cloudabi64_sys_thread_create */
+ "cloudabi_sys_thread_exit", /* 55 = cloudabi_sys_thread_exit */
"cloudabi_sys_thread_yield", /* 56 = cloudabi_sys_thread_yield */
- "cloudabi64_sys_poll_fd", /* 57 = cloudabi64_sys_poll_fd */
};
diff --git a/sys/compat/cloudabi64/cloudabi64_sysent.c b/sys/compat/cloudabi64/cloudabi64_sysent.c
index 50f4a65..3b11850 100644
--- a/sys/compat/cloudabi64/cloudabi64_sysent.c
+++ b/sys/compat/cloudabi64/cloudabi64_sysent.c
@@ -3,7 +3,7 @@
*
* DO NOT EDIT-- this file is automatically generated.
* $FreeBSD$
- * created from FreeBSD: head/sys/contrib/cloudabi/syscalls.master 297468 2016-03-31 18:50:06Z ed
+ * created from FreeBSD: head/sys/contrib/cloudabi/syscalls64.master 304483 2016-08-19 17:53:37Z ed
*/
#include <sys/sysent.h>
@@ -55,22 +55,21 @@ struct sysent cloudabi64_sysent[] = {
{ AS(cloudabi_sys_mem_unlock_args), (sy_call_t *)cloudabi_sys_mem_unlock, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 37 = cloudabi_sys_mem_unlock */
{ AS(cloudabi_sys_mem_unmap_args), (sy_call_t *)cloudabi_sys_mem_unmap, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 38 = cloudabi_sys_mem_unmap */
{ AS(cloudabi64_sys_poll_args), (sy_call_t *)cloudabi64_sys_poll, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 39 = cloudabi64_sys_poll */
- { AS(cloudabi_sys_proc_exec_args), (sy_call_t *)cloudabi_sys_proc_exec, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 40 = cloudabi_sys_proc_exec */
- { AS(cloudabi_sys_proc_exit_args), (sy_call_t *)cloudabi_sys_proc_exit, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 41 = cloudabi_sys_proc_exit */
- { 0, (sy_call_t *)cloudabi_sys_proc_fork, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 42 = cloudabi_sys_proc_fork */
- { AS(cloudabi_sys_proc_raise_args), (sy_call_t *)cloudabi_sys_proc_raise, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 43 = cloudabi_sys_proc_raise */
- { AS(cloudabi_sys_random_get_args), (sy_call_t *)cloudabi_sys_random_get, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 44 = cloudabi_sys_random_get */
- { AS(cloudabi_sys_sock_accept_args), (sy_call_t *)cloudabi_sys_sock_accept, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 45 = cloudabi_sys_sock_accept */
- { AS(cloudabi_sys_sock_bind_args), (sy_call_t *)cloudabi_sys_sock_bind, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 46 = cloudabi_sys_sock_bind */
- { AS(cloudabi_sys_sock_connect_args), (sy_call_t *)cloudabi_sys_sock_connect, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 47 = cloudabi_sys_sock_connect */
- { AS(cloudabi_sys_sock_listen_args), (sy_call_t *)cloudabi_sys_sock_listen, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 48 = cloudabi_sys_sock_listen */
- { AS(cloudabi64_sys_sock_recv_args), (sy_call_t *)cloudabi64_sys_sock_recv, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 49 = cloudabi64_sys_sock_recv */
- { AS(cloudabi64_sys_sock_send_args), (sy_call_t *)cloudabi64_sys_sock_send, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 50 = cloudabi64_sys_sock_send */
- { AS(cloudabi_sys_sock_shutdown_args), (sy_call_t *)cloudabi_sys_sock_shutdown, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 51 = cloudabi_sys_sock_shutdown */
- { AS(cloudabi_sys_sock_stat_get_args), (sy_call_t *)cloudabi_sys_sock_stat_get, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 52 = cloudabi_sys_sock_stat_get */
- { AS(cloudabi64_sys_thread_create_args), (sy_call_t *)cloudabi64_sys_thread_create, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 53 = cloudabi64_sys_thread_create */
- { AS(cloudabi_sys_thread_exit_args), (sy_call_t *)cloudabi_sys_thread_exit, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 54 = cloudabi_sys_thread_exit */
- { AS(cloudabi_sys_thread_tcb_set_args), (sy_call_t *)cloudabi_sys_thread_tcb_set, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 55 = cloudabi_sys_thread_tcb_set */
+ { AS(cloudabi64_sys_poll_fd_args), (sy_call_t *)cloudabi64_sys_poll_fd, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 40 = cloudabi64_sys_poll_fd */
+ { AS(cloudabi_sys_proc_exec_args), (sy_call_t *)cloudabi_sys_proc_exec, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 41 = cloudabi_sys_proc_exec */
+ { AS(cloudabi_sys_proc_exit_args), (sy_call_t *)cloudabi_sys_proc_exit, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 42 = cloudabi_sys_proc_exit */
+ { 0, (sy_call_t *)cloudabi_sys_proc_fork, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 43 = cloudabi_sys_proc_fork */
+ { AS(cloudabi_sys_proc_raise_args), (sy_call_t *)cloudabi_sys_proc_raise, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 44 = cloudabi_sys_proc_raise */
+ { AS(cloudabi_sys_random_get_args), (sy_call_t *)cloudabi_sys_random_get, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 45 = cloudabi_sys_random_get */
+ { AS(cloudabi_sys_sock_accept_args), (sy_call_t *)cloudabi_sys_sock_accept, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 46 = cloudabi_sys_sock_accept */
+ { AS(cloudabi_sys_sock_bind_args), (sy_call_t *)cloudabi_sys_sock_bind, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 47 = cloudabi_sys_sock_bind */
+ { AS(cloudabi_sys_sock_connect_args), (sy_call_t *)cloudabi_sys_sock_connect, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 48 = cloudabi_sys_sock_connect */
+ { AS(cloudabi_sys_sock_listen_args), (sy_call_t *)cloudabi_sys_sock_listen, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 49 = cloudabi_sys_sock_listen */
+ { AS(cloudabi64_sys_sock_recv_args), (sy_call_t *)cloudabi64_sys_sock_recv, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 50 = cloudabi64_sys_sock_recv */
+ { AS(cloudabi64_sys_sock_send_args), (sy_call_t *)cloudabi64_sys_sock_send, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 51 = cloudabi64_sys_sock_send */
+ { AS(cloudabi_sys_sock_shutdown_args), (sy_call_t *)cloudabi_sys_sock_shutdown, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 52 = cloudabi_sys_sock_shutdown */
+ { AS(cloudabi_sys_sock_stat_get_args), (sy_call_t *)cloudabi_sys_sock_stat_get, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 53 = cloudabi_sys_sock_stat_get */
+ { AS(cloudabi64_sys_thread_create_args), (sy_call_t *)cloudabi64_sys_thread_create, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 54 = cloudabi64_sys_thread_create */
+ { AS(cloudabi_sys_thread_exit_args), (sy_call_t *)cloudabi_sys_thread_exit, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 55 = cloudabi_sys_thread_exit */
{ 0, (sy_call_t *)cloudabi_sys_thread_yield, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 56 = cloudabi_sys_thread_yield */
- { AS(cloudabi64_sys_poll_fd_args), (sy_call_t *)cloudabi64_sys_poll_fd, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 57 = cloudabi64_sys_poll_fd */
};
diff --git a/sys/compat/cloudabi64/cloudabi64_systrace_args.c b/sys/compat/cloudabi64/cloudabi64_systrace_args.c
index 9429e8e..3e97b25 100644
--- a/sys/compat/cloudabi64/cloudabi64_systrace_args.c
+++ b/sys/compat/cloudabi64/cloudabi64_systrace_args.c
@@ -373,8 +373,20 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 3;
break;
}
- /* cloudabi_sys_proc_exec */
+ /* cloudabi64_sys_poll_fd */
case 40: {
+ struct cloudabi64_sys_poll_fd_args *p = params;
+ iarg[0] = p->fd; /* cloudabi_fd_t */
+ uarg[1] = (intptr_t) p->in; /* const cloudabi64_subscription_t * */
+ uarg[2] = p->nin; /* size_t */
+ uarg[3] = (intptr_t) p->out; /* cloudabi64_event_t * */
+ uarg[4] = p->nout; /* size_t */
+ uarg[5] = (intptr_t) p->timeout; /* const cloudabi64_subscription_t * */
+ *n_args = 6;
+ break;
+ }
+ /* cloudabi_sys_proc_exec */
+ case 41: {
struct cloudabi_sys_proc_exec_args *p = params;
iarg[0] = p->fd; /* cloudabi_fd_t */
uarg[1] = (intptr_t) p->data; /* const void * */
@@ -385,26 +397,26 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi_sys_proc_exit */
- case 41: {
+ case 42: {
struct cloudabi_sys_proc_exit_args *p = params;
iarg[0] = p->rval; /* cloudabi_exitcode_t */
*n_args = 1;
break;
}
/* cloudabi_sys_proc_fork */
- case 42: {
+ case 43: {
*n_args = 0;
break;
}
/* cloudabi_sys_proc_raise */
- case 43: {
+ case 44: {
struct cloudabi_sys_proc_raise_args *p = params;
iarg[0] = p->sig; /* cloudabi_signal_t */
*n_args = 1;
break;
}
/* cloudabi_sys_random_get */
- case 44: {
+ case 45: {
struct cloudabi_sys_random_get_args *p = params;
uarg[0] = (intptr_t) p->buf; /* void * */
uarg[1] = p->nbyte; /* size_t */
@@ -412,7 +424,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi_sys_sock_accept */
- case 45: {
+ case 46: {
struct cloudabi_sys_sock_accept_args *p = params;
iarg[0] = p->sock; /* cloudabi_fd_t */
uarg[1] = (intptr_t) p->buf; /* cloudabi_sockstat_t * */
@@ -420,7 +432,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi_sys_sock_bind */
- case 46: {
+ case 47: {
struct cloudabi_sys_sock_bind_args *p = params;
iarg[0] = p->sock; /* cloudabi_fd_t */
iarg[1] = p->fd; /* cloudabi_fd_t */
@@ -430,7 +442,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi_sys_sock_connect */
- case 47: {
+ case 48: {
struct cloudabi_sys_sock_connect_args *p = params;
iarg[0] = p->sock; /* cloudabi_fd_t */
iarg[1] = p->fd; /* cloudabi_fd_t */
@@ -440,7 +452,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi_sys_sock_listen */
- case 48: {
+ case 49: {
struct cloudabi_sys_sock_listen_args *p = params;
iarg[0] = p->sock; /* cloudabi_fd_t */
iarg[1] = p->backlog; /* cloudabi_backlog_t */
@@ -448,7 +460,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi64_sys_sock_recv */
- case 49: {
+ case 50: {
struct cloudabi64_sys_sock_recv_args *p = params;
iarg[0] = p->sock; /* cloudabi_fd_t */
uarg[1] = (intptr_t) p->in; /* const cloudabi64_recv_in_t * */
@@ -457,7 +469,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi64_sys_sock_send */
- case 50: {
+ case 51: {
struct cloudabi64_sys_sock_send_args *p = params;
iarg[0] = p->sock; /* cloudabi_fd_t */
uarg[1] = (intptr_t) p->in; /* const cloudabi64_send_in_t * */
@@ -466,7 +478,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi_sys_sock_shutdown */
- case 51: {
+ case 52: {
struct cloudabi_sys_sock_shutdown_args *p = params;
iarg[0] = p->sock; /* cloudabi_fd_t */
iarg[1] = p->how; /* cloudabi_sdflags_t */
@@ -474,7 +486,7 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi_sys_sock_stat_get */
- case 52: {
+ case 53: {
struct cloudabi_sys_sock_stat_get_args *p = params;
iarg[0] = p->sock; /* cloudabi_fd_t */
uarg[1] = (intptr_t) p->buf; /* cloudabi_sockstat_t * */
@@ -483,44 +495,25 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
break;
}
/* cloudabi64_sys_thread_create */
- case 53: {
+ case 54: {
struct cloudabi64_sys_thread_create_args *p = params;
uarg[0] = (intptr_t) p->attr; /* cloudabi64_threadattr_t * */
*n_args = 1;
break;
}
/* cloudabi_sys_thread_exit */
- case 54: {
+ case 55: {
struct cloudabi_sys_thread_exit_args *p = params;
uarg[0] = (intptr_t) p->lock; /* cloudabi_lock_t * */
iarg[1] = p->scope; /* cloudabi_scope_t */
*n_args = 2;
break;
}
- /* cloudabi_sys_thread_tcb_set */
- case 55: {
- struct cloudabi_sys_thread_tcb_set_args *p = params;
- uarg[0] = (intptr_t) p->tcb; /* void * */
- *n_args = 1;
- break;
- }
/* cloudabi_sys_thread_yield */
case 56: {
*n_args = 0;
break;
}
- /* cloudabi64_sys_poll_fd */
- case 57: {
- struct cloudabi64_sys_poll_fd_args *p = params;
- iarg[0] = p->fd; /* cloudabi_fd_t */
- uarg[1] = (intptr_t) p->in; /* const cloudabi64_subscription_t * */
- uarg[2] = p->nin; /* size_t */
- uarg[3] = (intptr_t) p->out; /* cloudabi64_event_t * */
- uarg[4] = p->nout; /* size_t */
- uarg[5] = (intptr_t) p->timeout; /* const cloudabi64_subscription_t * */
- *n_args = 6;
- break;
- }
default:
*n_args = 0;
break;
@@ -1177,13 +1170,38 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
- /* cloudabi_sys_proc_exec */
+ /* cloudabi64_sys_poll_fd */
case 40:
switch(ndx) {
case 0:
p = "cloudabi_fd_t";
break;
case 1:
+ p = "const cloudabi64_subscription_t *";
+ break;
+ case 2:
+ p = "size_t";
+ break;
+ case 3:
+ p = "cloudabi64_event_t *";
+ break;
+ case 4:
+ p = "size_t";
+ break;
+ case 5:
+ p = "const cloudabi64_subscription_t *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* cloudabi_sys_proc_exec */
+ case 41:
+ switch(ndx) {
+ case 0:
+ p = "cloudabi_fd_t";
+ break;
+ case 1:
p = "const void *";
break;
case 2:
@@ -1200,7 +1218,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_proc_exit */
- case 41:
+ case 42:
switch(ndx) {
case 0:
p = "cloudabi_exitcode_t";
@@ -1210,10 +1228,10 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_proc_fork */
- case 42:
+ case 43:
break;
/* cloudabi_sys_proc_raise */
- case 43:
+ case 44:
switch(ndx) {
case 0:
p = "cloudabi_signal_t";
@@ -1223,7 +1241,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_random_get */
- case 44:
+ case 45:
switch(ndx) {
case 0:
p = "void *";
@@ -1236,7 +1254,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_sock_accept */
- case 45:
+ case 46:
switch(ndx) {
case 0:
p = "cloudabi_fd_t";
@@ -1249,7 +1267,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_sock_bind */
- case 46:
+ case 47:
switch(ndx) {
case 0:
p = "cloudabi_fd_t";
@@ -1268,7 +1286,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_sock_connect */
- case 47:
+ case 48:
switch(ndx) {
case 0:
p = "cloudabi_fd_t";
@@ -1287,7 +1305,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_sock_listen */
- case 48:
+ case 49:
switch(ndx) {
case 0:
p = "cloudabi_fd_t";
@@ -1300,7 +1318,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi64_sys_sock_recv */
- case 49:
+ case 50:
switch(ndx) {
case 0:
p = "cloudabi_fd_t";
@@ -1316,7 +1334,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi64_sys_sock_send */
- case 50:
+ case 51:
switch(ndx) {
case 0:
p = "cloudabi_fd_t";
@@ -1332,7 +1350,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_sock_shutdown */
- case 51:
+ case 52:
switch(ndx) {
case 0:
p = "cloudabi_fd_t";
@@ -1345,7 +1363,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_sock_stat_get */
- case 52:
+ case 53:
switch(ndx) {
case 0:
p = "cloudabi_fd_t";
@@ -1361,7 +1379,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi64_sys_thread_create */
- case 53:
+ case 54:
switch(ndx) {
case 0:
p = "cloudabi64_threadattr_t *";
@@ -1371,7 +1389,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
};
break;
/* cloudabi_sys_thread_exit */
- case 54:
+ case 55:
switch(ndx) {
case 0:
p = "cloudabi_lock_t *";
@@ -1383,44 +1401,9 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
- /* cloudabi_sys_thread_tcb_set */
- case 55:
- switch(ndx) {
- case 0:
- p = "void *";
- break;
- default:
- break;
- };
- break;
/* cloudabi_sys_thread_yield */
case 56:
break;
- /* cloudabi64_sys_poll_fd */
- case 57:
- switch(ndx) {
- case 0:
- p = "cloudabi_fd_t";
- break;
- case 1:
- p = "const cloudabi64_subscription_t *";
- break;
- case 2:
- p = "size_t";
- break;
- case 3:
- p = "cloudabi64_event_t *";
- break;
- case 4:
- p = "size_t";
- break;
- case 5:
- p = "const cloudabi64_subscription_t *";
- break;
- default:
- break;
- };
- break;
default:
break;
};
@@ -1632,90 +1615,85 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "size_t";
break;
- /* cloudabi_sys_proc_exec */
+ /* cloudabi64_sys_poll_fd */
case 40:
if (ndx == 0 || ndx == 1)
+ p = "size_t";
+ break;
+ /* cloudabi_sys_proc_exec */
+ case 41:
+ if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi_sys_proc_exit */
- case 41:
+ case 42:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi_sys_proc_fork */
- case 42:
- /* cloudabi_sys_proc_raise */
case 43:
+ /* cloudabi_sys_proc_raise */
+ case 44:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi_sys_random_get */
- case 44:
+ case 45:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi_sys_sock_accept */
- case 45:
+ case 46:
if (ndx == 0 || ndx == 1)
p = "cloudabi_fd_t";
break;
/* cloudabi_sys_sock_bind */
- case 46:
+ case 47:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi_sys_sock_connect */
- case 47:
+ case 48:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi_sys_sock_listen */
- case 48:
+ case 49:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi64_sys_sock_recv */
- case 49:
+ case 50:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi64_sys_sock_send */
- case 50:
+ case 51:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi_sys_sock_shutdown */
- case 51:
+ case 52:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi_sys_sock_stat_get */
- case 52:
+ case 53:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi64_sys_thread_create */
- case 53:
+ case 54:
if (ndx == 0 || ndx == 1)
p = "cloudabi_tid_t";
break;
/* cloudabi_sys_thread_exit */
- case 54:
- if (ndx == 0 || ndx == 1)
- p = "void";
- break;
- /* cloudabi_sys_thread_tcb_set */
case 55:
if (ndx == 0 || ndx == 1)
p = "void";
break;
/* cloudabi_sys_thread_yield */
case 56:
- /* cloudabi64_sys_poll_fd */
- case 57:
- if (ndx == 0 || ndx == 1)
- p = "size_t";
- break;
default:
break;
};
diff --git a/sys/compat/cloudabi64/cloudabi64_util.h b/sys/compat/cloudabi64/cloudabi64_util.h
index 29a90d7..5d50639 100644
--- a/sys/compat/cloudabi64/cloudabi64_util.h
+++ b/sys/compat/cloudabi64/cloudabi64_util.h
@@ -29,6 +29,7 @@
#define _CLOUDABI64_UTIL_H_
#include <sys/types.h>
+#define __ELF_WORD_SIZE 64
#include <sys/imgact_elf.h>
#include <contrib/cloudabi/cloudabi64_types.h>
@@ -38,6 +39,8 @@ struct thread;
extern Elf64_Brandinfo cloudabi64_brand;
+#define TO_PTR(x) ((void *)(uintptr_t)(x))
+
/* Stack initialization during process execution. */
register_t *cloudabi64_copyout_strings(struct image_params *);
int cloudabi64_fixup(register_t **, struct image_params *);
OpenPOWER on IntegriCloud