|
|
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.