У меня ошибка TLB при загрузке, когда я запускаю тест форка, я понимаю, что это связано с передачей неверного stackptr в mips_usermode, моя реализация, кажется, вращается вокруг нескольких предложений здесь, была бы благодарна, если бы я ее исправил. Мой код ниже предоставляется в качестве функции точки входа в thread_fork. Я скучаю по чему-нибудь?
void
enter_forked_process(void *junk,unsigned long num)
{
kprintf("\n entered enter_fork_process");
struct trapframe tf = (*((struct trapframe *) junk));
(void) num;
kprintf("\n copied tf from from parent to child");
tf.tf_v0 = 0;
tf.tf_a3 = 0;
tf.tf_epc += 4;
kprintf("abt to enter mips_ usermode");
mips_usermode(&tf);
}