Rename *_priv.* to *P.*
[kopensolaris-gnu/glibc.git] / nptl / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / x86 / synchP.h
1 /* Copyright (C) 2008 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
4
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
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
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
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
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
17    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18    02111-1307 USA.  */
19
20 #ifndef _SYNCH_PRIV_H
21 #define _SYNCH_PRIV_H
22
23 /* mutex helper macros */
24 #define mutex_type                      flags.mbcp_type_un.mtype_rcount.count_type1
25 #define mutex_magic                     flags.magic
26 #define mutex_flag                      flags.flag1
27 #define mutex_ceiling           flags.ceiling
28 #define mutex_rcount            flags.mbcp_type_un.mtype_rcount.count_type2
29 #define mutex_owner                     data.data32.owner
30 #define mutex_lockword32        lock.lock32.lockword
31 #define mutex_lockword64        lock.owner64
32 #define mutex_lockbyte          lock.lock64.pad[7]
33 #define mutex_waiters           lock.lock64.pad[6]
34 #define mutex_cond_waiters      data.data32.cond_waiters
35 #define mutex_ownerpid          lock.lock32.ownerpid
36 #define RECURSION_MAX           255 /* UCHAR_MAX */
37 #define LOCKBYTE_SET        0x01
38 #define LOCKBYTE_UNSET      0x00
39 #define LOCKWORD32_SET_NO_WAITERS   0x01000000
40 #define LOCKWORD32_UNSET_NO_WAITERS 0x00000000
41 #define LOCKWORD64_SET_NO_WAITERS   0x0100000000000000
42 #define LOCKWORD64_UNSET_NO_WAITERS 0x0000000000000000
43 #define MUTEX_OWNERPID_SHIFT    0
44
45 /* condition variable helper macros */
46 #define cond_type                       flags.type
47 #define cond_magic                      flags.magic
48 #define cond_clockid            flags.flag[1]
49 #define cond_waiters_user       flags.flag[2]
50 #define cond_waiters_kernel     flags.flag[3]
51
52 /* semaphore helper macros */
53 #define sema_count              count
54 #define sema_type               type
55 #define sema_waiters    flags[7]
56
57 #endif /* _SYNCH_PRIV_H */