Rev 2091 | Rev 2227 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2091 | Rev 2107 | ||
---|---|---|---|
Line 134... | Line 134... | ||
134 | * @param t Microseconds to wait. |
134 | * @param t Microseconds to wait. |
135 | */ |
135 | */ |
136 | void asm_delay_loop(const uint32_t usec) |
136 | void asm_delay_loop(const uint32_t usec) |
137 | { |
137 | { |
138 | uint64_t stop = tick_read() + (uint64_t) usec * (uint64_t) |
138 | uint64_t stop = tick_read() + (uint64_t) usec * (uint64_t) |
139 | CPU->arch.clock_frequency / 1000000; |
139 | CPU->arch.clock_frequency / 1000000; |
140 | 140 | ||
141 | while (tick_read() < stop) |
141 | while (tick_read() < stop) |
142 | ; |
142 | ; |
143 | } |
143 | } |
144 | 144 | ||
145 | /** Switch to userspace. */ |
145 | /** Switch to userspace. */ |
146 | void userspace(uspace_arg_t *kernel_uarg) |
146 | void userspace(uspace_arg_t *kernel_uarg) |
147 | { |
147 | { |
148 | switch_to_userspace((uintptr_t) kernel_uarg->uspace_entry, |
148 | switch_to_userspace((uintptr_t) kernel_uarg->uspace_entry, |
149 | ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE |
149 | ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE |
150 | - (ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT) + STACK_BIAS), |
150 | - (ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT) + STACK_BIAS), |
151 | (uintptr_t) kernel_uarg->uspace_uarg); |
151 | (uintptr_t) kernel_uarg->uspace_uarg); |
152 | 152 | ||
153 | for (;;) |
153 | for (;;) |
154 | ; |
154 | ; |
155 | /* not reached */ |
155 | /* not reached */ |
156 | } |
156 | } |