pointers...

it should always be *esp in load_stack and setup_stack, because the moving stack pointer value lives in shared memory somewhere.  That's why it's void **esp, not just void *esp, cuz it's a pointer to shared stack pointer (pointer to a pointer of unspecified type)