⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pthreadtypes.h

📁 glibc 2.9,最新版的C语言库函数
💻 H
字号:
/* Machine-specific pthread type layouts.  PowerPC version.   Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.   This file is part of the GNU C Library.   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.   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, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  */#ifndef _BITS_PTHREADTYPES_H#define _BITS_PTHREADTYPES_H	1#include <bits/wordsize.h>#if __WORDSIZE == 64# define __SIZEOF_PTHREAD_ATTR_T 56# define __SIZEOF_PTHREAD_MUTEX_T 40# define __SIZEOF_PTHREAD_MUTEXATTR_T 4# define __SIZEOF_PTHREAD_COND_T 48# define __SIZEOF_PTHREAD_CONDATTR_T 4# define __SIZEOF_PTHREAD_RWLOCK_T 56# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8# define __SIZEOF_PTHREAD_BARRIER_T 32# define __SIZEOF_PTHREAD_BARRIERATTR_T 4#else# define __SIZEOF_PTHREAD_ATTR_T 36# define __SIZEOF_PTHREAD_MUTEX_T 24# define __SIZEOF_PTHREAD_MUTEXATTR_T 4# define __SIZEOF_PTHREAD_COND_T 48# define __SIZEOF_PTHREAD_CONDATTR_T 4# define __SIZEOF_PTHREAD_RWLOCK_T 32# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8# define __SIZEOF_PTHREAD_BARRIER_T 20# define __SIZEOF_PTHREAD_BARRIERATTR_T 4#endif/* Thread identifiers.  The structure of the attribute type is   deliberately not exposed.  */typedef unsigned long int pthread_t;typedef union{  char __size[__SIZEOF_PTHREAD_ATTR_T];  long int __align;} pthread_attr_t;#if __WORDSIZE == 64typedef struct __pthread_internal_list{  struct __pthread_internal_list *__prev;  struct __pthread_internal_list *__next;} __pthread_list_t;#elsetypedef struct __pthread_internal_slist{  struct __pthread_internal_slist *__next;} __pthread_slist_t;#endif/* Data structures for mutex handling.  The structure of the attribute   type is deliberately not exposed.  */typedef union{  struct __pthread_mutex_s  {    int __lock;    unsigned int __count;    int __owner;#if __WORDSIZE == 64    unsigned int __nusers;#endif    /* KIND must stay at this position in the structure to maintain       binary compatibility.  */    int __kind;#if __WORDSIZE == 64    int __spins;    __pthread_list_t __list;# define __PTHREAD_MUTEX_HAVE_PREV	1#else    unsigned int __nusers;    __extension__ union    {      int __spins;      __pthread_slist_t __list;    };#endif  } __data;  char __size[__SIZEOF_PTHREAD_MUTEX_T];  long int __align;} pthread_mutex_t;typedef union{  char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];  int __align;} pthread_mutexattr_t;/* Data structure for conditional variable handling.  The structure of   the attribute type is deliberately not exposed.  */typedef union{  struct  {    int __lock;    unsigned int __futex;    __extension__ unsigned long long int __total_seq;    __extension__ unsigned long long int __wakeup_seq;    __extension__ unsigned long long int __woken_seq;    void *__mutex;    unsigned int __nwaiters;    unsigned int __broadcast_seq;  } __data;  char __size[__SIZEOF_PTHREAD_COND_T];  __extension__ long long int __align;} pthread_cond_t;typedef union{  char __size[__SIZEOF_PTHREAD_CONDATTR_T];  int __align;} pthread_condattr_t;/* Keys for thread-specific data */typedef unsigned int pthread_key_t;/* Once-only execution */typedef int pthread_once_t;#if defined __USE_UNIX98 || defined __USE_XOPEN2K/* Data structure for read-write lock variable handling.  The   structure of the attribute type is deliberately not exposed.  */typedef union{# if __WORDSIZE == 64  struct  {    int __lock;    unsigned int __nr_readers;    unsigned int __readers_wakeup;    unsigned int __writer_wakeup;    unsigned int __nr_readers_queued;    unsigned int __nr_writers_queued;    int __writer;    int __shared;    unsigned long int __pad1;    unsigned long int __pad2;    /* FLAGS must stay at this position in the structure to maintain       binary compatibility.  */    unsigned int __flags;  } __data;# else  struct  {    int __lock;    unsigned int __nr_readers;    unsigned int __readers_wakeup;    unsigned int __writer_wakeup;    unsigned int __nr_readers_queued;    unsigned int __nr_writers_queued;    unsigned char __pad1;    unsigned char __pad2;    unsigned char __shared;    /* FLAGS must stay at this position in the structure to maintain       binary compatibility.  */    unsigned char __flags;    int __writer;  } __data;# endif  char __size[__SIZEOF_PTHREAD_RWLOCK_T];  long int __align;} pthread_rwlock_t;typedef union{  char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];  long int __align;} pthread_rwlockattr_t;#endif#ifdef __USE_XOPEN2K/* POSIX spinlock data type.  */typedef volatile int pthread_spinlock_t;/* POSIX barriers data type.  The structure of the type is   deliberately not exposed.  */typedef union{  char __size[__SIZEOF_PTHREAD_BARRIER_T];  long int __align;} pthread_barrier_t;typedef union{  char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];  int __align;} pthread_barrierattr_t;#endif#endif	/* bits/pthreadtypes.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -