diff options
Diffstat (limited to 'lib/libc/include/powerpc64-linux-gnu/bits/struct_rwlock.h')
| -rw-r--r-- | lib/libc/include/powerpc64-linux-gnu/bits/struct_rwlock.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/lib/libc/include/powerpc64-linux-gnu/bits/struct_rwlock.h b/lib/libc/include/powerpc64-linux-gnu/bits/struct_rwlock.h new file mode 100644 index 0000000000..7ab9afe0ee --- /dev/null +++ b/lib/libc/include/powerpc64-linux-gnu/bits/struct_rwlock.h @@ -0,0 +1,61 @@ +/* PowerPC internal rwlock struct definitions. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _RWLOCK_INTERNAL_H +#define _RWLOCK_INTERNAL_H + +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; +#if __WORDSIZE == 64 + int __cur_writer; + int __shared; + unsigned char __rwelision; + unsigned char __pad1[7]; + unsigned long int __pad2; + /* FLAGS must stay at this position in the structure to maintain + binary compatibility. */ + unsigned int __flags; +# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, {0, 0, 0, 0, 0, 0, 0 } +#else + unsigned char __rwelision; + unsigned char __pad2; + unsigned char __shared; + /* FLAGS must stay at this position in the structure to maintain + binary compatibility. */ + unsigned char __flags; + int __cur_writer; +# define __PTHREAD_RWLOCK_ELISION_EXTRA 0 +#endif +}; + +#if __WORDSIZE == 64 +# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ + 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags +#else +# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ + 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0, __flags, 0 +#endif + +#endif
\ No newline at end of file |
