Rev 2049 | Rev 2055 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2049 | Rev 2054 | ||
|---|---|---|---|
| Line 92... | Line 92... | ||
| 92 | dtlb_insert_mapping(uw_buf, KA2PA(uw_buf), PAGESIZE_8K, |
92 | dtlb_insert_mapping(uw_buf, KA2PA(uw_buf), PAGESIZE_8K, |
| 93 | true, true); |
93 | true, true); |
| 94 | } |
94 | } |
| 95 | 95 | ||
| 96 | /* |
96 | /* |
| 97 | * Write kernel stack address to %g6 and a pointer to the last |
97 | * Write kernel stack address to %g6 of the alternate and |
| - | 98 | * interrupt global sets. |
|
| - | 99 | * |
|
| - | 100 | * Write pointer to the last item in the userspace window buffer |
|
| 98 | * item in the userspace window buffer to %g7 in the alternate |
101 | * to %g7 in the alternate set. Write to the interrupt %g7 is |
| 99 | * and interrupt sets. |
102 | * not necessary because: |
| - | 103 | * - spill traps operate only in the alternate global set, |
|
| - | 104 | * - preemptible trap handler switches to alternate globals |
|
| - | 105 | * before it explicitly uses %g7. |
|
| 100 | */ |
106 | */ |
| 101 | uint64_t sp = (uintptr_t) THREAD->kstack + STACK_SIZE |
107 | uint64_t sp = (uintptr_t) THREAD->kstack + STACK_SIZE |
| 102 | - (STACK_BIAS + ALIGN_UP(STACK_ITEM_SIZE, |
108 | - (STACK_BIAS + ALIGN_UP(STACK_ITEM_SIZE, |
| 103 | STACK_ALIGNMENT)); |
109 | STACK_ALIGNMENT)); |
| 104 | write_to_ig_g6(sp); |
110 | write_to_ig_g6(sp); |
| Line 107... | Line 113... | ||
| 107 | } |
113 | } |
| 108 | } |
114 | } |
| 109 | 115 | ||
| 110 | /** Perform sparc64 specific steps before a thread stops running. |
116 | /** Perform sparc64 specific steps before a thread stops running. |
| 111 | * |
117 | * |
| 112 | * Demap any locked DTLB entries isntalled by the thread (i.e. kernel stack |
118 | * Demap any locked DTLB entries installed by the thread (i.e. kernel stack |
| 113 | * and userspace window buffer). |
119 | * and userspace window buffer). |
| 114 | */ |
120 | */ |
| 115 | void after_thread_ran_arch(void) |
121 | void after_thread_ran_arch(void) |
| 116 | { |
122 | { |
| 117 | uintptr_t base; |
123 | uintptr_t base; |