|
|
1.1 ! root 1: /* ! 2: * UAE - The Un*x Amiga Emulator ! 3: * ! 4: * exec.library multitasking emulation ! 5: * ! 6: * Copyright 1996 Bernd Schmidt ! 7: */ ! 8: ! 9: ! 10: #include <setjmp.h> ! 11: ! 12: #ifdef USE_EXECLIB ! 13: ! 14: /* aaargh... doesn't work with glibc-2.0 */ ! 15: struct switch_struct { ! 16: jmp_buf j; ! 17: }; ! 18: ! 19: #define EXEC_SWITCH_TASKS(run, ready) do { \ ! 20: if (setjmp(run->sws.j) == 0) \ ! 21: longjmp(ready->sws.j, 1); \ ! 22: } while(0) ! 23: ! 24: #define EXEC_SETUP_SWS(t) do { \ ! 25: t->sws.j[0].__sp = nt->stack + 65536; \ ! 26: t->sws.j[0].__pc = &task_startup; \ ! 27: } while(0) ! 28: ! 29: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.