Address *o_ip = 0, Address *o_sp = 0, Mword *o_flags = 0,
Mword ops = 0)
{
Address *o_ip = 0, Address *o_sp = 0, Mword *o_flags = 0,
Mword ops = 0)
{
Thread_object::handle_remote_ex_regs(Drq *, Context *self, void *p)
{
Remote_syscall *params = reinterpret_cast<Remote_syscall*>(p);
params->result = nonull_static_cast<Thread_object*>(self)->ex_regs(params->thread->utcb().access());
Thread_object::handle_remote_ex_regs(Drq *, Context *self, void *p)
{
Remote_syscall *params = reinterpret_cast<Remote_syscall*>(p);
params->result = nonull_static_cast<Thread_object*>(self)->ex_regs(params->thread->utcb().access());
reinterpret_cast<Utcb::Time_val*>(utcb->values)->t = 0; // Assume timeslice was used up
return commit_result(0, Utcb::Time_val::Words);
}
reinterpret_cast<Utcb::Time_val*>(utcb->values)->t = 0; // Assume timeslice was used up
return commit_result(0, Utcb::Time_val::Words);
}
// -------------------------------------------------------------------
// Gather statistics information about thread execution
// -------------------------------------------------------------------
// Gather statistics information about thread execution
Thread_object::handle_sys_thread_stats_remote(Drq *, Context *self, void *data)
{
return nonull_static_cast<Thread_object*>(self)->sys_thread_stats_remote(data);
Thread_object::handle_sys_thread_stats_remote(Drq *, Context *self, void *data)
{
return nonull_static_cast<Thread_object*>(self)->sys_thread_stats_remote(data);
drq(handle_sys_thread_stats_remote, &value, 0, Drq::Any_ctxt);
else
{
drq(handle_sys_thread_stats_remote, &value, 0, Drq::Any_ctxt);
else
{