Move pthread types to <sys/_pthreadtypes.h>
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>
This commit is contained in:
		
				
					committed by
					
						
						Corinna Vinschen
					
				
			
			
				
	
			
			
			
						parent
						
							ba49de472f
						
					
				
				
					commit
					e655d3d34b
				
			
							
								
								
									
										59
									
								
								winsup/cygwin/include/sys/_pthreadtypes.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								winsup/cygwin/include/sys/_pthreadtypes.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
/* 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_ */
 | 
			
		||||
		Reference in New Issue
	
	Block a user