Home | History | Annotate | Line # | Download | only in libpthread
pthread.h revision 1.1.2.2
      1 
      2 /* Copyright */
      3 
      4 #ifndef _LIB_PTHREAD_H
      5 #define _LIB_PTHREAD_H
      6 
      7 
      8 #include <sys/time.h>	/* For timespec */
      9 #include <signal.h>	/* For sigset_t. XXX perhaps pthread_sigmask should
     10 			 * be in signal.h instead of here.
     11 			 */
     12 #include "pthread_types.h"
     13 #include "sched.h"
     14 
     15 int	pthread_create(pthread_t *thread, const pthread_attr_t *attr,
     16 	    void *(*startfunc)(void *), void *arg);
     17 void	pthread_exit(void *retval);
     18 int	pthread_join(pthread_t thread, void **valptr);
     19 int	pthread_equal(pthread_t t1, pthread_t t2);
     20 pthread_t	pthread_self(void);
     21 int	pthread_detach(pthread_t thread);
     22 
     23 int	pthread_kill(pthread_t thread, int sig);
     24 int	pthread_sigmask(int how, const sigset_t *set, sigset_t *oset);
     25 
     26 int	pthread_attr_destroy(pthread_attr_t *attr);
     27 int	pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);
     28 int	pthread_attr_init(pthread_attr_t *attr);
     29 int	pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
     30 int	pthread_attr_setschedparam(pthread_attr_t *attr,
     31 	    const struct sched_param *param);
     32 int	pthread_attr_getschedparam(pthread_attr_t *attr,
     33 	    struct sched_param *param);
     34 
     35 int	pthread_mutex_init(pthread_mutex_t *mutex,
     36 	    const pthread_mutexattr_t *attr);
     37 int	pthread_mutex_destroy(pthread_mutex_t *mutex);
     38 int	pthread_mutex_lock(pthread_mutex_t *mutex);
     39 int	pthread_mutex_trylock(pthread_mutex_t *mutex);
     40 int	pthread_mutex_unlock(pthread_mutex_t *mutex);
     41 
     42 int	pthread_cond_init(pthread_cond_t *cond,
     43 	    const pthread_condattr_t *attr);
     44 int	pthread_cond_destroy(pthread_cond_t *cond);
     45 int	pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
     46 int	pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
     47 	    const struct timespec *abstime);
     48 int	pthread_cond_signal(pthread_cond_t *cond);
     49 int	pthread_cond_broadacst(pthread_cond_t *cond);
     50 int	pthread_condattr_init(pthread_condattr_t *attr);
     51 int	pthread_condattr_destroy(pthread_condattr_t *attr);
     52 int	pthread_condattr_getpshared(const pthread_condattr_t *attr,
     53 	    int *pshared);
     54 int	pthread_condattr_setpshared(pthread_condattr_t *attr, int pshared);
     55 
     56 #define PTHREAD_COND_INITIALIZER	xxxxx
     57 
     58 #define	PTHREAD_CREATE_JOINABLE	0
     59 #define	PTHREAD_CREATE_DETACHED	1
     60 
     61 #define PTHREAD_PROCESS_PRIVATE	0
     62 #define PTHREAD_PROCESS_SHARED	1
     63 
     64 #define	_POSIX_THREADS
     65 
     66 /* XXX not actually implemented but required to exist */
     67 #define PTHREAD_DESTRUCTOR_ITERATIONS	4	/* Min. required */
     68 #define	PTHREAD_KEYS_MAX	128		/* Min. required */
     69 #define PTHREAD_STACK_MIN	4096 /* XXX Pulled out of my butt */
     70 #define PTHREAD_THREADS_MAX	64		/* Min. required */
     71 
     72 
     73 #endif /* _LIB_PTHREAD_H */
     74