Blame


1 b8f742db 2005-01-11 devnull typedef struct mcontext mcontext_t;
2 50f7ec33 2005-01-07 devnull typedef struct ucontext ucontext_t;
3 b8f742db 2005-01-11 devnull struct mcontext
4 50f7ec33 2005-01-07 devnull {
5 50f7ec33 2005-01-07 devnull ulong pc; /* lr */
6 50f7ec33 2005-01-07 devnull ulong cr; /* mfcr */
7 50f7ec33 2005-01-07 devnull ulong ctr; /* mfcr */
8 50f7ec33 2005-01-07 devnull ulong xer; /* mfcr */
9 50f7ec33 2005-01-07 devnull ulong sp; /* callee saved: r1 */
10 50f7ec33 2005-01-07 devnull ulong toc; /* callee saved: r2 */
11 50f7ec33 2005-01-07 devnull ulong r3; /* first arg to function, return register: r3 */
12 50f7ec33 2005-01-07 devnull ulong gpr[19]; /* callee saved: r13-r31 */
13 50f7ec33 2005-01-07 devnull // XXX: currently do not save vector registers or floating-point state
14 50f7ec33 2005-01-07 devnull // ulong pad;
15 50f7ec33 2005-01-07 devnull // uvlong fpr[18]; /* callee saved: f14-f31 */
16 50f7ec33 2005-01-07 devnull // ulong vr[4*12]; /* callee saved: v20-v31, 256-bits each */
17 50f7ec33 2005-01-07 devnull };
18 50f7ec33 2005-01-07 devnull
19 b8f742db 2005-01-11 devnull struct ucontext
20 b8f742db 2005-01-11 devnull {
21 b8f742db 2005-01-11 devnull struct {
22 b8f742db 2005-01-11 devnull void *ss_sp;
23 b8f742db 2005-01-11 devnull uint ss_size;
24 b8f742db 2005-01-11 devnull } uc_stack;
25 b8f742db 2005-01-11 devnull sigset_t uc_sigmask;
26 b8f742db 2005-01-11 devnull mcontext_t mc;
27 b8f742db 2005-01-11 devnull };
28 b8f742db 2005-01-11 devnull
29 50f7ec33 2005-01-07 devnull void makecontext(ucontext_t*, void(*)(void), int, ...);
30 b8f742db 2005-01-11 devnull int getcontext(ucontext_t*);
31 50f7ec33 2005-01-07 devnull int setcontext(ucontext_t*);
32 50f7ec33 2005-01-07 devnull int swapcontext(ucontext_t*, ucontext_t*);
33 b8f742db 2005-01-11 devnull int _getmcontext(mcontext_t*);
34 b8f742db 2005-01-11 devnull void _setmcontext(mcontext_t*);
35 50f7ec33 2005-01-07 devnull