malloc: add myMalloc() and myFree()
[model-checker.git] / libthreads.h
index 0201ea616eb8842f4f3e86a2d7001421a3cb8252..aa7faf44d255452c172e2db2cf40919e4453b555 100644 (file)
@@ -3,17 +3,27 @@
 
 #include <ucontext.h>
 
+typedef enum thread_state {
+       THREAD_CREATED,
+       THREAD_RUNNING,
+       THREAD_READY,
+       THREAD_COMPLETED
+} thread_state;
+
 struct thread {
-       void (*start_routine);
+       void (*start_routine)();
        void *arg;
        ucontext_t context;
        void *stack;
-       int index;
-       int completed;
+       int id;
+       thread_state state;
 };
 
-int thread_create(struct thread *t, void (*start_routine), void *arg);
+int thread_create(struct thread *t, void (*start_routine)(), void *arg);
 void thread_join(struct thread *t);
+int thread_yield(void);
 struct thread *thread_current(void);
 
+extern void user_main(void);
+
 #endif /* __LIBTHREADS_H__ */