X-Git-Url: https://rtime.felk.cvut.cz/gitweb/l4.git/blobdiff_plain/35719fdd2ff27177690edb32843d32e092a006e3..5658d2ec9c1081516a8868259fa867926e25ab3f:/kernel/fiasco/src/kern/ia32/vm_svm.cpp diff --git a/kernel/fiasco/src/kern/ia32/vm_svm.cpp b/kernel/fiasco/src/kern/ia32/vm_svm.cpp index f7072856c..e16066513 100644 --- a/kernel/fiasco/src/kern/ia32/vm_svm.cpp +++ b/kernel/fiasco/src/kern/ia32/vm_svm.cpp @@ -23,15 +23,17 @@ private: // ------------------------------------------------------------------------ INTERFACE [svm && debug]: +#include "tb_entry.h" + EXTENSION class Vm_svm { protected: - struct Log_vm_svm_exit + struct Log_vm_svm_exit : public Tb_entry { Mword exitcode, exitinfo1, exitinfo2, rip; + unsigned print(int max, char *buf) const; }; - static unsigned log_fmt_svm(Tb_entry *, int max, char *buf) asm ("__fmt_vm_svm_exit"); }; // ------------------------------------------------------------------------ @@ -642,8 +644,7 @@ Vm_svm::do_resume_vcpu(Context *ctxt, Vcpu_state *vcpu, Vmcb *vmcb_s) vmcb_s->control_area.n_cr3 = orig_ncr3; - LOG_TRACE("VM-SVM", "svm", current(), __fmt_vm_svm_exit, - Log_vm_svm_exit *l = tbe->payload(); + LOG_TRACE("VM-SVM", "svm", current(), Log_vm_svm_exit, l->exitcode = vmcb_s->control_area.exitcode; l->exitinfo1 = vmcb_s->control_area.exitinfo1; l->exitinfo2 = vmcb_s->control_area.exitinfo2; @@ -710,9 +711,8 @@ IMPLEMENTATION [svm && debug]: IMPLEMENT unsigned -Vm_svm::log_fmt_svm(Tb_entry *e, int max, char *buf) +Vm_svm::Log_vm_svm_exit::print(int max, char *buf) const { - Log_vm_svm_exit *l = e->payload(); return snprintf(buf, max, "ec=%lx ei1=%08lx ei2=%08lx rip=%08lx", - l->exitcode, l->exitinfo1, l->exitinfo2, l->rip); + exitcode, exitinfo1, exitinfo2, rip); }