e655d3d34b
This makes it possible provide operating system specific types for <pthread.h>. It is in line with the FreeBSD header file structure and allows a future cleanup of <pthread.h> to not expose unrelated things via <sys/types.h> and <unistd.h>. Glibc uses the similar <bits/pthreadtypes.h> for this purpose. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
60 lines
2.1 KiB
C
60 lines
2.1 KiB
C
/* machine/types.h
|
|
Written by Robert Collins <rbtcollins@hotmail.com>
|
|
|
|
This file is part of Cygwin.
|
|
|
|
This software is a copyrighted work licensed under the terms of the
|
|
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
|
details. */
|
|
|
|
#ifndef _SYS__PTHREADTYPES_H_
|
|
#define _SYS__PTHREADTYPES_H_
|
|
|
|
#if !defined(__INSIDE_CYGWIN__) || !defined(__cplusplus)
|
|
|
|
typedef struct __pthread_t {char __dummy;} *pthread_t;
|
|
typedef struct __pthread_mutex_t {char __dummy;} *pthread_mutex_t;
|
|
|
|
typedef struct __pthread_key_t {char __dummy;} *pthread_key_t;
|
|
typedef struct __pthread_attr_t {char __dummy;} *pthread_attr_t;
|
|
typedef struct __pthread_mutexattr_t {char __dummy;} *pthread_mutexattr_t;
|
|
typedef struct __pthread_condattr_t {char __dummy;} *pthread_condattr_t;
|
|
typedef struct __pthread_cond_t {char __dummy;} *pthread_cond_t;
|
|
typedef struct __pthread_barrierattr_t {char __dummy;} *pthread_barrierattr_t;
|
|
typedef struct __pthread_barrier_t {char __dummy;} *pthread_barrier_t;
|
|
|
|
/* These variables are not user alterable. This means you!. */
|
|
typedef struct
|
|
{
|
|
pthread_mutex_t mutex;
|
|
int state;
|
|
}
|
|
pthread_once_t;
|
|
typedef struct __pthread_spinlock_t {char __dummy;} *pthread_spinlock_t;
|
|
typedef struct __pthread_rwlock_t {char __dummy;} *pthread_rwlock_t;
|
|
typedef struct __pthread_rwlockattr_t {char __dummy;} *pthread_rwlockattr_t;
|
|
|
|
#else
|
|
|
|
/* pthreads types */
|
|
|
|
typedef class pthread *pthread_t;
|
|
typedef class pthread_mutex *pthread_mutex_t;
|
|
typedef class pthread_key *pthread_key_t;
|
|
typedef class pthread_attr *pthread_attr_t;
|
|
typedef class pthread_mutexattr *pthread_mutexattr_t;
|
|
typedef class pthread_condattr *pthread_condattr_t;
|
|
typedef class pthread_cond *pthread_cond_t;
|
|
typedef class pthread_barrier *pthread_barrier_t;
|
|
typedef class pthread_barrierattr *pthread_barrierattr_t;
|
|
typedef class pthread_once pthread_once_t;
|
|
typedef class pthread_spinlock *pthread_spinlock_t;
|
|
typedef class pthread_rwlock *pthread_rwlock_t;
|
|
typedef class pthread_rwlockattr *pthread_rwlockattr_t;
|
|
|
|
/* semaphores types */
|
|
typedef class semaphore *sem_t;
|
|
#endif /* __INSIDE_CYGWIN__ */
|
|
|
|
#endif /* ! _SYS__PTHREADTYPES_H_ */
|