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