Implement exit syscall

This commit is contained in:
Justin C. Miller
2019-03-14 22:28:21 -07:00
parent f7558e3d18
commit be007c6278
5 changed files with 27 additions and 2 deletions

View File

@@ -127,12 +127,18 @@ syscall_dispatch(uintptr_t return_rsp, cpu_state &regs)
cons->set_color();
pid_t pid = p->fork(return_rsp);
if (pid == scheduler::get().current()->pid)
pid = 0;
regs.rax = pid;
}
break;
case syscall::exit:
cons->set_color(11);
cons->printf("\nProcess %u: Received EXIT syscall\n", p->pid);
cons->set_color();
p->exit(regs.rdi);
return_rsp = s.schedule(return_rsp);
break;
default:
cons->set_color(9);
cons->printf("\nReceived unknown syscall: %02x\n", call);