mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-29 16:21:29 +00:00
UserspaceEmulator: Add the ttyname syscall
This commit is contained in:
parent
9d93e208ac
commit
b187a42e53
Notes:
sideshowbarker
2024-07-19 04:15:17 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/b187a42e530
|
@ -250,6 +250,8 @@ u32 Emulator::virt_syscall(u32 function, u32 arg1, u32 arg2, u32 arg3)
|
|||
dbgprintf("Syscall: %s (%x)\n", Syscall::to_string((Syscall::Function)function), function);
|
||||
#endif
|
||||
switch (function) {
|
||||
case SC_ttyname:
|
||||
return virt$ttyname(arg1, arg2, arg3);
|
||||
case SC_getpgrp:
|
||||
return virt$getpgrp();
|
||||
case SC_execve:
|
||||
|
@ -1244,4 +1246,14 @@ int Emulator::virt$getpgrp()
|
|||
return syscall(SC_getpgrp);
|
||||
}
|
||||
|
||||
int Emulator::virt$ttyname(int fd, FlatPtr buffer, size_t buffer_size)
|
||||
{
|
||||
auto host_buffer = ByteBuffer::create_zeroed(buffer_size);
|
||||
int rc = syscall(SC_ttyname, fd, host_buffer.data(), host_buffer.size());
|
||||
if (rc < 1)
|
||||
return rc;
|
||||
mmu().copy_to_vm(buffer, host_buffer.data(), host_buffer.size());
|
||||
return rc;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -137,6 +137,7 @@ private:
|
|||
ssize_t virt$getrandom(FlatPtr buffer, size_t buffer_size, unsigned int flags);
|
||||
int virt$sleep(unsigned);
|
||||
int virt$getpgrp();
|
||||
int virt$ttyname(int fd, FlatPtr buffer, size_t buffer_size);
|
||||
|
||||
FlatPtr allocate_vm(size_t size, size_t alignment);
|
||||
|
||||
|
|
Loading…
Reference in a new issue