mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-25 17:00:46 +01:00
Merge pull request #241 from phire/fallocate_syscall
Implement fallocate syscall
This commit is contained in:
commit
620cfa0d09
4 files changed
+15
No files matched your search
@@ -190,6 +190,11 @@ namespace FEXCore::HLE {
|
||||
SYSCALL_ERRNO();
|
||||
}
|
||||
|
||||
uint64_t Fallocate(FEXCore::Core::InternalThreadState *Thread, int fd, int mode, off_t offset, off_t len) {
|
||||
uint64_t Result = ::fallocate(fd, mode, offset, len);
|
||||
SYSCALL_ERRNO();
|
||||
}
|
||||
|
||||
uint64_t Getdents(FEXCore::Core::InternalThreadState *Thread, int fd, void *dirp, uint32_t count) {
|
||||
#ifdef SYS_getdents
|
||||
uint64_t Result = syscall(SYS_getdents,
|
||||
|
||||
@@ -39,6 +39,7 @@ namespace FEXCore::HLE {
|
||||
uint64_t Fsync(FEXCore::Core::InternalThreadState *Thread, int fd);
|
||||
uint64_t Fdatasync(FEXCore::Core::InternalThreadState *Thread, int fd);
|
||||
uint64_t Ftruncate(FEXCore::Core::InternalThreadState *Thread, int fd, off_t length);
|
||||
uint64_t Fallocate(FEXCore::Core::InternalThreadState *Thread, int fd, int mode, off_t offset, off_t len);
|
||||
uint64_t Getdents(FEXCore::Core::InternalThreadState *Thread, int fd, void *dirp, uint32_t count);
|
||||
uint64_t Fchmod(FEXCore::Core::InternalThreadState *Thread, int fd, int mode);
|
||||
uint64_t Getdents64(FEXCore::Core::InternalThreadState *Thread, int fd, void *dirp, uint32_t count);
|
||||
|
||||
@@ -430,6 +430,13 @@ void x64SyscallHandler::Strace(FEXCore::HLE::SyscallArguments *Args, uint64_t Re
|
||||
case SYSCALL_TIMERFD_CREATE:
|
||||
LogMan::Msg::D("timerfd_create(%lx, %lx) = %ld", Args->Argument[1], Args->Argument[2], Ret);
|
||||
break;
|
||||
case SYSCALL_FALLOCATE:
|
||||
LogMan::Msg::D("fallocate(%lx, %lx, %p, %p) = %ld",
|
||||
Args->Argument[1],
|
||||
Args->Argument[2],
|
||||
Args->Argument[3],
|
||||
Args->Argument[4],
|
||||
Ret);
|
||||
case SYSCALL_TIMERFD_SETTIME:
|
||||
LogMan::Msg::D("timerfd_settime(%ld, %lx, %p, %p) = %ld",
|
||||
Args->Argument[1],
|
||||
@@ -936,6 +943,7 @@ void x64SyscallHandler::RegisterSyscallHandlers() {
|
||||
{SYSCALL_GET_ROBUST_LIST, cvt(&FEXCore::HLE::Get_robust_list), 3},
|
||||
{SYSCALL_EPOLL_PWAIT, cvt(&FEXCore::HLE::EPoll_Pwait), 5},
|
||||
{SYSCALL_TIMERFD_CREATE, cvt(&FEXCore::HLE::Timerfd_Create), 2},
|
||||
{SYSCALL_FALLOCATE, cvt(&FEXCore::HLE::Fallocate), 4},
|
||||
{SYSCALL_TIMERFD_SETTIME, cvt(&FEXCore::HLE::Timerfd_Settime), 4},
|
||||
{SYSCALL_TIMERFD_GETTIME, cvt(&FEXCore::HLE::Timerfd_Gettime), 2},
|
||||
{SYSCALL_ACCEPT4, cvt(&FEXCore::HLE::Accept4), 4},
|
||||
|
||||
@@ -180,6 +180,7 @@ enum Syscalls {
|
||||
SYSCALL_GET_ROBUST_LIST = 274, ///< __NR_get_robust_list
|
||||
SYSCALL_EPOLL_PWAIT = 281, ///< __NR_epoll_pwait
|
||||
SYSCALL_TIMERFD_CREATE = 283, ///< __NR_timerfd_create
|
||||
SYSCALL_FALLOCATE = 285, ///< __NR_fallocate
|
||||
SYSCALL_TIMERFD_SETTIME = 286, ///< __NR_timerfd_settime
|
||||
SYSCALL_TIMERFD_GETTIME = 287, ///< __NR_timerfd_gettime
|
||||
SYSCALL_ACCEPT4 = 288, ///< __NR_accept4
|
||||
|
||||
Reference in new issue
Block a user