diff options
Diffstat (limited to 'libcr/coroutine.c')
-rw-r--r-- | libcr/coroutine.c | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/libcr/coroutine.c b/libcr/coroutine.c index 041b624..35a060d 100644 --- a/libcr/coroutine.c +++ b/libcr/coroutine.c @@ -6,12 +6,15 @@ #include <setjmp.h> /* for setjmp(), longjmp(), jmp_buf */ #include <stdint.h> /* for uint8_t */ -#include <stdio.h> /* for printf() */ #include <stdlib.h> /* for aligned_alloc(), free() */ #include <libmisc/assert.h> +#define LOG_NAME COROUTINE +#include <libmisc/log.h> + #include <libcr/coroutine.h> +#undef COROUTINE /* Configuration **************************************************************/ @@ -414,14 +417,6 @@ static cid_t coroutine_running = 0; /* utility functions **********************************************************/ -#define errorf(...) printf("error: " __VA_ARGS__) -#define infof(...) printf("info: " __VA_ARGS__) -#if CONFIG_COROUTINE_DEBUG - #define debugf(...) printf("dbg: " __VA_ARGS__) -#else - #define debugf(...) -#endif - static inline const char* coroutine_state_str(enum coroutine_state state) { assert(state < ARRAY_LEN(coroutine_state_strs)); return coroutine_state_strs[state]; @@ -473,7 +468,7 @@ cid_t coroutine_add_with_stack_size(size_t stack_size, assert_cid_state(parent, state == CR_RUNNING); assert(stack_size); assert(fn); - debugf("coroutine_add_with_stack_size(%zu, \"%s\", %p, %p)...\n", + debugf("coroutine_add_with_stack_size(%zu, \"%s\", %p, %p)...", stack_size, name, fn, args); cid_t child; @@ -487,7 +482,7 @@ cid_t coroutine_add_with_stack_size(size_t stack_size, return 0; found: } - debugf("...child=%zu\n", child); + debugf("...child=%zu", child); last_created = child; @@ -516,8 +511,8 @@ cid_t coroutine_add_with_stack_size(size_t stack_size, + STACK_GUARD_SIZE #endif ; - debugf("...stack =%p\n", coroutine_table[child-1].stack); - debugf("...stack_base=%p\n", stack_base); + debugf("...stack =%p", coroutine_table[child-1].stack); + debugf("...stack_base=%p", stack_base); /* run until cr_begin() */ cr_plat_call_with_stack(stack_base, fn, args); assert_notreached("should cr_begin() instead of returning"); @@ -543,7 +538,7 @@ cid_t coroutine_add(const char *name, cr_fn_t fn, void *args) { /* coroutine_main() ***********************************************************/ __attribute__ ((noreturn)) void coroutine_main(void) { - debugf("coroutine_main()\n"); + debugf("coroutine_main()"); bool saved = cr_save_and_disable_interrupts(); assert(saved); assert(!cr_is_in_intrhandler()); @@ -575,7 +570,7 @@ __attribute__ ((noreturn)) void coroutine_main(void) { /* cr_*() *********************************************************************/ void cr_begin(void) { - debugf("cid=%zu: cr_begin()\n", coroutine_running); + debugf("cid=%zu: cr_begin()", coroutine_running); assert_cid_state(coroutine_running, state == CR_INITIALIZING); bool saved = cr_save_and_disable_interrupts(); @@ -609,7 +604,7 @@ static inline void _cr_yield() { } void cr_yield(void) { - debugf("cid=%zu: cr_yield()\n", coroutine_running); + debugf("cid=%zu: cr_yield()", coroutine_running); assert(!cr_is_in_intrhandler()); assert_cid_state(coroutine_running, state == CR_RUNNING); @@ -621,7 +616,7 @@ void cr_yield(void) { } void cr_pause_and_yield(void) { - debugf("cid=%zu: cr_pause_and_yield()\n", coroutine_running); + debugf("cid=%zu: cr_pause_and_yield()", coroutine_running); assert(!cr_is_in_intrhandler()); assert_cid_state(coroutine_running, state == CR_RUNNING); @@ -632,7 +627,7 @@ void cr_pause_and_yield(void) { } __attribute__ ((noreturn)) void cr_exit(void) { - debugf("cid=%zu: cr_exit()\n", coroutine_running); + debugf("cid=%zu: cr_exit()", coroutine_running); assert(!cr_is_in_intrhandler()); assert_cid_state(coroutine_running, state == CR_RUNNING); @@ -649,7 +644,7 @@ static void _cr_unpause(cid_t cid) { } void cr_unpause(cid_t cid) { - debugf("cr_unpause(%zu)\n", cid); + debugf("cr_unpause(%zu)", cid); assert(!cr_is_in_intrhandler()); assert_cid_state(coroutine_running, state == CR_RUNNING); @@ -659,7 +654,7 @@ void cr_unpause(cid_t cid) { } void cr_unpause_from_intrhandler(cid_t cid) { - debugf("cr_unpause_from_intrhandler(%zu)\n", cid); + debugf("cr_unpause_from_intrhandler(%zu)", cid); assert(cr_is_in_intrhandler()); _cr_unpause(cid); |