Sync proc.c and syscall.c with mtrace-magic.h API.

Don't forget to update your mtrace/qemu git repos.
上级 5bca8458
......@@ -524,7 +524,8 @@ scheduler(void)
// Enabling mtrace calls in scheduler generates many mtrace_call_entrys.
// mtrace_call_set(1, cpu->id);
mtrace_fcall_register(schedp->pid, (unsigned long)scheduler, 0, mtrace_start);
mtrace_fcall_register(schedp->pid, (unsigned long)scheduler,
schedp->pid, 0, mtrace_start);
for(;;){
// Enable interrupts on this processor.
......@@ -547,11 +548,11 @@ scheduler(void)
p->state = RUNNING;
p->tsc = rdtsc();
mtrace_fcall_register(schedp->pid, 0, 0, mtrace_pause);
mtrace_fcall_register(proc->pid, 0, 0, mtrace_resume);
mtrace_fcall_register(schedp->pid, 0, schedp->pid, 0, mtrace_pause);
mtrace_fcall_register(proc->pid, 0, proc->pid, 0, mtrace_resume);
mtrace_call_set(1, cpu->id);
swtch(&cpu->scheduler, proc->context);
mtrace_fcall_register(schedp->pid, 0, 0, mtrace_resume);
mtrace_fcall_register(schedp->pid, 0, schedp->pid, 0, mtrace_resume);
mtrace_call_set(0, cpu->id);
switchkvm();
......@@ -604,7 +605,7 @@ sched(void)
panic("sched interruptible");
intena = cpu->intena;
proc->curcycles += rdtsc() - proc->tsc;
mtrace_fcall_register(proc->pid, 0, 0, mtrace_pause);
mtrace_fcall_register(proc->pid, 0, proc->pid, 0, mtrace_pause);
mtrace_call_set(0, cpu->id);
swtch(&proc->context, cpu->scheduler);
......
......@@ -146,13 +146,11 @@ syscall(void)
num = proc->tf->eax;
if(num >= 0 && num < NELEM(syscalls) && syscalls[num]) {
mtrace_fcall_register(proc->pid, (unsigned long)syscalls[num],
0,
mtrace_start);
proc->pid, 0,mtrace_start);
mtrace_call_set(1, cpunum());
proc->tf->eax = syscalls[num]();
mtrace_fcall_register(proc->pid, (unsigned long)syscalls[num],
0,
mtrace_done);
proc->pid, 0, mtrace_done);
mtrace_call_set(0, cpunum());
} else {
cprintf("%d %s: unknown sys call %d\n",
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论