Data Definitions for libpthread

pthread.h


typedef unsigned int pthread_key_t;

typedef int pthread_once_t;

struct _pthread_fastlock
{
  int __spinlock;
}
 ;


typedef unsigned long pthread_t;


typedef struct _pthread_descr_struct *_pthread_descr;

struct _pthread_descr_struct;


typedef struct
{
  struct _pthread_fastlock lock;
  _pthread_descr owner;
  int kind;
  unsigned int count;
}
pthread_mutex_t;

typedef struct
{
  int __mutexkind;
}
pthread_mutexattr_t;


typedef struct
{
  int __detachstate;
  int __schedpolicy;
  struct sched_param __schedparam;
  int __inheritsched;
  int __scope;
  void *__stackaddr;
  unsigned long __stacksize;
}
pthread_attr_t;


typedef struct
{
  struct _pthread_fastlock lock;
  _pthread_descr wait_chain;
}
pthread_cond_t;

typedef void *pthread_condattr_t;



#define PTHREAD_ONCE_INIT	0
#define PTHREAD_CREATE_DETACHED	PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_JOINABLE	PTHREAD_CREATE_JOINABLE
#define PTHREAD_EXPLICIT_SCHED	PTHREAD_EXPLICIT_SCHED
#define PTHREAD_INHERIT_SCHED	PTHREAD_INHERIT_SCHED
#define PTHREAD_PROCESS_PRIVATE	PTHREAD_PROCESS_PRIVATE
#define PTHREAD_PROCESS_SHARED	PTHREAD_PROCESS_SHARED
#define PTHREAD_SCOPE_PROCESS	PTHREAD_SCOPE_PROCESS
#define PTHREAD_SCOPE_SYSTEM	PTHREAD_SCOPE_SYSTEM

#define PTHREAD_CANCELED	((void*)-1)
#define PTHREAD_CANCEL_ASYNCHRONOUS	PTHREAD_CANCEL_ASYNCHRONOUS
#define PTHREAD_CANCEL_DEFERRED	PTHREAD_CANCEL_DEFERRED
#define PTHREAD_CANCEL_DISABLE	PTHREAD_CANCEL_DISABLE
#define PTHREAD_CANCEL_ENABLE	PTHREAD_CANCEL_ENABLE

semaphore.h


typedef struct
{
  long status;
  int spinlock;
}
sem_t;


#define SEM_FAILED	((sem_t*)0)

#define SEM_VALUE_MAX	((int)((~0u)>>1))