printf("IBAT3 U:%08lx L:%08lx\n", batu, batl);
}
-PRIVATE inline
+PROTECTED inline
void FIASCO_NORETURN
-Thread::fast_return_to_user(Mword ip, Mword sp, bool = true)
+Thread::fast_return_to_user(Mword ip, Mword sp)
{
(void)ip; (void)sp;
// XXX: UNIMPLEMENTED
" mr %1, %%r2\n"
: "=r"(vsid), "=r"(utcb));
printf("\n[%lx]leaving kernel ip %lx sp %lx vsid %lx\n",
- current_thread()->dbg_id(), r->ip(), r->sp(), vsid);
+ current_thread()->dbg_info()->dbg_id(), r->ip(), r->sp(), vsid);
printf("kernel_sp %p kip %p utcb %08lx\n", current_thread()->regs() + 1, kip, utcb);
asm volatile ( " mtsprg1 %[kernel_sp] \n" //correct kernel stack
" mfmsr %4 \n"
" mfsprg1 %5 \n"
: "=r"(etype), "=r"(dar), "=r"(dsisr), "=r"(vsid), "=r"(msr), "=r"(ksp) : : "memory");
- printf("\n\n[dbg_id: %lx] Exception: %lx\n", current_thread()->dbg_id(), etype & ~0xff);
+ printf("\n\n[dbg_id: %lx] Exception: %lx\n", current_thread()->dbg_info()->dbg_id(), etype & ~0xff);
Entry_frame *e = current()->regs();
e->Return_frame::dump();
return 1; // We did it
}
-PRIVATE inline
+PROTECTED inline
void
Thread::vcpu_resume_user_arch()
{}
{
}
-PRIVATE inline
+PROTECTED inline
int
Thread::do_trigger_exception(Entry_frame * /*r*/, void * /*ret_handler*/)
{
return true;
}
-PRIVATE static inline NEEDS[Thread::access_utcb]
+PRIVATE static inline
bool FIASCO_WARN_RESULT
Thread::copy_ts_to_utcb(L4_msg_tag const &, Thread * /*snd*/, Thread * /*rcv*/,
unsigned char /*rights*/)
return true;
}
-PRIVATE inline
+PROTECTED inline
bool
Thread::invoke_arch(L4_msg_tag & /*tag*/, Utcb * /*utcb*/)
{
return false;
}
-PRIVATE inline
+PROTECTED inline
int
Thread::sys_control_arch(Utcb *)
{
return 0;
}
-//-----------------------------------------------------------------------------
-
-PUBLIC inline
-Utcb*
-Thread::access_utcb() const
-{
- return utcb();
-}
-
-
//-----------------------------------------------------------------------------
IMPLEMENTATION [!mp]: