X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=libthreads.h;h=8033a12dc053fe02a223b158934722331da96e8d;hb=9db4729d3e6ab5f3ec5fd8a2560d95026332fecf;hp=8522871771aeb7f7569e3df819581b449f2e75d9;hpb=8090a361f8800cfced794c0adbf8a91778d3cec6;p=model-checker.git diff --git a/libthreads.h b/libthreads.h index 8522871..8033a12 100644 --- a/libthreads.h +++ b/libthreads.h @@ -1,20 +1,27 @@ -#include - -#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, ...) +/** @file libthreads.h + * @brief Basic Thread Library Functionality. + */ + +#ifndef __LIBTHREADS_H__ +#define __LIBTHREADS_H__ + +#ifdef __cplusplus +extern "C" { #endif -struct thread { - void (*start_routine); - void *arg; - ucontext_t context; - void *stack; - int index; -}; + typedef void (*thrd_start_t)(void *); + + typedef int thrd_t; + + 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 user_main(int, char**); + +#ifdef __cplusplus +} +#endif -int thread_create(struct thread *t, void (*start_routine), void *arg); -void thread_start(struct thread *t); +#endif /* __LIBTHREADS_H__ */