X7ROOT File Manager
Current Path:
/usr/include/bits
usr
/
include
/
bits
/
📁
..
📄
a.out.h
(268 B)
📄
byteswap.h
(2.39 KB)
📄
cmathcalls.h
(4.04 KB)
📄
confname.h
(23.15 KB)
📄
cpu-set.h
(4.41 KB)
📄
dirent.h
(1.73 KB)
📄
dlfcn.h
(2.46 KB)
📄
elfclass.h
(426 B)
📄
endian.h
(176 B)
📄
environments.h
(3.7 KB)
📄
epoll.h
(1.04 KB)
📄
errno.h
(1.39 KB)
📄
error.h
(2.62 KB)
📄
eventfd.h
(1.1 KB)
📄
fcntl-linux.h
(13.39 KB)
📄
fcntl.h
(2.19 KB)
📄
fcntl2.h
(5.44 KB)
📄
fenv.h
(4.5 KB)
📄
fenvinline.h
(190 B)
📄
floatn-common.h
(9.54 KB)
📄
floatn.h
(4.27 KB)
📄
flt-eval-method.h
(1.19 KB)
📄
fp-fast.h
(1.19 KB)
📄
fp-logb.h
(1011 B)
📄
getopt_core.h
(3.58 KB)
📄
getopt_ext.h
(2.97 KB)
📄
getopt_posix.h
(1.77 KB)
📄
hwcap.h
(971 B)
📄
in.h
(9.24 KB)
📄
indirect-return.h
(1.55 KB)
📄
initspin.h
(25 B)
📄
inotify.h
(1.05 KB)
📄
ioctl-types.h
(2.4 KB)
📄
ioctls.h
(4.37 KB)
📄
ipc.h
(2.02 KB)
📄
ipctypes.h
(1.15 KB)
📄
iscanonical.h
(2.42 KB)
📄
libc-header-start.h
(2.55 KB)
📄
libm-simd-decl-stubs.h
(2.93 KB)
📄
link.h
(4.18 KB)
📄
link_lavcurrent.h
(1.07 KB)
📄
local_lim.h
(3.11 KB)
📄
locale.h
(1.33 KB)
📄
long-double.h
(923 B)
📄
math-finite.h
(5.25 KB)
📄
math-vector.h
(2.25 KB)
📄
mathcalls-helper-functions.h
(1.72 KB)
📄
mathcalls-narrow.h
(1.28 KB)
📄
mathcalls.h
(12.79 KB)
📄
mathdef.h
(890 B)
📄
mathinline.h
(12.71 KB)
📄
mman-linux.h
(4.78 KB)
📄
mman-shared.h
(2.67 KB)
📄
mman.h
(2.01 KB)
📄
monetary-ldbl.h
(1.02 KB)
📄
mqueue.h
(1.22 KB)
📄
mqueue2.h
(2.1 KB)
📄
msq.h
(2.58 KB)
📄
netdb.h
(1.23 KB)
📄
param.h
(1.4 KB)
📄
poll.h
(2.03 KB)
📄
poll2.h
(2.43 KB)
📄
posix1_lim.h
(5.07 KB)
📄
posix2_lim.h
(2.8 KB)
📄
posix_opt.h
(5.63 KB)
📄
printf-ldbl.h
(991 B)
📄
pthreadtypes-arch.h
(3.21 KB)
📄
pthreadtypes.h
(3 KB)
📄
ptrace-shared.h
(2.83 KB)
📄
resource.h
(6.15 KB)
📄
sched.h
(3.66 KB)
📄
select.h
(2.06 KB)
📄
select2.h
(1.4 KB)
📄
sem.h
(2.56 KB)
📄
semaphore.h
(1.21 KB)
📄
setjmp.h
(1.26 KB)
📄
setjmp2.h
(1.66 KB)
📄
shm.h
(3.51 KB)
📄
sigaction.h
(2.87 KB)
📄
sigcontext.h
(4.16 KB)
📄
sigevent-consts.h
(1.44 KB)
📄
siginfo-arch.h
(729 B)
📄
siginfo-consts-arch.h
(204 B)
📄
siginfo-consts.h
(5.83 KB)
📄
signalfd.h
(1.04 KB)
📄
signum-generic.h
(4.24 KB)
📄
signum.h
(1.59 KB)
📄
sigstack.h
(1.14 KB)
📄
sigthread.h
(1.65 KB)
📄
sockaddr.h
(1.48 KB)
📄
socket.h
(15.2 KB)
📄
socket2.h
(2.96 KB)
📄
socket_type.h
(2.16 KB)
📄
ss_flags.h
(1.16 KB)
📄
stab.def
(8.83 KB)
📄
stat.h
(7.44 KB)
📄
statfs.h
(1.87 KB)
📄
statvfs.h
(3.34 KB)
📄
statx-generic.h
(2 KB)
📄
statx.h
(1.37 KB)
📄
stdint-intn.h
(1.01 KB)
📄
stdint-uintn.h
(1.02 KB)
📄
stdio-ldbl.h
(2.94 KB)
📄
stdio.h
(5.46 KB)
📄
stdio2.h
(12.25 KB)
📄
stdio_lim.h
(1.18 KB)
📄
stdlib-bsearch.h
(1.34 KB)
📄
stdlib-float.h
(1.09 KB)
📄
stdlib-ldbl.h
(1.34 KB)
📄
stdlib.h
(4.95 KB)
📄
string_fortified.h
(4.57 KB)
📄
strings_fortified.h
(1.21 KB)
📄
sys_errlist.h
(1.19 KB)
📄
syscall.h
(44.59 KB)
📄
sysctl.h
(898 B)
📄
syslog-ldbl.h
(1.18 KB)
📄
syslog-path.h
(1.04 KB)
📄
syslog.h
(1.64 KB)
📄
sysmacros.h
(2.88 KB)
📄
termios.h
(5.24 KB)
📄
thread-shared-types.h
(6.58 KB)
📄
time.h
(2.93 KB)
📄
timerfd.h
(1.08 KB)
📄
timex.h
(4.49 KB)
📁
types
📄
types.h
(8.14 KB)
📄
typesizes.h
(3.32 KB)
📄
uintn-identity.h
(1.5 KB)
📄
uio-ext.h
(1.88 KB)
📄
uio_lim.h
(1.35 KB)
📄
unistd.h
(10.56 KB)
📄
utmp.h
(3.97 KB)
📄
utmpx.h
(3.49 KB)
📄
utsname.h
(1.18 KB)
📄
waitflags.h
(1.66 KB)
📄
waitstatus.h
(2.23 KB)
📄
wchar-ldbl.h
(2.37 KB)
📄
wchar.h
(1.86 KB)
📄
wchar2.h
(17.79 KB)
📄
wctype-wchar.h
(6.15 KB)
📄
wordsize.h
(442 B)
📄
xopen_lim.h
(3.77 KB)
Editing: thread-shared-types.h
/* 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 */
Upload File
Create Folder