I'm trying to full understand what happens at a low level with a call to _cogstart
The signature is
int _cogstart(void (*func)(void *), void *arg, void *stack_base, uint32_t stack_size);
My questions are
1. I notice there's no cog id argument. Is there no deterministic way to start on a specific cog?
2. I've seen some examples that define a struct for arg, and an array for stack and am wondering what happens and what ends up in memory where on init. At a low level I assume that the code in the function is ending up in the new cog RAM, but what's happening with the args and stack on the new cog and the original cog?