Ryan Houdek
61072ba37e
Has /proc/cpuinfo generated from CPUID
...
Instead of having this file mostly just copy and pasted, it'll now be
generated.
We end up losing a lot of supported flags with this change, which is for
the best since we wouldn't have actually supported those things.
2020-09-05 16:59:10 -07:00
Ryan Houdek
50349db4c6
Moves our entire execution model over to signal execution
...
This requires implementing custom ASM dispatchers for the interpreter
side of things so it works correctly.
Allows all of our CPU backends to safely support signaling.
This is a bit of a nightmare change and requires rethinking logic about
debugging in some instances.
2020-09-02 16:00:17 -07:00
Stefanos Kornilios Mitsis Poiitidis
45288506e1
Syscalls: Actually fix sched_getaffinity
2020-08-29 03:11:06 +03:00
Stefanos Kornilios Mitsis Poiitidis
f16f7dcdd7
Syscalls: Fix sched_getaffinity
2020-08-29 00:18:20 +03:00
Ryan Houdek
758de4deaa
Implements rt_sigpending
...
Any time a guest signal is blocked, add it to the guest signal mask.
This doesn't use a signal queue so repeat signals can end up being lost.
This is expected behaviour
This doesn't help with implementing the problem of unblocking signals
causing the masked signal to be resent
2020-08-20 13:47:03 -07:00
Ryan Houdek
c7d14a33d4
Implements ioperm syscall as no permissions
...
This syscall requires the application to have root and will fail with
-EPERM otherwise.
Implementing this as just an -EPERM return allows Crispy Doom to run
2020-08-19 23:31:06 -07:00
Ryan Houdek
7700a4d24b
Adds support for guest sigprocmask
...
This was causing our SIGBUS handling to fail in FTL
2020-08-18 21:00:33 +01:00
Stefanos Kornilios Mitsis Poiitidis
cb34056f18
Merge pull request #294 from Sonicadvance1/aarch64_signals
...
Signals for AArch64
2020-08-12 19:47:10 +03:00
Ryan Houdek
f705baf2f0
Extends SignalDelegator duty
...
It needs to track guest SigAltAction and have its own definitions for
sigaction and sa_mask. sa_mask specifically is defined differently
between the kernel and glibc.
Also fixes some issues with the SignalDelegator that posix tests found
2020-08-11 00:33:49 +01:00
Stefanos Kornilios Mitsis Poiitidis
db633b8394
Thunklibs: Add partial X11, SDL, GL, EGL, asound, cmake integration
2020-08-08 14:48:20 +03:00
Ryan Houdek
5b6420ae4b
Implements getitimer and setitimer syscalls
2020-08-02 18:17:00 -07:00
Stefanos Kornilios Mitsis Poiitidis
106892f824
Thunks: Use shared_mutex
2020-07-20 14:58:49 +03:00
Stefanos Kornilios Mitsis Poiitidis
8c8e6294b6
Thunks: ALTINST, OP_THUNK, basic infrastructure
2020-07-20 13:52:28 +03:00
Scott Mansell
183c5d9e22
Filesystem HLE: Intercept /proc/${getpid}/exe too
2020-07-18 09:16:59 +12:00
Ryan Houdek
a1db6a0dec
Adds new signal delegator class
...
Allows us to register host and guest signal delegators.
Currently only host signals are handled, guest signal delegation will
take a bit of work still.
2020-07-11 06:12:06 +01:00
Stefanos Kornilios Mitsis Poiitidis
630d66942c
uname: Should return x86_64, not x64_64
...
Run into this in CS:GO.
With this fix it progresses much further, but still doesn't get to the menu.
2020-07-08 20:58:57 +03:00
Stefanos Kornilios Mitsis Poiitidis
fc2d7656e0
syscalls: Warn on clone + ptrace instead of assert
2020-07-04 19:04:08 +03:00
Stefanos Kornilios Mitsis Poiitidis
cb8f250078
syscalls: fork, vfork, eventfd2
2020-07-03 11:17:51 +03:00
Ryan Houdek
95f1775df5
Merge pull request #255 from FEX-Emu/skmp/implement-execve
...
syscalls: implement execve
2020-07-02 14:41:13 -07:00
Ryan Houdek
59cc3b576e
Merge pull request #256 from FEX-Emu/skmp/implement-some-syscalls
...
syscalls: Implement a few easy ones
2020-07-02 14:40:25 -07:00
Ryan Houdek
03e084c7f0
Merge pull request #248 from FEX-Emu/fork_syscall
...
clone: Some support for fork, Flag validation
2020-07-02 14:39:23 -07:00
Stefanos Kornilios Mitsis Poiitidis
370397198b
syscalls: (*)get/setxattr
2020-07-02 19:46:41 +03:00
Stefanos Kornilios Mitsis Poiitidis
9c48c7f487
syscalls: truncate,creat,chown,fchown,lchown,setpgid,getpgid,setfsuid,setfsgid,getsid,sync,syncfs
2020-07-02 19:34:21 +03:00
Stefanos Kornilios Mitsis Poiitidis
8234ffce3d
syscalls: implement execve
2020-07-02 18:14:28 +03:00
Ryan Houdek
62f9917b79
Removes syscall strace parsing if not enabled
...
This was spending ~60seconds of time compiling on my c630.
Something about fmt string formatting causing heavy compile times on
ARM.
Better to just compile it out anyway.
2020-07-01 06:11:35 +01:00
Stefanos Kornilios Mitsis Poiitidis
2ccaea7d66
clone: Validate flags, cleanup
2020-06-30 16:23:43 +03:00
Ryan Houdek
8a5813e4d0
[WIP] Fork syscall support
...
Bit buggy
2020-06-30 16:22:47 +03:00
Ryan Houdek
b73b585db3
Merge pull request #246 from FEX-Emu/skmp/fix-syscall-forward-macro
...
Syscalls/x64: Fix SYSCALL_FORWARD_ERRNO
2020-06-25 04:58:15 -07:00
Stefanos Kornilios Mitsis Poiitidis
7b7c4a9730
Syscalls/x64: Fix SYSCALL_FORWARD_ERRNO
2020-06-25 14:51:01 +03:00
Stefanos Kornilios Mitsis Poiitidis
4e515abb33
Syscalls: Add a wrapping class for better backtrace
2020-06-25 14:29:02 +03:00
Stefanos Kornilios Mitsis Poiitidis
df1ed9442b
Syscalls/x64: Add stubs for all syscalls, remove some syscall entries that are too new
2020-06-19 20:30:06 +03:00
Stefanos Kornilios Mitsis Poiitidis
7c2efe0155
Syscalls: Cleanup headers, add names, add NotImplemented
2020-06-19 13:07:07 +03:00
Stefanos Kornilios Mitsis Poiitidis
eddd3dd4ed
Syscalls/x64: Cleanup and document syscall registration/forwarding logic
2020-06-19 09:45:00 +03:00
Stefanos Kornilios Mitsis Poiitidis
db213f94f3
Syscalls: Implement tkill, tgkill
2020-06-18 20:18:56 +03:00
Stefanos Kornilios Mitsis Poiitidis
0bf585bf76
Syscalls: Dynamic registration, auto strace generation
2020-06-18 19:57:58 +03:00
Scott Mansell
41635ee8be
Implement fallocate syscall
2020-06-17 23:47:52 +12:00
Ryan Houdek
7a48d17d66
Implements two missing timerfd syscalls
2020-06-16 16:53:08 -07:00
Ryan Houdek
7302ad1996
Adds new FEX config for telling the guest how many CPU cores it can have
...
This is just a virtual number that the guest can query through the
various means. Will affect mesa with how many helper threads it
generates at the very least
2020-06-04 00:03:41 -07:00
Stefanos Kornilios Mitsis Poiitidis
2c8fccdcf2
syscalls/x64: Add fchdir
2020-06-03 16:01:06 +03:00
Ryan Houdek
7717425201
Merge pull request #224 from FEX-Emu/skmp/add-accept4
...
x64/syscalls: Add accept, accept4
2020-05-31 14:40:29 -07:00
Ryan Houdek
efa26b3bf4
Merge pull request #223 from FEX-Emu/skmp/unhandled-syscall-show-number
...
x64/syscalls: Change HandleSyscall/Unimplemented Syscall to include syscall number
2020-05-31 14:39:47 -07:00
Stefanos Kornilios Mitsis Poiitidis
63ea0358bd
syscalls/x64: Add pselect6
2020-05-31 15:31:16 +03:00
Stefanos Kornilios Mitsis Poiitidis
1f243f14be
x64/syscalls: Add accept, accept4
2020-05-31 15:28:23 +03:00
Stefanos Kornilios Mitsis Poiitidis
c200952cc6
x64/syscalls: Change HandleSyscall/Unimplemented Syscall to include syscall number
2020-05-31 14:14:10 +03:00
Stefanos Kornilios Mitsis Poiitidis
6cc3b6b0ea
Syscalls/x64: Hook up SYSCALL_MSYNC, remove fixed tests from known failures
2020-05-29 12:43:52 +03:00
Stefanos Kornilios Mitsis Poiitidis
8206aa0413
Add ERROR_AND_DIE, use it on unhandled syscalls
2020-05-28 18:47:24 +03:00
Ryan Houdek
1d6aac1a5d
Implements two handle_at syscalls
2020-05-27 18:32:17 -07:00
Ryan Houdek
c78520c526
Implements symlink syscall
2020-05-27 18:32:17 -07:00
Stefanos Kornilios Mitsis Poiitidis
66a0293cdb
Merge pull request #201 from Sonicadvance1/fix_file_flags
...
Fixes FD flags mismatch between x86 and ARM64
2020-05-26 12:52:26 +03:00
Ryan Houdek
7c8f7c732f
Fixes some missing includes
2020-05-25 20:04:17 -07:00