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