7 PUBLIC inline NEEDS["task.h"]
9 Thread::vcpu_set_user_space(Task *t)
11 assert_kdb (current() == this);
15 Task *old = static_cast<Task*>(_space.vcpu_user());
28 PUBLIC inline NEEDS["logdefs.h", "vcpu.h"]
30 Thread::vcpu_pagefault(Address pfa, Mword err, Mword ip)
33 Vcpu_state *vcpu = vcpu_state().access();
34 if (vcpu_pagefaults_enabled(vcpu))
37 vcpu_enter_kernel_mode(vcpu);
38 LOG_TRACE("VCPU events", "vcpu", this, Vcpu_log,
40 l->state = vcpu->_saved_state;
43 l->space = vcpu_user_space() ? static_cast<Task*>(vcpu_user_space())->dbg_id() : ~0;
45 vcpu->_ts.set_pagefault(pfa, err);
46 vcpu_save_state_and_upcall();