From owner-svn-src-head@freebsd.org Thu Mar 31 18:50:07 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E898CAE435A; Thu, 31 Mar 2016 18:50:07 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C4F29188C; Thu, 31 Mar 2016 18:50:07 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u2VIo757001985; Thu, 31 Mar 2016 18:50:07 GMT (envelope-from ed@FreeBSD.org) Received: (from ed@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u2VIo69v001979; Thu, 31 Mar 2016 18:50:06 GMT (envelope-from ed@FreeBSD.org) Message-Id: <201603311850.u2VIo69v001979@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ed set sender to ed@FreeBSD.org using -f From: Ed Schouten Date: Thu, 31 Mar 2016 18:50:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r297468 - in head/sys: compat/cloudabi compat/cloudabi64 contrib/cloudabi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Mar 2016 18:50:08 -0000 Author: ed Date: Thu Mar 31 18:50:06 2016 New Revision: 297468 URL: https://svnweb.freebsd.org/changeset/base/297468 Log: Sync in the latest CloudABI system call definitions. Some time ago I made a change to merge together the memory scope definitions used by mmap (MAP_{PRIVATE,SHARED}) and lock objects (PTHREAD_PROCESS_{PRIVATE,SHARED}). Though that sounded pretty smart back then, it's backfiring. In the case of mmap it's used with other flags in a bitmask, but for locking it's an enumeration. As our plan is to automatically generate bindings for other languages, that looks a bit sloppy. Change all of the locking functions to use separate flags instead. Obtained from: https://github.com/NuxiNL/cloudabi Modified: head/sys/compat/cloudabi/cloudabi_futex.c head/sys/compat/cloudabi/cloudabi_util.h head/sys/compat/cloudabi64/cloudabi64_systrace_args.c head/sys/contrib/cloudabi/cloudabi64_types.h head/sys/contrib/cloudabi/cloudabi_types_common.h head/sys/contrib/cloudabi/syscalls.master Modified: head/sys/compat/cloudabi/cloudabi_futex.c ============================================================================== --- head/sys/compat/cloudabi/cloudabi_futex.c Thu Mar 31 18:36:50 2016 (r297467) +++ head/sys/compat/cloudabi/cloudabi_futex.c Thu Mar 31 18:50:06 2016 (r297468) @@ -212,16 +212,16 @@ static int futex_user_cmpxchg(uint32_t * static int futex_address_create(struct futex_address *fa, struct thread *td, - const void *object, cloudabi_mflags_t scope) + const void *object, cloudabi_scope_t scope) { KASSERT(td == curthread, ("Can only create umtx keys for the current thread")); switch (scope) { - case CLOUDABI_MAP_PRIVATE: + case CLOUDABI_SCOPE_PRIVATE: return (umtx_key_get(object, TYPE_FUTEX, THREAD_SHARE, &fa->fa_key)); - case CLOUDABI_MAP_SHARED: + case CLOUDABI_SCOPE_SHARED: return (umtx_key_get(object, TYPE_FUTEX, AUTO_SHARE, &fa->fa_key)); default: @@ -259,7 +259,7 @@ futex_condvar_assert(const struct futex_ static int futex_condvar_lookup(struct thread *td, const cloudabi_condvar_t *address, - cloudabi_mflags_t scope, struct futex_condvar **fcret) + cloudabi_scope_t scope, struct futex_condvar **fcret) { struct futex_address fa_condvar; struct futex_condvar *fc; @@ -286,8 +286,8 @@ futex_condvar_lookup(struct thread *td, static int futex_condvar_lookup_or_create(struct thread *td, - const cloudabi_condvar_t *condvar, cloudabi_mflags_t condvar_scope, - const cloudabi_lock_t *lock, cloudabi_mflags_t lock_scope, + const cloudabi_condvar_t *condvar, cloudabi_scope_t condvar_scope, + const cloudabi_lock_t *lock, cloudabi_scope_t lock_scope, struct futex_condvar **fcret) { struct futex_address fa_condvar, fa_lock; @@ -385,7 +385,7 @@ futex_lock_assert(const struct futex_loc static int futex_lock_lookup(struct thread *td, const cloudabi_lock_t *address, - cloudabi_mflags_t scope, struct futex_lock **flret) + cloudabi_scope_t scope, struct futex_lock **flret) { struct futex_address fa; int error; @@ -974,8 +974,8 @@ futex_user_cmpxchg(uint32_t *obj, uint32 int cloudabi_futex_condvar_wait(struct thread *td, cloudabi_condvar_t *condvar, - cloudabi_mflags_t condvar_scope, cloudabi_lock_t *lock, - cloudabi_mflags_t lock_scope, cloudabi_clockid_t clock_id, + cloudabi_scope_t condvar_scope, cloudabi_lock_t *lock, + cloudabi_scope_t lock_scope, cloudabi_clockid_t clock_id, cloudabi_timestamp_t timeout, cloudabi_timestamp_t precision) { struct futex_condvar *fc; @@ -1047,7 +1047,7 @@ cloudabi_futex_condvar_wait(struct threa int cloudabi_futex_lock_rdlock(struct thread *td, cloudabi_lock_t *lock, - cloudabi_mflags_t scope, cloudabi_clockid_t clock_id, + cloudabi_scope_t scope, cloudabi_clockid_t clock_id, cloudabi_timestamp_t timeout, cloudabi_timestamp_t precision) { struct futex_lock *fl; @@ -1066,7 +1066,7 @@ cloudabi_futex_lock_rdlock(struct thread int cloudabi_futex_lock_wrlock(struct thread *td, cloudabi_lock_t *lock, - cloudabi_mflags_t scope, cloudabi_clockid_t clock_id, + cloudabi_scope_t scope, cloudabi_clockid_t clock_id, cloudabi_timestamp_t timeout, cloudabi_timestamp_t precision) { struct futex_lock *fl; Modified: head/sys/compat/cloudabi/cloudabi_util.h ============================================================================== --- head/sys/compat/cloudabi/cloudabi_util.h Thu Mar 31 18:36:50 2016 (r297467) +++ head/sys/compat/cloudabi/cloudabi_util.h Thu Mar 31 18:50:06 2016 (r297468) @@ -67,13 +67,13 @@ int cloudabi_convert_timespec(const stru * sleep on a lock or condition variable. */ int cloudabi_futex_condvar_wait(struct thread *, cloudabi_condvar_t *, - cloudabi_mflags_t, cloudabi_lock_t *, cloudabi_mflags_t, cloudabi_clockid_t, + cloudabi_scope_t, cloudabi_lock_t *, cloudabi_scope_t, cloudabi_clockid_t, cloudabi_timestamp_t, cloudabi_timestamp_t); int cloudabi_futex_lock_rdlock(struct thread *, cloudabi_lock_t *, - cloudabi_mflags_t, cloudabi_clockid_t, cloudabi_timestamp_t, + cloudabi_scope_t, cloudabi_clockid_t, cloudabi_timestamp_t, cloudabi_timestamp_t); int cloudabi_futex_lock_wrlock(struct thread *, cloudabi_lock_t *, - cloudabi_mflags_t, cloudabi_clockid_t, cloudabi_timestamp_t, + cloudabi_scope_t, cloudabi_clockid_t, cloudabi_timestamp_t, cloudabi_timestamp_t); #endif Modified: head/sys/compat/cloudabi64/cloudabi64_systrace_args.c ============================================================================== --- head/sys/compat/cloudabi64/cloudabi64_systrace_args.c Thu Mar 31 18:36:50 2016 (r297467) +++ head/sys/compat/cloudabi64/cloudabi64_systrace_args.c Thu Mar 31 18:50:06 2016 (r297468) @@ -30,7 +30,7 @@ systrace_args(int sysnum, void *params, case 2: { struct cloudabi_sys_condvar_signal_args *p = params; uarg[0] = (intptr_t) p->condvar; /* cloudabi_condvar_t * */ - iarg[1] = p->scope; /* cloudabi_mflags_t */ + iarg[1] = p->scope; /* cloudabi_scope_t */ iarg[2] = p->nwaiters; /* cloudabi_nthreads_t */ *n_args = 3; break; @@ -297,7 +297,7 @@ systrace_args(int sysnum, void *params, case 31: { struct cloudabi_sys_lock_unlock_args *p = params; uarg[0] = (intptr_t) p->lock; /* cloudabi_lock_t * */ - iarg[1] = p->scope; /* cloudabi_mflags_t */ + iarg[1] = p->scope; /* cloudabi_scope_t */ *n_args = 2; break; } @@ -493,7 +493,7 @@ systrace_args(int sysnum, void *params, case 54: { struct cloudabi_sys_thread_exit_args *p = params; uarg[0] = (intptr_t) p->lock; /* cloudabi_lock_t * */ - iarg[1] = p->scope; /* cloudabi_mflags_t */ + iarg[1] = p->scope; /* cloudabi_scope_t */ *n_args = 2; break; } @@ -561,7 +561,7 @@ systrace_entry_setargdesc(int sysnum, in p = "cloudabi_condvar_t *"; break; case 1: - p = "cloudabi_mflags_t"; + p = "cloudabi_scope_t"; break; case 2: p = "cloudabi_nthreads_t"; @@ -1043,7 +1043,7 @@ systrace_entry_setargdesc(int sysnum, in p = "cloudabi_lock_t *"; break; case 1: - p = "cloudabi_mflags_t"; + p = "cloudabi_scope_t"; break; default: break; @@ -1377,7 +1377,7 @@ systrace_entry_setargdesc(int sysnum, in p = "cloudabi_lock_t *"; break; case 1: - p = "cloudabi_mflags_t"; + p = "cloudabi_scope_t"; break; default: break; Modified: head/sys/contrib/cloudabi/cloudabi64_types.h ============================================================================== --- head/sys/contrib/cloudabi/cloudabi64_types.h Thu Mar 31 18:36:50 2016 (r297467) +++ head/sys/contrib/cloudabi/cloudabi64_types.h Thu Mar 31 18:50:06 2016 (r297468) @@ -1,4 +1,4 @@ -// Copyright (c) 2016 Nuxi, https://nuxi.nl/ +// 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 @@ -20,8 +20,9 @@ // 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 #ifndef CLOUDABI64_TYPES_H @@ -101,6 +102,8 @@ _Static_assert(offsetof(cloudabi64_iovec _Static_assert(sizeof(cloudabi64_iovec_t) == 16, "Incorrect layout"); _Static_assert(_Alignof(cloudabi64_iovec_t) == 8, "Incorrect layout"); +typedef void cloudabi64_processentry_t(uint64_t auxv); + typedef struct { _Alignas(8) uint64_t ri_data; _Alignas(8) uint64_t ri_datalen; @@ -153,8 +156,8 @@ typedef struct { struct { _Alignas(8) uint64_t condvar; _Alignas(8) uint64_t lock; - _Alignas(1) cloudabi_mflags_t condvar_scope; - _Alignas(1) cloudabi_mflags_t lock_scope; + _Alignas(1) cloudabi_scope_t condvar_scope; + _Alignas(1) cloudabi_scope_t lock_scope; } condvar; struct { _Alignas(4) cloudabi_fd_t fd; @@ -162,7 +165,7 @@ typedef struct { } fd_readwrite; struct { _Alignas(8) uint64_t lock; - _Alignas(1) cloudabi_mflags_t lock_scope; + _Alignas(1) cloudabi_scope_t lock_scope; } lock; struct { _Alignas(4) cloudabi_fd_t fd; Modified: head/sys/contrib/cloudabi/cloudabi_types_common.h ============================================================================== --- head/sys/contrib/cloudabi/cloudabi_types_common.h Thu Mar 31 18:36:50 2016 (r297467) +++ head/sys/contrib/cloudabi/cloudabi_types_common.h Thu Mar 31 18:50:06 2016 (r297468) @@ -1,4 +1,4 @@ -// Copyright (c) 2016 Nuxi, https://nuxi.nl/ +// 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 @@ -20,8 +20,9 @@ // 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 #ifndef CLOUDABI_TYPES_COMMON_H @@ -47,6 +48,7 @@ typedef uint8_t cloudabi_advice_t; typedef uint32_t cloudabi_auxtype_t; #define CLOUDABI_AT_ARGDATA 256 #define CLOUDABI_AT_ARGDATALEN 257 +#define CLOUDABI_AT_BASE 7 #define CLOUDABI_AT_CANARY 258 #define CLOUDABI_AT_CANARYLEN 259 #define CLOUDABI_AT_NCPUS 260 @@ -298,6 +300,10 @@ typedef uint8_t cloudabi_sa_family_t; #define CLOUDABI_AF_INET6 2 #define CLOUDABI_AF_UNIX 3 +typedef uint8_t cloudabi_scope_t; +#define CLOUDABI_SCOPE_PRIVATE 4 +#define CLOUDABI_SCOPE_SHARED 8 + typedef uint8_t cloudabi_sdflags_t; #define CLOUDABI_SHUT_RD 0x01 #define CLOUDABI_SHUT_WR 0x02 Modified: head/sys/contrib/cloudabi/syscalls.master ============================================================================== --- head/sys/contrib/cloudabi/syscalls.master Thu Mar 31 18:36:50 2016 (r297467) +++ head/sys/contrib/cloudabi/syscalls.master Thu Mar 31 18:50:06 2016 (r297468) @@ -1,6 +1,6 @@ $FreeBSD$ -; Copyright (c) 2016 Nuxi, https://nuxi.nl/ +; 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 @@ -22,8 +22,9 @@ ; 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 @@ -44,7 +45,7 @@ 2 AUE_NULL STD { void cloudabi_sys_condvar_signal( \ cloudabi_condvar_t *condvar, \ - cloudabi_mflags_t scope, \ + cloudabi_scope_t scope, \ cloudabi_nthreads_t nwaiters); } 3 AUE_NULL STD { void cloudabi_sys_fd_close( \ @@ -196,7 +197,7 @@ 31 AUE_NULL STD { void cloudabi_sys_lock_unlock( \ cloudabi_lock_t *lock, \ - cloudabi_mflags_t scope); } + cloudabi_scope_t scope); } 32 AUE_NULL STD { void cloudabi_sys_mem_advise( \ void *addr, \ @@ -301,7 +302,7 @@ 54 AUE_NULL STD { void cloudabi_sys_thread_exit( \ cloudabi_lock_t *lock, \ - cloudabi_mflags_t scope); } + cloudabi_scope_t scope); } 55 AUE_NULL STD { void cloudabi_sys_thread_tcb_set( \ void *tcb); }