Rename *_priv.* to *P.*
[kopensolaris-gnu/glibc.git] / nptl / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / pthread_cond_init.c
1 /* Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008
2     Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
5    OpenSolaris bits contributed by David Bartley
6     <dtbartle@csclub.uwaterloo.ca, 2008.
7
8    The GNU C Library is free software; you can redistribute it and/or
9    modify it under the terms of the GNU Lesser General Public
10    License as published by the Free Software Foundation; either
11    version 2.1 of the License, or (at your option) any later version.
12
13    The GNU C Library is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16    Lesser General Public License for more details.
17
18    You should have received a copy of the GNU Lesser General Public
19    License along with the GNU C Library; if not, write to the Free
20    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21    02111-1307 USA.  */
22
23
24 #include <shlib-compat.h>
25 #include <pthreadP.h>
26 #include <string.h>
27 #include <sys/synch.h>
28 #include <synchP.h>
29
30 static const struct pthread_condattr default_attr =
31   {
32     .value = 0
33   };
34
35
36 int
37 __pthread_cond_init (cond, cond_attr)
38      pthread_cond_t *cond;
39      const pthread_condattr_t *cond_attr;
40 {
41   const struct pthread_condattr *icond_attr;
42
43   icond_attr = (struct pthread_condattr *) cond_attr ?: &default_attr;
44
45   memset (cond, 0, sizeof(pthread_cond_t));
46   cond->cond_type = (icond_attr->value & 1) ?
47       PTHREAD_PROCESS_SHARED : PTHREAD_PROCESS_PRIVATE;
48   cond->cond_magic = COND_MAGIC;
49   cond->cond_clockid = (((icond_attr->value) >> 1)
50       & ((1 << COND_NWAITERS_SHIFT) - 1));
51
52   return 0;
53 }
54 versioned_symbol (libpthread, __pthread_cond_init,
55                   pthread_cond_init, GLIBC_2_3_2);