1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:27:45 +00:00

UserspaceEmulator: Implement an assortment of system calls

Here goes mkdir(), unlink(), socket(), getsockopt(), fchmod()
bind(), connect(), listen(), select() and recvfrom().

They're not perfect but they seem to work. :^)
This commit is contained in:
Andreas Kling 2020-07-15 16:27:06 +02:00
parent cb47ab15ec
commit 339f12e8a2
2 changed files with 163 additions and 1 deletions

View file

@ -72,14 +72,24 @@ private:
u32 virt$open(u32);
int virt$pipe(FlatPtr pipefd, int flags);
int virt$close(int);
int virt$mkdir(FlatPtr path, size_t path_length, mode_t mode);
int virt$unlink(FlatPtr path, size_t path_length);
int virt$get_process_name(FlatPtr buffer, int size);
int virt$dbgputstr(FlatPtr characters, int length);
int virt$dbgputch(char);
int virt$fchmod(int, mode_t);
int virt$listen(int, int);
int virt$kill(pid_t, int);
int virt$fstat(int, FlatPtr);
u32 virt$fcntl(int fd, int, u32);
int virt$getgroups(ssize_t count, FlatPtr);
int virt$lseek(int fd, off_t offset, int whence);
int virt$socket(int, int, int);
int virt$getsockopt(FlatPtr);
int virt$select(FlatPtr);
int virt$bind(int sockfd, FlatPtr address, socklen_t address_length);
int virt$recvfrom(FlatPtr);
int virt$connect(int sockfd, FlatPtr address, socklen_t address_size);
void virt$exit(int);
bool m_shutdown { false };