Rev 94 | Rev 173 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 94 | Rev 97 | ||
---|---|---|---|
Line 35... | Line 35... | ||
35 | * context_save() and context_restore() are both leaf procedures. |
35 | * context_save() and context_restore() are both leaf procedures. |
36 | * No need to allocate scratch area. |
36 | * No need to allocate scratch area. |
37 | */ |
37 | */ |
38 | #define SP_DELTA 0 |
38 | #define SP_DELTA 0 |
39 | 39 | ||
- | 40 | #ifdef context_set |
|
- | 41 | #undef context_set |
|
- | 42 | #endif |
|
- | 43 | ||
- | 44 | #define context_set(c, _pc, stack, size) \ |
|
- | 45 | (c)->pc = (__address) _pc; \ |
|
- | 46 | (c)->bsp = (__address) stack; \ |
|
- | 47 | (c)->sp = ((__address) stack) + (size) - SP_DELTA; |
|
- | 48 | ||
40 | struct context { |
49 | struct context { |
41 | 50 | ||
42 | /* |
51 | /* |
43 | * Application registers |
52 | * Application registers |
44 | */ |
53 | */ |
45 | __u64 ar_pfs; |
54 | __u64 ar_pfs; |
46 | __u64 ar_unat_caller; |
55 | __u64 ar_unat_caller; |
47 | __u64 ar_unat_callee; |
56 | __u64 ar_unat_callee; |
48 | __u64 ar_rsc; |
57 | __u64 ar_rsc; |
49 | __u64 ar_bsp; |
58 | __u64 bsp; /* ar_bsp */ |
50 | __u64 ar_rnat; |
59 | __u64 ar_rnat; |
51 | __u64 ar_lc; |
60 | __u64 ar_lc; |
52 | __u64 ar_ec; |
61 | __u64 ar_ec; |
53 | __u64 ar_ccv; |
62 | __u64 ar_ccv; |
54 | __u64 ar_csd; |
63 | __u64 ar_csd; |