OLD | NEW |
1 /* Copyright (C) 2002, 2005 Free Software Foundation, Inc. | 1 /* Copyright (C) 2002, 2005 Free Software Foundation, Inc. |
2 This file is part of the GNU C Library. | 2 This file is part of the GNU C Library. |
3 Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. | 3 Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. |
4 | 4 |
5 The GNU C Library is free software; you can redistribute it and/or | 5 The GNU C Library is free software; you can redistribute it and/or |
6 modify it under the terms of the GNU Lesser General Public | 6 modify it under the terms of the GNU Lesser General Public |
7 License as published by the Free Software Foundation; either | 7 License as published by the Free Software Foundation; either |
8 version 2.1 of the License, or (at your option) any later version. | 8 version 2.1 of the License, or (at your option) any later version. |
9 | 9 |
10 The GNU C Library is distributed in the hope that it will be useful, | 10 The GNU C Library is distributed in the hope that it will be useful, |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 Lesser General Public License for more details. | 13 Lesser General Public License for more details. |
14 | 14 |
15 You should have received a copy of the GNU Lesser General Public | 15 You should have received a copy of the GNU Lesser General Public |
16 License along with the GNU C Library; if not, write to the Free | 16 License along with the GNU C Library; if not, write to the Free |
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | 17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
18 02111-1307 USA. */ | 18 02111-1307 USA. */ |
19 | 19 |
20 #include <errno.h> | 20 #include <errno.h> |
21 #include <pthreadP.h> | 21 #include <pthreadP.h> |
22 | 22 |
23 | 23 |
24 int | 24 int |
25 pthread_mutexattr_setpshared (attr, pshared) | 25 pthread_mutexattr_setpshared (attr, pshared) |
26 pthread_mutexattr_t *attr; | 26 pthread_mutexattr_t *attr; |
27 int pshared; | 27 int pshared; |
28 { | 28 { |
29 struct pthread_mutexattr *iattr; | 29 switch (pshared) |
| 30 { |
| 31 case PTHREAD_PROCESS_PRIVATE: /* This is the default state. */ |
| 32 return 0; |
30 | 33 |
31 if (pshared != PTHREAD_PROCESS_PRIVATE | 34 case PTHREAD_PROCESS_SHARED: /* NaCl does not support this. */ |
32 && __builtin_expect (pshared != PTHREAD_PROCESS_SHARED, 0)) | 35 return ENOTSUP; |
33 return EINVAL; | |
34 | 36 |
35 iattr = (struct pthread_mutexattr *) attr; | 37 default: /* Anything else is bogus. */ |
36 | 38 return EINVAL; |
37 if (pshared == PTHREAD_PROCESS_PRIVATE) | 39 } |
38 iattr->mutexkind &= ~PTHREAD_MUTEXATTR_FLAG_PSHARED; | |
39 else | |
40 iattr->mutexkind |= PTHREAD_MUTEXATTR_FLAG_PSHARED; | |
41 | |
42 return 0; | |
43 } | 40 } |
OLD | NEW |