/
usr
/
include
/
bits
/
/usr/include/bits
mkdir
upload
Name
Size
Mode
Actions
types/
-
0755
rm
a.out.h
268
0644
edit
dl
rm
byteswap.h
2449
0644
edit
dl
rm
cmathcalls.h
4138
0644
edit
dl
rm
confname.h
23708
0644
edit
dl
rm
cpu-set.h
4515
0644
edit
dl
rm
dirent.h
1770
0644
edit
dl
rm
dlfcn.h
2520
0644
edit
dl
rm
elfclass.h
426
0644
edit
dl
rm
endian.h
176
0644
edit
dl
rm
environments.h
3790
0644
edit
dl
rm
epoll.h
1070
0644
edit
dl
rm
errno.h
1425
0644
edit
dl
rm
error.h
2683
0644
edit
dl
rm
eventfd.h
1128
0644
edit
dl
rm
fcntl-linux.h
13712
0644
edit
dl
rm
fcntl.h
2245
0644
edit
dl
rm
fcntl2.h
5574
0644
edit
dl
rm
fenv.h
4605
0644
edit
dl
rm
fenvinline.h
190
0644
edit
dl
rm
floatn-common.h
9764
0644
edit
dl
rm
floatn.h
4372
0644
edit
dl
rm
flt-eval-method.h
1214
0644
edit
dl
rm
fp-fast.h
1215
0644
edit
dl
rm
fp-logb.h
1011
0644
edit
dl
rm
getopt_core.h
3666
0644
edit
dl
rm
getopt_ext.h
3037
0644
edit
dl
rm
getopt_posix.h
1809
0644
edit
dl
rm
hwcap.h
971
0644
edit
dl
rm
in.h
9466
0644
edit
dl
rm
indirect-return.h
1585
0644
edit
dl
rm
initspin.h
25
0644
edit
dl
rm
inotify.h
1079
0644
edit
dl
rm
ioctl-types.h
2455
0644
edit
dl
rm
ioctls.h
4477
0644
edit
dl
rm
ipc.h
2070
0644
edit
dl
rm
ipctypes.h
1175
0644
edit
dl
rm
iscanonical.h
2478
0644
edit
dl
rm
libc-header-start.h
2607
0644
edit
dl
rm
libm-simd-decl-stubs.h
3003
0644
edit
dl
rm
link.h
4285
0644
edit
dl
rm
link_lavcurrent.h
1099
0644
edit
dl
rm
locale.h
1367
0644
edit
dl
rm
local_lim.h
3184
0644
edit
dl
rm
long-double.h
923
0644
edit
dl
rm
math-finite.h
5374
0644
edit
dl
rm
math-vector.h
2307
0644
edit
dl
rm
mathcalls-helper-functions.h
1764
0644
edit
dl
rm
mathcalls-narrow.h
1306
0644
edit
dl
rm
mathcalls.h
13100
0644
edit
dl
rm
mathdef.h
890
0644
edit
dl
rm
mathinline.h
13015
0644
edit
dl
rm
mman-linux.h
4895
0644
edit
dl
rm
mman-shared.h
2736
0644
edit
dl
rm
mman.h
2063
0644
edit
dl
rm
monetary-ldbl.h
1046
0644
edit
dl
rm
mqueue.h
1245
0644
edit
dl
rm
mqueue2.h
2150
0644
edit
dl
rm
msq.h
2637
0644
edit
dl
rm
netdb.h
1263
0644
edit
dl
rm
param.h
1432
0644
edit
dl
rm
poll.h
2075
0644
edit
dl
rm
poll2.h
2485
0644
edit
dl
rm
posix1_lim.h
5188
0644
edit
dl
rm
posix2_lim.h
2866
0644
edit
dl
rm
posix_opt.h
5766
0644
edit
dl
rm
printf-ldbl.h
991
0644
edit
dl
rm
pthreadtypes-arch.h
3290
0644
edit
dl
rm
pthreadtypes.h
3071
0644
edit
dl
rm
ptrace-shared.h
2900
0644
edit
dl
rm
resource.h
6298
0644
edit
dl
rm
sched.h
3747
0644
edit
dl
rm
select.h
2105
0644
edit
dl
rm
select2.h
1437
0644
edit
dl
rm
sem.h
2619
0644
edit
dl
rm
semaphore.h
1237
0644
edit
dl
rm
setjmp.h
1286
0644
edit
dl
rm
setjmp2.h
1704
0644
edit
dl
rm
shm.h
3591
0644
edit
dl
rm
sigaction.h
2934
0644
edit
dl
rm
sigcontext.h
4264
0644
edit
dl
rm
sigevent-consts.h
1470
0644
edit
dl
rm
siginfo-arch.h
729
0644
edit
dl
rm
siginfo-consts-arch.h
204
0644
edit
dl
rm
siginfo-consts.h
5973
0644
edit
dl
rm
signalfd.h
1066
0644
edit
dl
rm
signum-generic.h
4340
0644
edit
dl
rm
signum.h
1633
0644
edit
dl
rm
sigstack.h
1167
0644
edit
dl
rm
sigthread.h
1691
0644
edit
dl
rm
sockaddr.h
1513
0644
edit
dl
rm
socket.h
15562
0644
edit
dl
rm
socket2.h
3036
0644
edit
dl
rm
socket_type.h
2215
0644
edit
dl
rm
ss_flags.h
1187
0644
edit
dl
rm
stab.def
9039
0644
edit
dl
rm
stat.h
7619
0644
edit
dl
rm
statfs.h
1916
0644
edit
dl
rm
statvfs.h
3422
0644
edit
dl
rm
statx-generic.h
2049
0644
edit
dl
rm
statx.h
1399
0644
edit
dl
rm
stdint-intn.h
1036
0644
edit
dl
rm
stdint-uintn.h
1048
0644
edit
dl
rm
stdio-ldbl.h
3013
0644
edit
dl
rm
stdio.h
5586
0644
edit
dl
rm
stdio2.h
12546
0644
edit
dl
rm
stdio_lim.h
1212
0644
edit
dl
rm
stdlib-bsearch.h
1377
0644
edit
dl
rm
stdlib-float.h
1114
0644
edit
dl
rm
stdlib-ldbl.h
1372
0644
edit
dl
rm
stdlib.h
5069
0644
edit
dl
rm
strings_fortified.h
1239
0644
edit
dl
rm
string_fortified.h
4683
0644
edit
dl
rm
syscall.h
45663
0644
edit
dl
rm
sysctl.h
898
0644
edit
dl
rm
syslog-ldbl.h
1205
0644
edit
dl
rm
syslog-path.h
1060
0644
edit
dl
rm
syslog.h
1684
0644
edit
dl
rm
sysmacros.h
2952
0644
edit
dl
rm
sys_errlist.h
1215
0644
edit
dl
rm
termios.h
5363
0644
edit
dl
rm
thread-shared-types.h
6735
0644
edit
dl
rm
time.h
2998
0644
edit
dl
rm
timerfd.h
1102
0644
edit
dl
rm
timex.h
4595
0644
edit
dl
rm
types.h
8335
0644
edit
dl
rm
typesizes.h
3397
0644
edit
dl
rm
uintn-identity.h
1541
0644
edit
dl
rm
uio-ext.h
1922
0644
edit
dl
rm
uio_lim.h
1384
0644
edit
dl
rm
unistd.h
10812
0644
edit
dl
rm
utmp.h
4066
0644
edit
dl
rm
utmpx.h
3577
0644
edit
dl
rm
utsname.h
1212
0644
edit
dl
rm
waitflags.h
1696
0644
edit
dl
rm
waitstatus.h
2286
0644
edit
dl
rm
wchar-ldbl.h
2423
0644
edit
dl
rm
wchar.h
1905
0644
edit
dl
rm
wchar2.h
18221
0644
edit
dl
rm
wctype-wchar.h
6301
0644
edit
dl
rm
wordsize.h
442
0644
edit
dl
rm
xopen_lim.h
3857
0644
edit
dl
rm
Edit:
/usr/include/bits/thread-shared-types.h
(6735B)
/* Common threading primitives definitions for both POSIX and C11. Copyright (C) 2017-2018 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 _THREAD_SHARED_TYPES_H #define _THREAD_SHARED_TYPES_H 1 /* Arch-specific definitions. Each architecture must define the following macros to define the expected sizes of pthread data types: __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. Also, the following macros must be define for internal pthread_mutex_t struct definitions (struct __pthread_mutex_s): __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind' and before '__spin' (for 64 bits) or '__nusers' (for 32 bits). __PTHREAD_COMPAT_PADDING_END - any additional members at the end of the internal structure. __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock elision or 0 otherwise. __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The preferred value for new architectures is 0. __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and __list will be place inside a union for linuxthreads compatibility. The preferred value for new architectures is 0. For a new port the preferred values for the required defines are: #define __PTHREAD_COMPAT_PADDING_MID #define __PTHREAD_COMPAT_PADDING_END #define __PTHREAD_MUTEX_LOCK_ELISION 0 #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0 #define __PTHREAD_MUTEX_USE_UNION 0 __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to eventually support lock elision using transactional memory. The additional macro defines any constraint for the lock alignment inside the thread structures: __LOCK_ALIGNMENT - for internal lock/futex usage. Same idea but for the once locking primitive: __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t) must be defined. */ #include <bits/pthreadtypes-arch.h> /* Common definition of pthread_mutex_t. */ #if !__PTHREAD_MUTEX_USE_UNION typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; #else typedef struct __pthread_internal_slist { struct __pthread_internal_slist *__next; } __pthread_slist_t; #endif /* Lock elision support. */ #if __PTHREAD_MUTEX_LOCK_ELISION # if !__PTHREAD_MUTEX_USE_UNION # define __PTHREAD_SPINS_DATA \ short __spins; \ short __elision # define __PTHREAD_SPINS 0, 0 # else # define __PTHREAD_SPINS_DATA \ struct \ { \ short __espins; \ short __eelision; \ } __elision_data # define __PTHREAD_SPINS { 0, 0 } # define __spins __elision_data.__espins # define __elision __elision_data.__eelision # endif #else # define __PTHREAD_SPINS_DATA int __spins /* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER. */ # define __PTHREAD_SPINS 0 #endif struct __pthread_mutex_s { int __lock __LOCK_ALIGNMENT; unsigned int __count; int __owner; #if !__PTHREAD_MUTEX_NUSERS_AFTER_KIND unsigned int __nusers; #endif /* KIND must stay at this position in the structure to maintain binary compatibility with static initializers. Concurrency notes: The __kind of a mutex is initialized either by the static PTHREAD_MUTEX_INITIALIZER or by a call to pthread_mutex_init. After a mutex has been initialized, the __kind of a mutex is usually not changed. BUT it can be set to -1 in pthread_mutex_destroy or elision can be enabled. This is done concurrently in the pthread_mutex_*lock functions by using the macro FORCE_ELISION. This macro is only defined for architectures which supports lock elision. For elision, there are the flags PTHREAD_MUTEX_ELISION_NP and PTHREAD_MUTEX_NO_ELISION_NP which can be set in addition to the already set type of a mutex. Before a mutex is initialized, only PTHREAD_MUTEX_NO_ELISION_NP can be set with pthread_mutexattr_settype. After a mutex has been initialized, the functions pthread_mutex_*lock can enable elision - if the mutex-type and the machine supports it - by setting the flag PTHREAD_MUTEX_ELISION_NP. This is done concurrently. Afterwards the lock / unlock functions are using specific elision code-paths. */ int __kind; __PTHREAD_COMPAT_PADDING_MID #if __PTHREAD_MUTEX_NUSERS_AFTER_KIND unsigned int __nusers; #endif #if !__PTHREAD_MUTEX_USE_UNION __PTHREAD_SPINS_DATA; __pthread_list_t __list; # define __PTHREAD_MUTEX_HAVE_PREV 1 #else __extension__ union { __PTHREAD_SPINS_DATA; __pthread_slist_t __list; }; # define __PTHREAD_MUTEX_HAVE_PREV 0 #endif __PTHREAD_COMPAT_PADDING_END }; /* Common definition of pthread_cond_t. */ struct __pthread_cond_s { __extension__ union { __extension__ unsigned long long int __wseq; struct { unsigned int __low; unsigned int __high; } __wseq32; }; __extension__ union { __extension__ unsigned long long int __g1_start; struct { unsigned int __low; unsigned int __high; } __g1_start32; }; unsigned int __glibc_unused___g_refs[2] __LOCK_ALIGNMENT; unsigned int __g_size[2]; unsigned int __g1_orig_size; unsigned int __wrefs; unsigned int __g_signals[2]; }; #endif /* _THREAD_SHARED_TYPES_H */
Save
cmd:
run