/* Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. OpenSolaris bits contributed by David Bartley #include #include #include #include static const struct pthread_condattr default_attr = { .value = 0 }; int __pthread_cond_init (cond, cond_attr) pthread_cond_t *cond; const pthread_condattr_t *cond_attr; { const struct pthread_condattr *icond_attr; icond_attr = (struct pthread_condattr *) cond_attr ?: &default_attr; memset (cond, 0, sizeof(pthread_cond_t)); cond->cond_type = (icond_attr->value & 1) ? PTHREAD_PROCESS_SHARED : PTHREAD_PROCESS_PRIVATE; cond->cond_magic = COND_MAGIC; cond->cond_clockid = (((icond_attr->value) >> 1) & ((1 << COND_NWAITERS_SHIFT) - 1)); return 0; } versioned_symbol (libpthread, __pthread_cond_init, pthread_cond_init, GLIBC_2_3_2);