X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=libthreads.h;h=b16c96be83dc4aab21b77f46b3579574a861c137;hb=e57dd436704ed24dc97c7fea2fbb59e26ae90ec2;hp=ff6d5aa975770cd1d5780e3c24ecc1a2db1ab51d;hpb=8122c7760b4dba8c3b4f0f538eb6fa48d7026092;p=model-checker.git diff --git a/libthreads.h b/libthreads.h index ff6d5aa..b16c96b 100644 --- a/libthreads.h +++ b/libthreads.h @@ -1,27 +1,16 @@ #ifndef __LIBTHREADS_H__ #define __LIBTHREADS_H__ -#include -#include +typedef int thread_id_t; +typedef void (*thrd_start_t)(); -#ifdef CONFIG_DEBUG -#define DBG() do { printf("Here: %s, L%d\n", __func__, __LINE__); } while (0) -#define DEBUG(fmt, ...) printf(fmt, ##__VA_ARGS__) -#else -#define DBG() -#define DEBUG(fmt, ...) -#endif +typedef thread_id_t thrd_t; -struct thread { - void (*start_routine); - void *arg; - ucontext_t context; - void *stack; - int index; - int completed; -}; +int thrd_create(thrd_t *t, thrd_start_t start_routine, void *arg); +int thrd_join(thrd_t); +int thrd_yield(void); +thrd_t thrd_current(void); -int thread_create(struct thread *t, void (*start_routine), void *arg); -void thread_start(struct thread *t); +extern void user_main(void); #endif /* __LIBTHREADS_H__ */