__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

aptanhua@216.73.216.189: ~ $
/* 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  */

Filemanager

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