Skip to content

Commit 3b8ed2a

Browse files
committed
Implement some additional system call stubs
1 parent 08b2b68 commit 3b8ed2a

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

lib/tinykvm/linux/system_calls.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,14 @@ void Machine::setup_linux_system_calls()
642642
regs.rdi, regs.rsi, regs.rdx, flags, regs.rax);
643643
cpu.set_registers(regs);
644644
});
645+
Machine::install_syscall_handler(
646+
SYS_mincore, [](vCPU& cpu) { // mincore
647+
auto& regs = cpu.registers();
648+
regs.rax = -ENOSYS;
649+
SYSPRINT("mincore(0x%llX, %llu, 0x%llX) = %lld\n",
650+
regs.rdi, regs.rsi, regs.rdx, regs.rax);
651+
cpu.set_registers(regs);
652+
});
645653
Machine::install_syscall_handler(
646654
SYS_madvise, [](vCPU& cpu) { // MADVISE
647655
auto& regs = cpu.registers();
@@ -895,6 +903,25 @@ void Machine::setup_linux_system_calls()
895903
regs.rax = 0;
896904
cpu.set_registers(regs);
897905
});
906+
Machine::install_syscall_handler(
907+
SYS_getppid, [](vCPU& cpu) { // GETPPID
908+
auto& regs = cpu.registers();
909+
regs.rax = 0;
910+
cpu.set_registers(regs);
911+
});
912+
Machine::install_syscall_handler(
913+
SYS_getpgrp, [](vCPU& cpu) { // GETPGRP
914+
auto& regs = cpu.registers();
915+
regs.rax = 0;
916+
cpu.set_registers(regs);
917+
});
918+
Machine::install_syscall_handler(
919+
SYS_getgroups, [](vCPU& cpu) { // GETGROUPS
920+
auto& regs = cpu.registers();
921+
regs.rax = -ENOSYS;
922+
SYSPRINT("getgroups(...) = %lld\n", regs.rax);
923+
cpu.set_registers(regs);
924+
});
898925
Machine::install_syscall_handler( // sched_getparam
899926
SYS_sched_getparam, [](vCPU& cpu)
900927
{

0 commit comments

Comments
 (0)