From 02ad565b49c916d9e1ca83c2486e6b0e388eb8e8 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Thu, 31 Mar 2011 13:52:25 +0200 Subject: Initial import. --- thread.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 thread.h (limited to 'thread.h') diff --git a/thread.h b/thread.h new file mode 100644 index 0000000..b69801a --- /dev/null +++ b/thread.h @@ -0,0 +1,23 @@ +#ifndef THREAD_H +#define THREAD_H + +#include + +#define noreturn_t __attribute__((noreturn)) void + +template +class BaseThread { + private: + WORKING_AREA(stack_space, stack_size); + + static inline noreturn_t thread_main_wrap(void* arg) { + ((Child*)arg)->thread_main(); + } + + public: + void start(tprio_t priority = NORMALPRIO) { + chThdCreateStatic(stack_space, sizeof(stack_space), priority, (tfunc_t)thread_main_wrap, this); + } +}; + +#endif -- cgit v1.2.3