mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 19:00:17 +02:00
The main one that we can't implement is readdir. Falls in to the same problem space as getdents. With this, we have the full entry tables filled out for both 64-bit and 32-bit. With some holes in the implementation, we have almost all coverage now.
38 lines
990 B
C++
38 lines
990 B
C++
/*
|
|
$info$
|
|
tags: LinuxSyscalls|syscalls-x86-32
|
|
$end_info$
|
|
*/
|
|
|
|
#include "Tests/LinuxSyscalls/Syscalls.h"
|
|
#include "Tests/LinuxSyscalls/x64/Syscalls.h"
|
|
#include "Tests/LinuxSyscalls/x32/Syscalls.h"
|
|
#include "Tests/LinuxSyscalls/x32/Types.h"
|
|
|
|
#include <stdint.h>
|
|
#include <sched.h>
|
|
#include <time.h>
|
|
#include <unistd.h>
|
|
|
|
namespace FEXCore::Core {
|
|
struct CpuStateFrame;
|
|
}
|
|
|
|
namespace FEX::HLE::x32 {
|
|
void RegisterSched() {
|
|
REGISTER_SYSCALL_IMPL_X32(sched_rr_get_interval, [](FEXCore::Core::CpuStateFrame *Frame, pid_t pid, struct timespec32 *tp) -> uint64_t {
|
|
struct timespec tp64{};
|
|
uint64_t Result = ::sched_rr_get_interval(pid, tp ? &tp64 : nullptr);
|
|
if (tp) {
|
|
*tp = tp64;
|
|
}
|
|
SYSCALL_ERRNO();
|
|
});
|
|
|
|
REGISTER_SYSCALL_IMPL_X32_PASS(sched_rr_get_interval_time64, [](FEXCore::Core::CpuStateFrame *Frame, pid_t pid, struct timespec *tp) -> uint64_t {
|
|
uint64_t Result = ::sched_rr_get_interval(pid, tp);
|
|
SYSCALL_ERRNO();
|
|
});
|
|
}
|
|
}
|