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