Revision 0 6 November 2000)
overview continuation of system call #6 - get here with a valid active thread this code does the inquiring/modifying of thread attributes specified in the system call
on entry a0,s4 target thread tid a1,s4 target thread new ip a2,s5 target thread new sp a3,s6 target thread exception handler id a4,s7 target thread pager id t8 caller's tcb (high core address) s0 caller's tid s2 target tcb base
| 71-73 |
preliminaries: t3 <-- target thread k-stack bottom
t0 <-- invalid address (1-) for comparison purposes
s8 <-- 0 ( Þ thread's context not changed yet)
|
| 74-76 | if caller wanted to keep old pager: keep old pager and
return old pager if caller wanted to change pager: change pager and return old pager |
| 77-79 | if caller wanted to keep old excepter: keep old excepter and
return old excepter if caller wanted to change excepter: change excepter and return old excepter |
| 80-83 | if caller wanted to keep old user stack: keep old sp and
return old sp if caller wanted to change user stack: change sp and return old sp and indicate that context was changed by putting -1 in s8 (checked at l179 L6.10) |
| 84-87 | if caller wanted to keep old ip: keep old ip and return old
ip if caller wanted to change ip: change ip and return old ip and indicate that context was changed by putting -1 in s8 (checked at l179 L6.10) |