mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 18:57:42 +00:00
UserspaceEmulator: Implement the fork() syscall :^)
This commit is contained in:
parent
7bb6b1d44d
commit
b9b74e355a
2 changed files with 8 additions and 1 deletions
|
@ -349,7 +349,8 @@ u32 Emulator::virt_syscall(u32 function, u32 arg1, u32 arg2, u32 arg3)
|
||||||
return virt$clock_gettime(arg1, arg2);
|
return virt$clock_gettime(arg1, arg2);
|
||||||
case SC_getrandom:
|
case SC_getrandom:
|
||||||
return virt$getrandom(arg1, arg2, arg3);
|
return virt$getrandom(arg1, arg2, arg3);
|
||||||
|
case SC_fork:
|
||||||
|
return virt$fork();
|
||||||
default:
|
default:
|
||||||
dbg() << "Unimplemented syscall: " << Syscall::to_string((Syscall::Function)function);
|
dbg() << "Unimplemented syscall: " << Syscall::to_string((Syscall::Function)function);
|
||||||
dump_backtrace();
|
dump_backtrace();
|
||||||
|
@ -866,4 +867,9 @@ int Emulator::virt$ioctl(int fd, unsigned request, FlatPtr arg)
|
||||||
TODO();
|
TODO();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Emulator::virt$fork()
|
||||||
|
{
|
||||||
|
return fork();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,6 +70,7 @@ private:
|
||||||
|
|
||||||
void setup_stack(const Vector<String>& arguments, const Vector<String>& environment);
|
void setup_stack(const Vector<String>& arguments, const Vector<String>& environment);
|
||||||
|
|
||||||
|
int virt$fork();
|
||||||
int virt$get_dir_entries(int fd, FlatPtr buffer, ssize_t);
|
int virt$get_dir_entries(int fd, FlatPtr buffer, ssize_t);
|
||||||
int virt$ioctl(int fd, unsigned, FlatPtr);
|
int virt$ioctl(int fd, unsigned, FlatPtr);
|
||||||
int virt$usleep(useconds_t);
|
int virt$usleep(useconds_t);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue