Fri Aug 6 05:25:02 2010 UTC ()
Add pthread_getattr_np()


(christos)
diff -r1.33 -r1.34 src/lib/libpthread/pthread.h
diff -r1.12 -r1.13 src/lib/libpthread/pthread_attr.c

cvs diff -r1.33 -r1.34 src/lib/libpthread/pthread.h (expand / switch to unified diff)

--- src/lib/libpthread/pthread.h 2009/01/11 02:46:48 1.33
+++ src/lib/libpthread/pthread.h 2010/08/06 05:25:02 1.34
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: pthread.h,v 1.33 2009/01/11 02:46:48 christos Exp $ */ 1/* $NetBSD: pthread.h,v 1.34 2010/08/06 05:25:02 christos Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2001 The NetBSD Foundation, Inc. 4 * Copyright (c) 2001 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Nathan J. Williams. 8 * by Nathan J. Williams.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -181,26 +181,27 @@ int pthread_barrier_destroy(pthread_barr @@ -181,26 +181,27 @@ int pthread_barrier_destroy(pthread_barr
181int pthread_barrierattr_init(pthread_barrierattr_t *); 181int pthread_barrierattr_init(pthread_barrierattr_t *);
182int pthread_barrierattr_destroy(pthread_barrierattr_t *); 182int pthread_barrierattr_destroy(pthread_barrierattr_t *);
183 183
184int pthread_getschedparam(pthread_t, int * __restrict, 184int pthread_getschedparam(pthread_t, int * __restrict,
185 struct sched_param * __restrict); 185 struct sched_param * __restrict);
186int pthread_setschedparam(pthread_t, int, const struct sched_param *); 186int pthread_setschedparam(pthread_t, int, const struct sched_param *);
187int pthread_setschedprio(pthread_t, int); 187int pthread_setschedprio(pthread_t, int);
188 188
189int *pthread__errno(void); 189int *pthread__errno(void);
190 190
191#if defined(_NETBSD_SOURCE) 191#if defined(_NETBSD_SOURCE)
192int pthread_getaffinity_np(pthread_t, size_t, cpuset_t *); 192int pthread_getaffinity_np(pthread_t, size_t, cpuset_t *);
193int pthread_setaffinity_np(pthread_t, size_t, cpuset_t *); 193int pthread_setaffinity_np(pthread_t, size_t, cpuset_t *);
 194int pthread_getattr_np(pthread_t, pthread_attr_t *);
194 195
195int pthread_mutex_held_np(pthread_mutex_t *); 196int pthread_mutex_held_np(pthread_mutex_t *);
196pthread_t pthread_mutex_owner_np(pthread_mutex_t *); 197pthread_t pthread_mutex_owner_np(pthread_mutex_t *);
197 198
198int pthread_rwlock_held_np(pthread_rwlock_t *); 199int pthread_rwlock_held_np(pthread_rwlock_t *);
199int pthread_rwlock_wrheld_np(pthread_rwlock_t *); 200int pthread_rwlock_wrheld_np(pthread_rwlock_t *);
200int pthread_rwlock_rdheld_np(pthread_rwlock_t *); 201int pthread_rwlock_rdheld_np(pthread_rwlock_t *);
201 202
202int pthread_cond_has_waiters_np(pthread_cond_t *); 203int pthread_cond_has_waiters_np(pthread_cond_t *);
203#endif /* _NETBSD_SOURCE */ 204#endif /* _NETBSD_SOURCE */
204 205
205__END_DECLS 206__END_DECLS
206 207

cvs diff -r1.12 -r1.13 src/lib/libpthread/pthread_attr.c (expand / switch to unified diff)

--- src/lib/libpthread/pthread_attr.c 2009/01/18 12:14:16 1.12
+++ src/lib/libpthread/pthread_attr.c 2010/08/06 05:25:02 1.13
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: pthread_attr.c,v 1.12 2009/01/18 12:14:16 lukem Exp $ */ 1/* $NetBSD: pthread_attr.c,v 1.13 2010/08/06 05:25:02 christos Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2001, 2002, 2003, 2008 The NetBSD Foundation, Inc. 4 * Copyright (c) 2001, 2002, 2003, 2008 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Nathan J. Williams. 8 * by Nathan J. Williams.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -20,27 +20,27 @@ @@ -20,27 +20,27 @@
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE. 29 * POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32#include <sys/cdefs.h> 32#include <sys/cdefs.h>
33__RCSID("$NetBSD: pthread_attr.c,v 1.12 2009/01/18 12:14:16 lukem Exp $"); 33__RCSID("$NetBSD: pthread_attr.c,v 1.13 2010/08/06 05:25:02 christos Exp $");
34 34
35#include <errno.h> 35#include <errno.h>
36#include <stdio.h> 36#include <stdio.h>
37#include <stdlib.h> 37#include <stdlib.h>
38#include <string.h> 38#include <string.h>
39#include <unistd.h> 39#include <unistd.h>
40 40
41#include "pthread.h" 41#include "pthread.h"
42#include "pthread_int.h" 42#include "pthread_int.h"
43 43
44static struct pthread_attr_private *pthread__attr_init_private( 44static struct pthread_attr_private *pthread__attr_init_private(
45 pthread_attr_t *); 45 pthread_attr_t *);
46 46
@@ -433,13 +433,26 @@ pthread_attr_setname_np(pthread_attr_t * @@ -433,13 +433,26 @@ pthread_attr_setname_np(pthread_attr_t *
433 return EINVAL; 433 return EINVAL;
434 } 434 }
435 p->ptap_namearg = arg; 435 p->ptap_namearg = arg;
436 436
437 return 0; 437 return 0;
438} 438}
439 439
440int 440int
441pthread_attr_setcreatesuspend_np(pthread_attr_t *attr) 441pthread_attr_setcreatesuspend_np(pthread_attr_t *attr)
442{ 442{
443 attr->pta_flags |= PT_FLAG_SUSPENDED; 443 attr->pta_flags |= PT_FLAG_SUSPENDED;
444 return 0; 444 return 0;
445} 445}
 446
 447int
 448pthread_getattr_np(pthread_t thread, pthread_attr_t *attr)
 449{
 450 int error;
 451 if ((error = pthread_attr_init(attr)) != 0)
 452 return error;
 453 if ((error = pthread_attr_get_np(thread, attr)) != 0) {
 454 (void)pthread_attr_destroy(attr);
 455 return error;
 456 }
 457 return 0;
 458}