summaryrefslogtreecommitdiff
path: root/libcr/coroutine.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcr/coroutine.c')
-rw-r--r--libcr/coroutine.c35
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);