|
3 | 3 |
|
4 | 4 | /** |
5 | 5 | * ADDED BY STRAWBEES |
6 | | -* Provide a simplied interface to Protothreads, avoid the need to repeat |
| 6 | +* Provides a simplied interface to Protothreads. |
7 | 7 | */ |
8 | 8 | #define PT_POINTER_VAR(name) pt_##name##_pointer |
9 | 9 | #define PT_THREAD_VAR(name) pt_##name##_thread |
10 | 10 |
|
11 | | -#define ptDefine(name)\ |
| 11 | +#define ptDefine(name, ...)\ |
12 | 12 | static struct pt PT_POINTER_VAR(name);\ |
13 | | - static PT_THREAD (PT_THREAD_VAR(name)(struct pt* __pt__)); |
14 | | -#define ptDeclare(name) static PT_THREAD (PT_THREAD_VAR(name)(struct pt* __pt__)) |
| 13 | + static PT_THREAD (PT_THREAD_VAR(name)(struct pt* __pt__, ##__VA_ARGS__)); |
| 14 | +#define ptDeclare(name, ...) static PT_THREAD (PT_THREAD_VAR(name)(struct pt* __pt__, ##__VA_ARGS__)) |
15 | 15 | #define ptInit(name) PT_INIT(&PT_POINTER_VAR(name)) |
16 | 16 | #define ptBegin() PT_BEGIN(__pt__) |
17 | 17 | #define ptSleep(ms) PT_SLEEP(__pt__, ms) |
18 | 18 | #define ptWaitUntil(condition) PT_WAIT_UNTIL(__pt__, condition) |
19 | 19 | #define ptWaitWhile(condition) PT_WAIT_WHILE(__pt__, condition) |
20 | | -#define ptWaitThread(name) PT_WAIT_THREAD(__pt__, PT_THREAD_VAR(name)(&PT_POINTER_VAR(name))) |
| 20 | +#define ptWaitThread(name, ...) PT_WAIT_THREAD(__pt__, PT_THREAD_VAR(name)(&PT_POINTER_VAR(name), ##__VA_ARGS__)) |
21 | 21 | #define ptYield() PT_YIELD(__pt__) |
22 | 22 | #define ptYieldUntil(condition) PT_YIELD_UNTIL(__pt__, condition) |
23 | | -#define ptSpawn(name) PT_SPAWN(__pt__, &PT_POINTER_VAR(name), PT_THREAD_VAR(name)(&PT_POINTER_VAR(name))) |
| 23 | +#define ptSpawn(name, ...) PT_SPAWN(__pt__, &PT_POINTER_VAR(name), PT_THREAD_VAR(name)(&PT_POINTER_VAR(name), ##__VA_ARGS__)) |
24 | 24 | #define ptRestart() PT_RESTART(__pt__) |
25 | 25 | #define ptExit() PT_EXIT(__pt__) |
26 | 26 | #define ptEnd() PT_END(__pt__) |
27 | | -#define ptSchedule(name) PT_SCHEDULE(PT_THREAD_VAR(name)(&PT_POINTER_VAR(name))) |
| 27 | +#define ptSchedule(name, ...) PT_SCHEDULE(PT_THREAD_VAR(name)(&PT_POINTER_VAR(name), ##__VA_ARGS__)) |
0 commit comments