mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-27 20:01:04 +01:00
Syscalls: Use underscored shm syscall names
Removes us needing to carry a patch downstream in the termux package repo.
This commit is contained in:
1 parent
2fba3a4a9a
commit
56ae3716bb
4 files changed
+13
-13
No files matched your search
@@ -18,14 +18,14 @@ namespace FEX::HLE {
|
||||
void RegisterSHM(FEX::HLE::SyscallHandler *Handler) {
|
||||
using namespace FEXCore::IR;
|
||||
|
||||
REGISTER_SYSCALL_IMPL_PASS_FLAGS(shmget, SyscallFlags::OPTIMIZETHROUGH | SyscallFlags::NOSYNCSTATEONENTRY,
|
||||
REGISTER_SYSCALL_IMPL_PASS_FLAGS(_shmget, SyscallFlags::OPTIMIZETHROUGH | SyscallFlags::NOSYNCSTATEONENTRY,
|
||||
[](FEXCore::Core::CpuStateFrame *Frame, key_t key, size_t size, int shmflg) -> uint64_t {
|
||||
uint64_t Result = shmget(key, size, shmflg);
|
||||
SYSCALL_ERRNO();
|
||||
});
|
||||
|
||||
// XXX: shmid_ds is definitely not correct for 32-bit
|
||||
REGISTER_SYSCALL_IMPL_PASS_FLAGS(shmctl, SyscallFlags::OPTIMIZETHROUGH | SyscallFlags::NOSYNCSTATEONENTRY,
|
||||
REGISTER_SYSCALL_IMPL_PASS_FLAGS(_shmctl, SyscallFlags::OPTIMIZETHROUGH | SyscallFlags::NOSYNCSTATEONENTRY,
|
||||
[](FEXCore::Core::CpuStateFrame *Frame, int shmid, int cmd, struct shmid_ds *buf) -> uint64_t {
|
||||
uint64_t Result = ::shmctl(shmid, cmd, buf);
|
||||
SYSCALL_ERRNO();
|
||||
|
||||
@@ -111,7 +111,7 @@ namespace FEX::HLE::x32 {
|
||||
SYSCALL_ERRNO();
|
||||
});
|
||||
|
||||
REGISTER_SYSCALL_IMPL_X32(shmat, [](FEXCore::Core::CpuStateFrame *Frame, int shmid, const void *shmaddr, int shmflg) -> uint64_t {
|
||||
REGISTER_SYSCALL_IMPL_X32(_shmat, [](FEXCore::Core::CpuStateFrame *Frame, int shmid, const void *shmaddr, int shmflg) -> uint64_t {
|
||||
// also implemented in ipc:OP_SHMAT
|
||||
uint32_t ResultAddr{};
|
||||
uint64_t Result = static_cast<FEX::HLE::x32::x32SyscallHandler*>(FEX::HLE::_SyscallHandler)->GetAllocator()->
|
||||
@@ -126,7 +126,7 @@ namespace FEX::HLE::x32 {
|
||||
}
|
||||
});
|
||||
|
||||
REGISTER_SYSCALL_IMPL_X32(shmdt, [](FEXCore::Core::CpuStateFrame *Frame, const void *shmaddr) -> uint64_t {
|
||||
REGISTER_SYSCALL_IMPL_X32(_shmdt, [](FEXCore::Core::CpuStateFrame *Frame, const void *shmaddr) -> uint64_t {
|
||||
// also implemented in ipc:OP_SHMDT
|
||||
uint64_t Result = static_cast<FEX::HLE::x32::x32SyscallHandler*>(FEX::HLE::_SyscallHandler)->GetAllocator()->
|
||||
Shmdt(shmaddr);
|
||||
|
||||
@@ -317,7 +317,7 @@ namespace FEX::HLE::x32 {
|
||||
else {
|
||||
buf = *shmun.buf32;
|
||||
}
|
||||
Result = ::syscall(SYSCALL_DEF(shmctl), shmid, cmd, &buf);
|
||||
Result = ::syscall(SYSCALL_DEF(_shmctl), shmid, cmd, &buf);
|
||||
// IPC_SET sets the internal data structure that the kernel uses
|
||||
// No need to writeback
|
||||
break;
|
||||
@@ -326,7 +326,7 @@ namespace FEX::HLE::x32 {
|
||||
case SHM_STAT_ANY:
|
||||
case IPC_STAT: {
|
||||
struct shmid64_ds buf{};
|
||||
Result = ::syscall(SYSCALL_DEF(shmctl), shmid, cmd, &buf);
|
||||
Result = ::syscall(SYSCALL_DEF(_shmctl), shmid, cmd, &buf);
|
||||
if (Result != -1) {
|
||||
if (IPC64) {
|
||||
*shmun.buf64 = buf;
|
||||
@@ -339,7 +339,7 @@ namespace FEX::HLE::x32 {
|
||||
}
|
||||
case IPC_INFO: {
|
||||
struct shminfo si{};
|
||||
Result = ::syscall(SYSCALL_DEF(shmctl), shmid, cmd, reinterpret_cast<struct shmid_ds*>(&si));
|
||||
Result = ::syscall(SYSCALL_DEF(_shmctl), shmid, cmd, reinterpret_cast<struct shmid_ds*>(&si));
|
||||
if (Result != -1) {
|
||||
if (IPC64) {
|
||||
*shmun.__buf64 = si;
|
||||
@@ -352,7 +352,7 @@ namespace FEX::HLE::x32 {
|
||||
}
|
||||
case SHM_INFO: {
|
||||
struct shm_info si{};
|
||||
Result = ::syscall(SYSCALL_DEF(shmctl), shmid, cmd, reinterpret_cast<struct shmid_ds*>(&si));
|
||||
Result = ::syscall(SYSCALL_DEF(_shmctl), shmid, cmd, reinterpret_cast<struct shmid_ds*>(&si));
|
||||
if (Result != -1) {
|
||||
// SHM_INFO doesn't follow IPC64 behaviour
|
||||
*shmun.__buf_info_32 = si;
|
||||
@@ -360,13 +360,13 @@ namespace FEX::HLE::x32 {
|
||||
break;
|
||||
}
|
||||
case SHM_LOCK:
|
||||
Result = ::syscall(SYSCALL_DEF(shmctl), shmid, cmd, nullptr);
|
||||
Result = ::syscall(SYSCALL_DEF(_shmctl), shmid, cmd, nullptr);
|
||||
break;
|
||||
case SHM_UNLOCK:
|
||||
Result = ::syscall(SYSCALL_DEF(shmctl), shmid, cmd, nullptr);
|
||||
Result = ::syscall(SYSCALL_DEF(_shmctl), shmid, cmd, nullptr);
|
||||
break;
|
||||
case IPC_RMID:
|
||||
Result = ::syscall(SYSCALL_DEF(shmctl), shmid, cmd, nullptr);
|
||||
Result = ::syscall(SYSCALL_DEF(_shmctl), shmid, cmd, nullptr);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -117,7 +117,7 @@ namespace FEX::HLE::x64 {
|
||||
SYSCALL_ERRNO();
|
||||
});
|
||||
|
||||
REGISTER_SYSCALL_IMPL_X64_FLAGS(shmat, SyscallFlags::OPTIMIZETHROUGH | SyscallFlags::NOSYNCSTATEONENTRY,
|
||||
REGISTER_SYSCALL_IMPL_X64_FLAGS(_shmat, SyscallFlags::OPTIMIZETHROUGH | SyscallFlags::NOSYNCSTATEONENTRY,
|
||||
[](FEXCore::Core::CpuStateFrame *Frame, int shmid, const void *shmaddr, int shmflg) -> uint64_t {
|
||||
uint64_t Result = reinterpret_cast<uint64_t>(shmat(shmid, shmaddr, shmflg));
|
||||
|
||||
@@ -127,7 +127,7 @@ namespace FEX::HLE::x64 {
|
||||
SYSCALL_ERRNO();
|
||||
});
|
||||
|
||||
REGISTER_SYSCALL_IMPL_X64_FLAGS(shmdt, SyscallFlags::OPTIMIZETHROUGH | SyscallFlags::NOSYNCSTATEONENTRY,
|
||||
REGISTER_SYSCALL_IMPL_X64_FLAGS(_shmdt, SyscallFlags::OPTIMIZETHROUGH | SyscallFlags::NOSYNCSTATEONENTRY,
|
||||
[](FEXCore::Core::CpuStateFrame *Frame, const void *shmaddr) -> uint64_t {
|
||||
uint64_t Result = ::shmdt(shmaddr);
|
||||
|
||||
|
||||
Reference in new issue
Block a user