Functions
coroutine_stack_init ()
struct coroutine_stack *
coroutine_stack_init (void *buf,
                      size_t bufsize,
                      size_t metasize);
 
coroutine_stack_alloc ()
struct coroutine_stack *
coroutine_stack_alloc (size_t bufsize,
                       size_t metasize);
 
coroutine_stack_release ()
void
coroutine_stack_release (struct coroutine_stack *stack,
                         size_t metasize);
 
coroutine_stack_check ()
struct coroutine_stack *
coroutine_stack_check (struct coroutine_stack *stack,
                       const char *abortstr);
 
coroutine_stack_from_metadata ()
struct coroutine_stack *
coroutine_stack_from_metadata (void *metadata,
                               size_t metasize);
 
coroutine_stack_size ()
size_t
coroutine_stack_size (const struct coroutine_stack *stack);
 
coroutine_init_ ()
void
coroutine_init_ (struct coroutine_state *cs,
                 void (*fn) (void *),
                 void *arg,
                 struct coroutine_stack *stack);
 
coroutine_init()
#define             coroutine_init(cs, fn, arg, stack)
 
coroutine_switch ()
void
coroutine_switch (struct coroutine_state *from,
                  const struct coroutine_state *to);
 
fn ()
void
(*fn) (void *Param1);
 
 
Types and Values
struct coroutine_stack
struct coroutine_stack {
	uint64_t magic;
	size_t size;
	int valgrind_id;
};
 
COROUTINE_STK_OVERHEAD
#define COROUTINE_STK_OVERHEAD sizeof(struct coroutine_stack)
 
COROUTINE_MIN_STKSZ
#define COROUTINE_MIN_STKSZ		2048
 
COROUTINE_STACK_MAGIC_BUF
#define COROUTINE_STACK_MAGIC_BUF 0xc040c040574cb00f
 
COROUTINE_STACK_MAGIC_ALLOC
#define COROUTINE_STACK_MAGIC_ALLOC 0xc040c040574ca110
 
COROUTINE_AVAILABLE
#define COROUTINE_AVAILABLE		1
 
struct coroutine_state
struct coroutine_state {
#if HAVE_UCONTEXT
	ucontext_t uc;
#endif /* HAVE_UCONTEXT */
};