From owner-svn-src-user@FreeBSD.ORG Thu Nov 18 02:16:06 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8C425106566B; Thu, 18 Nov 2010 02:16:06 +0000 (UTC) (envelope-from davidxu@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7A4768FC0C; Thu, 18 Nov 2010 02:16:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id oAI2G6w5011255; Thu, 18 Nov 2010 02:16:06 GMT (envelope-from davidxu@svn.freebsd.org) Received: (from davidxu@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oAI2G6TC011249; Thu, 18 Nov 2010 02:16:06 GMT (envelope-from davidxu@svn.freebsd.org) Message-Id: <201011180216.oAI2G6TC011249@svn.freebsd.org> From: David Xu Date: Thu, 18 Nov 2010 02:16:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r215448 - in user/davidxu/libthr/lib/libthr: . thread X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Nov 2010 02:16:06 -0000 Author: davidxu Date: Thu Nov 18 02:16:06 2010 New Revision: 215448 URL: http://svn.freebsd.org/changeset/base/215448 Log: Create new version for following functins: pthread_barrierattr_setpshared pthread_condattr_setpshared pthread_mutexattr_setpshared pthread_rwlockattr_setpshared These functions allow PTHREAD_PROCESS_SHARED to be set for attribute object. Modified: user/davidxu/libthr/lib/libthr/pthread.map user/davidxu/libthr/lib/libthr/thread/thr_barrierattr.c user/davidxu/libthr/lib/libthr/thread/thr_condattr.c user/davidxu/libthr/lib/libthr/thread/thr_mutexattr.c user/davidxu/libthr/lib/libthr/thread/thr_rwlockattr.c Modified: user/davidxu/libthr/lib/libthr/pthread.map ============================================================================== --- user/davidxu/libthr/lib/libthr/pthread.map Thu Nov 18 02:12:45 2010 (r215447) +++ user/davidxu/libthr/lib/libthr/pthread.map Thu Nov 18 02:16:06 2010 (r215448) @@ -26,7 +26,6 @@ FBSD_1.0 { pthread_barrierattr_destroy; pthread_barrierattr_getpshared; pthread_barrierattr_init; - pthread_barrierattr_setpshared; pthread_attr_destroy; pthread_attr_get_np; pthread_attr_getdetachstate; @@ -57,7 +56,6 @@ FBSD_1.0 { pthread_condattr_getpshared; pthread_condattr_init; pthread_condattr_setclock; - pthread_condattr_setpshared; pthread_create; pthread_detach; pthread_equal; @@ -82,7 +80,6 @@ FBSD_1.0 { pthread_mutexattr_setkind_np; pthread_mutexattr_setprioceiling; pthread_mutexattr_setprotocol; - pthread_mutexattr_setpshared; pthread_mutexattr_settype; pthread_once; pthread_resume_all_np; @@ -90,7 +87,6 @@ FBSD_1.0 { pthread_rwlockattr_destroy; pthread_rwlockattr_getpshared; pthread_rwlockattr_init; - pthread_rwlockattr_setpshared; pthread_set_name_np; pthread_self; pthread_setcancelstate; @@ -371,14 +367,17 @@ FBSD_1.2 { pthread_barrier_destroy; pthread_barrier_init; pthread_barrier_wait; + pthread_barrierattr_setpshared; pthread_cond_broadcast; pthread_cond_destroy; pthread_cond_init; pthread_cond_signal; pthread_cond_timedwait; pthread_cond_wait; + pthread_condattr_setpshared; pthread_mutex_destroy; pthread_mutexattr_getrobust; + pthread_mutexattr_setpshared; pthread_mutexattr_setrobust; pthread_mutex_consistent; pthread_mutex_getprioceiling; @@ -407,6 +406,7 @@ FBSD_1.2 { pthread_rwlock_trywrlock; pthread_rwlock_unlock; pthread_rwlock_wrlock; + pthread_rwlockattr_setpshared; setcontext; swapcontext; }; Modified: user/davidxu/libthr/lib/libthr/thread/thr_barrierattr.c ============================================================================== --- user/davidxu/libthr/lib/libthr/thread/thr_barrierattr.c Thu Nov 18 02:12:45 2010 (r215447) +++ user/davidxu/libthr/lib/libthr/thread/thr_barrierattr.c Thu Nov 18 02:16:06 2010 (r215448) @@ -43,6 +43,10 @@ __weak_reference(_pthread_barrierattr_se __weak_reference(_pthread_barrierattr_getpshared, pthread_barrierattr_getpshared); +int _pthread_barrierattr_setpshared_1_0(pthread_barrierattr_t *, int); + +FB10_COMPAT(_pthread_barrierattr_setpshared_1_0, pthread_barrierattr_setpshared); + int _pthread_barrierattr_destroy(pthread_barrierattr_t *attr) { @@ -88,6 +92,22 @@ _pthread_barrierattr_setpshared(pthread_ return (EINVAL); /* Only PTHREAD_PROCESS_PRIVATE is supported. */ + if (pshared != PTHREAD_PROCESS_PRIVATE && + pshared != PTHREAD_PROCESS_SHARED) + return (EINVAL); + + (*attr)->pshared = pshared; + return (0); +} + +int +_pthread_barrierattr_setpshared_1_0(pthread_barrierattr_t *attr, int pshared) +{ + + if (attr == NULL || *attr == NULL) + return (EINVAL); + + /* Only PTHREAD_PROCESS_PRIVATE is supported. */ if (pshared != PTHREAD_PROCESS_PRIVATE) return (EINVAL); Modified: user/davidxu/libthr/lib/libthr/thread/thr_condattr.c ============================================================================== --- user/davidxu/libthr/lib/libthr/thread/thr_condattr.c Thu Nov 18 02:12:45 2010 (r215447) +++ user/davidxu/libthr/lib/libthr/thread/thr_condattr.c Thu Nov 18 02:16:06 2010 (r215448) @@ -45,6 +45,9 @@ __weak_reference(_pthread_condattr_setcl __weak_reference(_pthread_condattr_getpshared, pthread_condattr_getpshared); __weak_reference(_pthread_condattr_setpshared, pthread_condattr_setpshared); +int _pthread_condattr_setpshared_1_0(pthread_condattr_t *, int); +FB10_COMPAT(_pthread_condattr_setpshared_1_0, pthread_condattr_setpshared); + int _pthread_condattr_init(pthread_condattr_t *attr) { @@ -108,7 +111,7 @@ _pthread_condattr_getpshared(const pthre if (attr == NULL || *attr == NULL) return (EINVAL); - *pshared = PTHREAD_PROCESS_PRIVATE; + *pshared = (*attr)->c_pshared; return (0); } @@ -118,7 +121,23 @@ _pthread_condattr_setpshared(pthread_con if (attr == NULL || *attr == NULL) return (EINVAL); + if (pshared != PTHREAD_PROCESS_PRIVATE && + pshared != PTHREAD_PROCESS_SHARED) + return (EINVAL); + + (*attr)->c_pshared = pshared; + return (0); +} + +int +_pthread_condattr_setpshared_1_0(pthread_condattr_t *attr, int pshared) +{ + if (attr == NULL || *attr == NULL) + return (EINVAL); + if (pshared != PTHREAD_PROCESS_PRIVATE) return (EINVAL); + + (*attr)->c_pshared = pshared; return (0); } Modified: user/davidxu/libthr/lib/libthr/thread/thr_mutexattr.c ============================================================================== --- user/davidxu/libthr/lib/libthr/thread/thr_mutexattr.c Thu Nov 18 02:12:45 2010 (r215447) +++ user/davidxu/libthr/lib/libthr/thread/thr_mutexattr.c Thu Nov 18 02:16:06 2010 (r215448) @@ -84,6 +84,9 @@ __weak_reference(_pthread_mutexattr_setp __weak_reference(_pthread_mutexattr_getrobust, pthread_mutexattr_getrobust); __weak_reference(_pthread_mutexattr_setrobust, pthread_mutexattr_setrobust); +int _pthread_mutexattr_setpshared_1_0(pthread_mutexattr_t *attr, int pshared); +FB10_COMPAT(_pthread_mutexattr_setpshared_1_0, pthread_mutexattr_setpshared); + int _pthread_mutexattr_init(pthread_mutexattr_t *attr) { @@ -179,7 +182,7 @@ _pthread_mutexattr_getpshared(const pthr if (attr == NULL || *attr == NULL) return (EINVAL); - *pshared = PTHREAD_PROCESS_PRIVATE; + *pshared = (*attr)->m_pshared; return (0); } @@ -191,9 +194,11 @@ _pthread_mutexattr_setpshared(pthread_mu return (EINVAL); /* Only PTHREAD_PROCESS_PRIVATE is supported. */ - if (pshared != PTHREAD_PROCESS_PRIVATE) + if (pshared != PTHREAD_PROCESS_PRIVATE && + pshared != PTHREAD_PROCESS_SHARED) return (EINVAL); + (*attr)->m_pshared = pshared; return (0); } @@ -287,3 +292,17 @@ _pthread_mutexattr_setrobust(pthread_mut } return (error); } + +int +_pthread_mutexattr_setpshared_1_0(pthread_mutexattr_t *attr, int pshared) +{ + if (attr == NULL || *attr == NULL) + return (EINVAL); + + /* Only PTHREAD_PROCESS_PRIVATE is supported. */ + if (pshared != PTHREAD_PROCESS_PRIVATE) + return (EINVAL); + + (*attr)->m_pshared = pshared; + return (0); +} Modified: user/davidxu/libthr/lib/libthr/thread/thr_rwlockattr.c ============================================================================== --- user/davidxu/libthr/lib/libthr/thread/thr_rwlockattr.c Thu Nov 18 02:12:45 2010 (r215447) +++ user/davidxu/libthr/lib/libthr/thread/thr_rwlockattr.c Thu Nov 18 02:16:06 2010 (r215448) @@ -39,6 +39,9 @@ __weak_reference(_pthread_rwlockattr_get __weak_reference(_pthread_rwlockattr_init, pthread_rwlockattr_init); __weak_reference(_pthread_rwlockattr_setpshared, pthread_rwlockattr_setpshared); +int _pthread_rwlockattr_setpshared_1_0(pthread_rwlockattr_t *, int); +FB10_COMPAT(_pthread_rwlockattr_setpshared_1_0, pthread_rwlockattr_setpshared); + int _pthread_rwlockattr_destroy(pthread_rwlockattr_t *rwlockattr) { @@ -61,6 +64,9 @@ int _pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *rwlockattr, int *pshared) { + if (rwlockattr == NULL || *rwlockattr == NULL) + return (EINVAL); + *pshared = (*rwlockattr)->pshared; return(0); @@ -89,6 +95,24 @@ _pthread_rwlockattr_init(pthread_rwlocka int _pthread_rwlockattr_setpshared(pthread_rwlockattr_t *rwlockattr, int pshared) { + if (rwlockattr == NULL || *rwlockattr == NULL) + return (EINVAL); + + if (pshared != PTHREAD_PROCESS_PRIVATE && + pshared != PTHREAD_PROCESS_SHARED) + return(EINVAL); + + (*rwlockattr)->pshared = pshared; + + return(0); +} + +int +_pthread_rwlockattr_setpshared_1_0(pthread_rwlockattr_t *rwlockattr, int pshared) +{ + if (rwlockattr == NULL || *rwlockattr == NULL) + return (EINVAL); + /* Only PTHREAD_PROCESS_PRIVATE is supported. */ if (pshared != PTHREAD_PROCESS_PRIVATE) return(EINVAL);