svn commit: r286318 - in head/sys: compat/cloudabi64 contrib/cloudabi
Ed Schouten
ed at FreeBSD.org
Wed Aug 5 13:09:48 UTC 2015
Author: ed
Date: Wed Aug 5 13:09:46 2015
New Revision: 286318
URL: https://svnweb.freebsd.org/changeset/base/286318
Log:
Import the latest CloudABI system call definitions and table.
We're going to need these for next code I'm going to send out for
review: support for poll() and kqueue() on CloudABI.
Modified:
head/sys/compat/cloudabi64/cloudabi64_poll.c
head/sys/compat/cloudabi64/syscalls.master
head/sys/contrib/cloudabi/syscalldefs_md.h
head/sys/contrib/cloudabi/syscalldefs_mi.h
Modified: head/sys/compat/cloudabi64/cloudabi64_poll.c
==============================================================================
--- head/sys/compat/cloudabi64/cloudabi64_poll.c Wed Aug 5 12:53:55 2015 (r286317)
+++ head/sys/compat/cloudabi64/cloudabi64_poll.c Wed Aug 5 13:09:46 2015 (r286318)
@@ -36,3 +36,12 @@ cloudabi64_sys_poll(struct thread *td, s
/* Not implemented. */
return (ENOSYS);
}
+
+int
+cloudabi64_sys_poll_fd(struct thread *td,
+ struct cloudabi64_sys_poll_fd_args *uap)
+{
+
+ /* Not implemented. */
+ return (ENOSYS);
+}
Modified: head/sys/compat/cloudabi64/syscalls.master
==============================================================================
--- head/sys/compat/cloudabi64/syscalls.master Wed Aug 5 12:53:55 2015 (r286317)
+++ head/sys/compat/cloudabi64/syscalls.master Wed Aug 5 13:09:46 2015 (r286318)
@@ -157,11 +157,9 @@
void * addr, size_t len); }
39 AUE_NULL STD { cloudabi64_size_t cloudabi64_sys_poll( \
- cloudabi_fd_t fd, \
const cloudabi64_subscription_t *in, \
- cloudabi64_size_t nin, \
cloudabi64_event_t *out, \
- cloudabi64_size_t nout); }
+ cloudabi64_size_t nevents); }
40 AUE_NULL STD { void cloudabi_sys_proc_exec( \
cloudabi_fd_t fd, const void *data, \
@@ -212,3 +210,11 @@
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 { cloudabi64_size_t cloudabi64_sys_poll_fd( \
+ cloudabi_fd_t fd, \
+ const cloudabi64_subscription_t *in, \
+ cloudabi64_size_t nin, \
+ cloudabi64_event_t *out, \
+ cloudabi64_size_t nout, \
+ const cloudabi64_subscription_t *timeout); }
Modified: head/sys/contrib/cloudabi/syscalldefs_md.h
==============================================================================
--- head/sys/contrib/cloudabi/syscalldefs_md.h Wed Aug 5 12:53:55 2015 (r286317)
+++ head/sys/contrib/cloudabi/syscalldefs_md.h Wed Aug 5 13:09:46 2015 (r286318)
@@ -186,6 +186,7 @@ typedef struct {
MEMBER(cloudabi_clockid_t) clock_id;
MEMBER(cloudabi_timestamp_t) timeout;
MEMBER(cloudabi_timestamp_t) precision;
+ MEMBER(uint16_t) flags;
} clock;
// CLOUDABI_EVENTTYPE_CONDVAR: Release a lock and wait on a
@@ -202,6 +203,7 @@ typedef struct {
// called without blocking.
struct {
MEMBER(cloudabi_fd_t) fd;
+ MEMBER(uint16_t) flags;
} fd_readwrite;
// CLOUDABI_EVENT_LOCK_RDLOCK and CLOUDABI_EVENT_LOCK_WRLOCK: Wait
@@ -224,15 +226,17 @@ ASSERT_OFFSET(subscription_t, clock.iden
ASSERT_OFFSET(subscription_t, clock.clock_id, 24, 24);
ASSERT_OFFSET(subscription_t, clock.timeout, 32, 32);
ASSERT_OFFSET(subscription_t, clock.precision, 40, 40);
+ASSERT_OFFSET(subscription_t, clock.flags, 48, 48);
ASSERT_OFFSET(subscription_t, condvar.condvar, 16, 16);
ASSERT_OFFSET(subscription_t, condvar.lock, 20, 24);
ASSERT_OFFSET(subscription_t, condvar.condvar_scope, 24, 32);
ASSERT_OFFSET(subscription_t, condvar.lock_scope, 25, 33);
ASSERT_OFFSET(subscription_t, fd_readwrite.fd, 16, 16);
+ASSERT_OFFSET(subscription_t, fd_readwrite.flags, 20, 20);
ASSERT_OFFSET(subscription_t, lock.lock, 16, 16);
ASSERT_OFFSET(subscription_t, lock.lock_scope, 20, 24);
ASSERT_OFFSET(subscription_t, proc_terminate.fd, 16, 16);
-ASSERT_SIZE(subscription_t, 48, 48);
+ASSERT_SIZE(subscription_t, 56, 56);
typedef struct {
MEMBER(PTR(IDENT(threadentry_t))) entry_point; // Entry point.
Modified: head/sys/contrib/cloudabi/syscalldefs_mi.h
==============================================================================
--- head/sys/contrib/cloudabi/syscalldefs_mi.h Wed Aug 5 12:53:55 2015 (r286317)
+++ head/sys/contrib/cloudabi/syscalldefs_mi.h Wed Aug 5 13:09:46 2015 (r286318)
@@ -204,9 +204,6 @@
#define CLOUDABI_O_EXCL 0x4
#define CLOUDABI_O_TRUNC 0x8
-// File descriptor passed to poll() to poll just once.
-#define CLOUDABI_POLL_ONCE 0xffffffff
-
// File descriptor returned to pdfork()'s child process.
#define CLOUDABI_PROCESS_CHILD 0xffffffff
@@ -326,6 +323,12 @@
#define CLOUDABI_SUBSCRIPTION_ENABLE 0x10
#define CLOUDABI_SUBSCRIPTION_ONESHOT 0x20
+// cloudabi_subscription_t::clock.flags.
+#define CLOUDABI_SUBSCRIPTION_CLOCK_ABSTIME 0x1
+
+// cloudabi_subscription_t::fd_readwrite.flags.
+#define CLOUDABI_SUBSCRIPTION_FD_READWRITE_POLL 0x1
+
// unlinkat().
#define CLOUDABI_UNLINK_REMOVEDIR 0x1
More information about the svn-src-all
mailing list