projects
/
model-checker.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
model: THREAD_FINISH triggers release sequence check
[model-checker.git]
/
libthreads.h
diff --git
a/libthreads.h
b/libthreads.h
index a25b27797268326ca63db433b31ffcd4897c0b22..0c02971342d06ffa903feb01b2d4daadc08754d4 100644
(file)
--- a/
libthreads.h
+++ b/
libthreads.h
@@
-1,29
+1,27
@@
+/** @file libthreads.h
+ * @brief Basic Thread Library Functionality.
+ */
+
#ifndef __LIBTHREADS_H__
#define __LIBTHREADS_H__
#ifndef __LIBTHREADS_H__
#define __LIBTHREADS_H__
-#include <stdio.h>
-#include <ucontext.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
-//#define CONFIG_DEBUG
+ typedef void (*thrd_start_t)(void *);
-#ifdef CONFIG_DEBUG
-#define DEBUG(fmt, ...) do { printf("*** %25s(): line %-4d *** " fmt, __func__, __LINE__, ##__VA_ARGS__); } while (0)
-#define DBG() DEBUG("\n");
-#else
-#define DEBUG(fmt, ...)
-#define DBG()
-#endif
+ typedef int thrd_t;
-struct thread {
- void (*start_routine);
- void *arg;
- ucontext_t context;
- void *stack;
- int index;
- int completed;
-};
-
-int thread_create(struct thread *t, void (*start_routine), void *arg);
-void thread_join(struct thread *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);
+
+ void user_main(void);
+
+#ifdef __cplusplus
+}
+#endif
#endif /* __LIBTHREADS_H__ */
#endif /* __LIBTHREADS_H__ */