53 |
: |
: |
54 |
: "r3", "r4", "r5", "r6"); |
: "r3", "r4", "r5", "r6"); |
55 |
|
|
56 |
*r_version = version; |
api_version->raw = version; |
57 |
*r_flags = flags; |
api_flags->raw = flags; |
58 |
*r_id = id; |
kernel_id->raw = id; |
59 |
|
|
60 |
return kip; |
return kip; |
61 |
} |
} |
80 |
: "+r" (dest_result), "+r" (control), |
: "+r" (dest_result), "+r" (control), |
81 |
"+r" (sp), "+r" (ip), "+r" (flags), |
"+r" (sp), "+r" (ip), "+r" (flags), |
82 |
"+r" (user_handle), "+r" (pager) |
"+r" (user_handle), "+r" (pager) |
83 |
: [addr] "r" (__l4_exchange_register) |
: [addr] "r" (__l4_exchange_registers) |
84 |
: "r10", __L4_PPC_CLOB); |
: "r10", __L4_PPC_CLOB); |
85 |
|
|
86 |
dest_p->raw = dest_result; |
dest_p->raw = dest_result; |
194 |
l4_fpage_t kip_area, l4_fpage_t utcb_area, |
l4_fpage_t kip_area, l4_fpage_t utcb_area, |
195 |
l4_thread_id_t redirector, l4_word_t *old_control) |
l4_thread_id_t redirector, l4_word_t *old_control) |
196 |
{ |
{ |
197 |
register l4_word_t space_result asm ("r3") = dest.raw; |
register l4_word_t space_result asm ("r3") = space.raw; |
198 |
register l4_word_t ctrl asm ("r4") = control; |
register l4_word_t ctrl asm ("r4") = control; |
199 |
register l4_word_t kip asm ("r5") = kip_area; |
register l4_word_t kip asm ("r5") = kip_area.raw; |
200 |
register l4_word_t utcb asm ("r6") = utcb_area; |
register l4_word_t utcb asm ("r6") = utcb_area.raw; |
201 |
register l4_word_t redir asm ("r7") = redirector; |
register l4_word_t redir asm ("r7") = redirector.raw; |
202 |
|
|
203 |
__asm__ __volatile__ ("mtctr %[addr]\n" |
__asm__ __volatile__ ("mtctr %[addr]\n" |
204 |
"bctrl\n" |
"bctrl\n" |
236 |
"bctrl\n" |
"bctrl\n" |
237 |
: "+r" (mr9), "+r" (mr1), "+r" (mr2), "+r" (mr3), |
: "+r" (mr9), "+r" (mr1), "+r" (mr2), "+r" (mr3), |
238 |
"+r" (mr4), "+r" (mr5), "+r" (mr6), "+r" (mr7), |
"+r" (mr4), "+r" (mr5), "+r" (mr6), "+r" (mr7), |
239 |
"+r" (mr8), "+r" (mr0), "+r" (from_spec_raw), |
"+r" (mr8), "+r" (mr0), "+r" (from_spec_raw) |
240 |
: "r" (to_raw), "r" (time_outs), |
: "r" (to_raw), "r" (time_outs), |
241 |
[addr] "r" (__l4_ipc) |
[addr] "r" (__l4_ipc) |
242 |
: "r11", "r12", "r13", __L4_PPC_XCLOB); |
: "r11", "r12", "r13", __L4_PPC_XCLOB); |
283 |
"bctrl\n" |
"bctrl\n" |
284 |
: "+r" (mr9), "+r" (mr1), "+r" (mr2), "+r" (mr3), |
: "+r" (mr9), "+r" (mr1), "+r" (mr2), "+r" (mr3), |
285 |
"+r" (mr4), "+r" (mr5), "+r" (mr6), "+r" (mr7), |
"+r" (mr4), "+r" (mr5), "+r" (mr6), "+r" (mr7), |
286 |
"+r" (mr8), "+r" (mr0), "+r" (from_spec_raw), |
"+r" (mr8), "+r" (mr0), "+r" (from_spec_raw) |
287 |
: "r" (to_raw), "r" (time_outs), |
: "r" (to_raw), "r" (time_outs), |
288 |
[addr] "r" (__l4_lipc) |
[addr] "r" (__l4_lipc) |
289 |
: "r11", "r12", "r13", __L4_PPC_XCLOB); |
: "r11", "r12", "r13", __L4_PPC_XCLOB); |