mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:07:47 +00:00
UserspaceEmulator: Support the anon_create, sendfd and recvfd syscalls
This commit is contained in:
parent
20915795a8
commit
12879184ce
2 changed files with 24 additions and 0 deletions
|
@ -453,6 +453,12 @@ u32 Emulator::virt_syscall(u32 function, u32 arg1, u32 arg2, u32 arg3)
|
|||
return virt$mprotect(arg1, arg2, arg3);
|
||||
case SC_madvise:
|
||||
return virt$madvise(arg1, arg2, arg3);
|
||||
case SC_anon_create:
|
||||
return virt$anon_create(arg1, arg2);
|
||||
case SC_sendfd:
|
||||
return virt$sendfd(arg1, arg2);
|
||||
case SC_recvfd:
|
||||
return virt$recvfd(arg1);
|
||||
case SC_open:
|
||||
return virt$open(arg1);
|
||||
case SC_pipe:
|
||||
|
@ -545,6 +551,21 @@ u32 Emulator::virt_syscall(u32 function, u32 arg1, u32 arg2, u32 arg3)
|
|||
}
|
||||
}
|
||||
|
||||
int Emulator::virt$anon_create(size_t size, int options)
|
||||
{
|
||||
return syscall(SC_anon_create, size, options);
|
||||
}
|
||||
|
||||
int Emulator::virt$sendfd(int socket, int fd)
|
||||
{
|
||||
return syscall(SC_sendfd, socket, fd);
|
||||
}
|
||||
|
||||
int Emulator::virt$recvfd(int socket)
|
||||
{
|
||||
return syscall(SC_recvfd, socket);
|
||||
}
|
||||
|
||||
int Emulator::virt$shbuf_create(int size, FlatPtr buffer)
|
||||
{
|
||||
u8* host_data = nullptr;
|
||||
|
|
|
@ -175,6 +175,9 @@ private:
|
|||
int virt$beep();
|
||||
int virt$ftruncate(int fd, off_t);
|
||||
mode_t virt$umask(mode_t);
|
||||
int virt$anon_create(size_t, int);
|
||||
int virt$recvfd(int);
|
||||
int virt$sendfd(int, int);
|
||||
|
||||
FlatPtr allocate_vm(size_t size, size_t alignment);
|
||||
bool find_malloc_symbols(const MmapRegion& libc_text);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue