1/* Test of correct simulation for uc->uc_link. */ 2 3#include <assert.h> 4#include <stdio.h> 5#include <ucontext.h> 6 7static void print_value(int value) 8{ 9 printf("Value is %d.\n", value); 10} 11 12int main(void) 13{ 14 ucontext_t uc; 15 char stack[8096]; 16 volatile int done = 0; 17 18 /* Get current context. */ 19 getcontext(&uc); 20 if (done) { 21 /* Execution resumes here when print_value() returns. */ 22 return 0; 23 } 24 done = 1; 25 26 /* Setup the stack. */ 27 uc.uc_stack.ss_sp = stack; 28 uc.uc_stack.ss_size = sizeof(stack); 29 30 /* Call print_value(). */ 31 makecontext(&uc, print_value, 1, 42); 32 setcontext(&uc); 33 34 /* This code should not be reached. */ 35 assert(0); 36 return 0; 37} 38 39