diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-03-03 22:46:57 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-03-03 22:46:57 -0500 |
| commit | 67480cd5157fbea664fa392b1d8a0911579be5a3 (patch) | |
| tree | 5c0208c071ebeaa47dbfb30a7adcc6e2a2a797de /lib/libc/include/i386-linux-gnu/bits/struct_rwlock.h | |
| parent | 3841acf7ef54afd6f315fe79cf51ffd33726d36d (diff) | |
| download | zig-67480cd5157fbea664fa392b1d8a0911579be5a3.tar.gz zig-67480cd5157fbea664fa392b1d8a0911579be5a3.zip | |
update glibc headers to 2.31
Diffstat (limited to 'lib/libc/include/i386-linux-gnu/bits/struct_rwlock.h')
| -rw-r--r-- | lib/libc/include/i386-linux-gnu/bits/struct_rwlock.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/libc/include/i386-linux-gnu/bits/struct_rwlock.h b/lib/libc/include/i386-linux-gnu/bits/struct_rwlock.h new file mode 100644 index 0000000000..863b185dc9 --- /dev/null +++ b/lib/libc/include/i386-linux-gnu/bits/struct_rwlock.h @@ -0,0 +1,65 @@ +/* x86 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; +#ifdef __x86_64__ + int __cur_writer; + int __shared; + signed char __rwelision; +# ifdef __ILP32__ + unsigned char __pad1[3]; +# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 } +# else + unsigned char __pad1[7]; +# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 } +# endif + unsigned long int __pad2; + /* FLAGS must stay at this position in the structure to maintain + binary compatibility. */ + unsigned int __flags; +#else /* __x86_64__ */ + /* FLAGS must stay at this position in the structure to maintain + binary compatibility. */ + unsigned char __flags; + unsigned char __shared; + signed char __rwelision; + unsigned char __pad2; + int __cur_writer; +#endif +}; + +#ifdef __x86_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, __flags, 0, 0, 0, 0 +#endif + +#endif
\ No newline at end of file |
