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

📄 internaltypes.h

📁 glibc 2.9,最新版的C语言库函数
💻 H
字号:
/* Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc.   This file is part of the GNU C Library.   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.   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 _INTERNALTYPES_H#define _INTERNALTYPES_H	1#include <stdint.h>struct pthread_attr{  /* Scheduler parameters and priority.  */  struct sched_param schedparam;  int schedpolicy;  /* Various flags like detachstate, scope, etc.  */  int flags;  /* Size of guard area.  */  size_t guardsize;  /* Stack handling.  */  void *stackaddr;  size_t stacksize;  /* Affinity map.  */  cpu_set_t *cpuset;  size_t cpusetsize;};#define ATTR_FLAG_DETACHSTATE		0x0001#define ATTR_FLAG_NOTINHERITSCHED	0x0002#define ATTR_FLAG_SCOPEPROCESS		0x0004#define ATTR_FLAG_STACKADDR		0x0008#define ATTR_FLAG_OLDATTR		0x0010#define ATTR_FLAG_SCHED_SET		0x0020#define ATTR_FLAG_POLICY_SET		0x0040/* Mutex attribute data structure.  */struct pthread_mutexattr{  /* Identifier for the kind of mutex.     Bit 31 is set if the mutex is to be shared between processes.     Bit 0 to 30 contain one of the PTHREAD_MUTEX_ values to identify     the type of the mutex.  */  int mutexkind;};/* Conditional variable attribute data structure.  */struct pthread_condattr{  /* Combination of values:     Bit 0  : flag whether coditional variable will be shareable between	      processes.     Bit 1-7: clock ID.  */  int value;};/* The __NWAITERS field is used as a counter and to house the number   of bits for other purposes.  COND_CLOCK_BITS is the number   of bits needed to represent the ID of the clock.  COND_NWAITERS_SHIFT   is the number of bits reserved for other purposes like the clock.  */#define COND_CLOCK_BITS		1#define COND_NWAITERS_SHIFT	1/* Read-write lock variable attribute data structure.  */struct pthread_rwlockattr{  int lockkind;  int pshared;};/* Barrier data structure.  */struct pthread_barrier{  unsigned int curr_event;  int lock;  unsigned int left;  unsigned int init_count;  int private;};/* Barrier variable attribute data structure.  */struct pthread_barrierattr{  int pshared;};/* Thread-local data handling.  */struct pthread_key_struct{  /* Sequence numbers.  Even numbers indicated vacant entries.  Note     that zero is even.  We use uintptr_t to not require padding on     32- and 64-bit machines.  On 64-bit machines it helps to avoid     wrapping, too.  */  uintptr_t seq;  /* Destructor for the data.  */  void (*destr) (void *);};/* Check whether an entry is unused.  */#define KEY_UNUSED(p) (((p) & 1) == 0)/* Check whether a key is usable.  We cannot reuse an allocated key if   the sequence counter would overflow after the next destroy call.   This would mean that we potentially free memory for a key with the   same sequence.  This is *very* unlikely to happen, A program would   have to create and destroy a key 2^31 times (on 32-bit platforms,   on 64-bit platforms that would be 2^63).  If it should happen we   simply don't use this specific key anymore.  */#define KEY_USABLE(p) (((uintptr_t) (p)) < ((uintptr_t) ((p) + 2)))/* Handling of read-write lock data.  */// XXX For now there is only one flag.  Maybe more in future.#define RWLOCK_RECURSIVE(rwlock) ((rwlock)->__data.__flags != 0)/* Semaphore variable structure.  */struct new_sem{  unsigned int value;  int private;  unsigned long int nwaiters;};struct old_sem{  unsigned int value;};/* Compatibility type for old conditional variable interfaces.  */typedef struct{  pthread_cond_t *cond;} pthread_cond_2_0_t;#endif	/* internaltypes.h */

⌨️ 快捷键说明

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