summaryrefslogtreecommitdiff
path: root/libcr/include
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2025-02-21 09:02:22 -0700
committerLuke T. Shumaker <lukeshu@lukeshu.com>2025-02-21 10:33:25 -0700
commit5dab625d981e0039a5d874f5d8a6f795472785bc (patch)
treea89dead6dd34f95b3e644edeb02fe1ca70a28784 /libcr/include
parent3d5cb59006cf393a97ad3f87ef64fb258fd79ce9 (diff)
Make use of the generated stack.c
Diffstat (limited to 'libcr/include')
-rw-r--r--libcr/include/libcr/coroutine.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/libcr/include/libcr/coroutine.h b/libcr/include/libcr/coroutine.h
index 756352e..2505782 100644
--- a/libcr/include/libcr/coroutine.h
+++ b/libcr/include/libcr/coroutine.h
@@ -29,8 +29,14 @@
#include <stddef.h> /* for size_t */
#include <stdbool.h> /* for bool */
+/* Configuration **************************************************************/
+
#include "config.h"
+#ifndef CONFIG_COROUTINE_MEASURE_STACK
+ #error config.h must define CONFIG_COROUTINE_MEASURE_STACK (bool)
+#endif
+
/* typedefs *******************************************************************/
/**
@@ -91,8 +97,16 @@ cid_t coroutine_add_with_stack_size(size_t stack_size, const char *name, cr_fn_t
/**
* Like coroutine_add_with_stack_size(), but uses a default stack size so
* you don't need to think about it.
+ *
+ * Either define CONFIG_COROUTINE_STACK_SIZE_DEFAULT to use for all
+ * coroutines, or CONFIG_COROUTINE_STACK_SIZE_{fn} for each COROUTINE
+ * function.
*/
-cid_t coroutine_add(const char *name, cr_fn_t fn, void *args);
+#ifdef CONFIG_COROUTINE_STACK_SIZE_DEFAULT
+#define coroutine_add(name, fn, args) coroutine_add_with_stack_size(CONFIG_COROUTINE_STACK_SIZE_DEFAULT, name, fn, args)
+#else
+#define coroutine_add(name, fn, args) coroutine_add_with_stack_size(CONFIG_COROUTINE_STACK_SIZE_##fn, name, fn, args)
+#endif
/**
* The main scheduler loop. Returns if all coroutines exit.