Ryan Houdek
50c75d1f43
Move Linux version calculation to common code
2026-07-14 20:06:37 -07:00
LC
23402bf31b
x32/Semaphore: Fix storing of message type in msgrcv
...
This was previously storing into the local compat handler, not the
actual managed message.
2026-07-13 17:30:27 -04:00
LC
50be718b72
x32/Semaphore: Mark _ipc as static
...
This isn't used outside of the translation unit.
2026-07-13 17:30:24 -04:00
Ryan Houdek
f2b679f602
Merge pull request #5728 from lioncash/halves
...
x32/FD: Combine offset halves directly
2026-07-12 11:15:10 -07:00
Ryan Houdek
b9d97dffe7
Merge pull request #5727 from lioncash/vmsplice
...
x32/FD: Make use of SanitizeIOCount for vector construction in vmsplice
2026-07-12 11:14:31 -07:00
LC
a6c8f0d300
x32/FD: Combine offset halves directly
...
Shortens these up a little.
2026-07-12 13:31:48 -04:00
LC
046750354e
x32/FD: Make use of SanitizeIOCount for vector construction in vmsplice
...
Makes this consistent with the other fd syscalls that make temporary
buffers.
2026-07-12 13:01:58 -04:00
LC
ca2d2520d2
Signals: Preprocessor disable intentional dead code in userfaultfd
...
Noticed this when going through the syscalls. Avoids potential warnings.
2026-07-12 12:16:07 -04:00
LC
7d149ebec4
GdbServer: Add missing log format argument
2026-07-12 00:28:29 -04:00
Ryan Houdek
341a5196ba
Merge pull request #5701 from lioncash/thread
...
Thread: Amend new thread handling in HandleNewClone()
2026-07-11 17:09:59 -07:00
Ryan Houdek
48ce5bf6e6
Merge pull request #5714 from lioncash/readahead
...
x32/FD: Fix readahead upper offset type
2026-07-11 11:20:49 -07:00
Ryan Houdek
617a518714
Merge pull request #5713 from lioncash/select
...
x32/FD: Correct total word calculation in select() variants
2026-07-11 11:19:29 -07:00
Ryan Houdek
480f45f2f3
Merge pull request #5712 from lioncash/bpf
...
BPFEmitter: Amend instruction class checking in HandleStore()
2026-07-11 11:08:58 -07:00
Ryan Houdek
0e8b01c1b5
Merge pull request #5711 from lioncash/fault
...
x64/Thread: Amend faulting copy handling related to LDTs
2026-07-11 11:04:47 -07:00
LC
a90a7dbec7
x32/FD: Fix readahead upper offset type
...
This should be a uint32_t
2026-07-11 13:33:11 -04:00
LC
2250bd58a2
x32/FD: Deduplicate guest and host fd set management
...
Same behavior, but less copy pastey
2026-07-11 13:23:19 -04:00
LC
126be45ed1
x32/FD: Correct total word calculation in select() variants
...
Previously this would result in a larger amount of words specified than
necessary.
e.g. Given nfds = 1:
With AlignUp(1, 32) / 4, we'd end up with supposedly eight words, when it
should only be one word.
On the other extreme, given a full fd set of 1024 fds, then we'd end up
with 256 words, when it should only be 32.
2026-07-11 12:53:08 -04:00
LC
e021a55abd
BPFEmitter: Amend instruction class checking in HandleStore()
...
This was previously checking for a load class, which would result in ST
clobbering the index register.
2026-07-11 12:26:11 -04:00
LC
2ad6254894
x64/Thread: Amend faulting copy handling related to LDTs
...
CopyToUser doesn't return the number of bytes copied, but rather returns
0 to indicate success, otherwise a fault has occurred (and the SIGSEGV
handler has set X0 to EFAULT)
2026-07-11 11:57:38 -04:00
LC
f16bc12b7d
SignalDelegator: Remove odd double negation in GuestSigProcMask
...
We can just reduce it to normal null comparisons.
2026-07-11 05:42:48 -04:00
Ryan Houdek
d2f096187c
Merge pull request #5705 from lioncash/thread3
2026-07-10 22:34:04 -07:00
LC
8b0f07b2dc
Syscalls: Remove unnecessary usages of namespace FEXCore::IR
...
These aren't necessary.
2026-07-10 21:02:12 -04:00
LC
017c898ed0
x64/Signals: Amend set size in rt_sigtimedwait
...
We should be checking the size passed in, not the sizeof of it.
2026-07-10 19:40:05 -04:00
LC
85b8e91b57
Thread: Amend new thread handling in HandleNewClone()
...
Ensures that newly cloned threads get tracked properly.
2026-07-10 18:35:58 -04:00
Ryan Houdek
0bdf15977f
Merge pull request #5697 from lioncash/thread
...
x32/Thread: Move writability check around in waitpid
2026-07-10 10:34:56 -07:00
Ryan Houdek
8a844f9cca
Merge pull request #5695 from lioncash/socket
...
Socket: Pass size by reference in getsockopt
2026-07-10 10:34:33 -07:00
Ryan Houdek
8fbde84380
Merge pull request #5696 from lioncash/time
...
x32/Time: Correct sizeof expression in utimensat
2026-07-10 10:31:47 -07:00
Ryan Houdek
00826d3327
Merge pull request #5694 from lioncash/rlimit
...
x32/Info: Only modify output in getrlimit/ugetrlimit if successful
2026-07-10 10:27:51 -07:00
Ryan Houdek
5dd0477440
Merge pull request #5689 from lioncash/msg
...
x32/Msg: Fix result comparison in mq_getsetattr
2026-07-10 10:15:15 -07:00
Ryan Houdek
c6f823f855
Merge pull request #5688 from lioncash/pidfd
...
Thread: Amend pidfd_open check
2026-07-10 10:14:49 -07:00
Ryan Houdek
2af7c24e79
Merge pull request #5687 from lioncash/limit
...
x32/Thread: Fix off-by-one in get_thread_area
2026-07-10 10:14:29 -07:00
Ryan Houdek
94ccfefa84
Merge pull request #5686 from lioncash/fd
...
x32/FD: Ensure sendfile updates offset if set
2026-07-10 10:14:18 -07:00
LC
f4c50105ba
x32/Thread: Move writability check around in waitpid
...
Same behavior, but catches the write before it actually occurs.
2026-07-10 08:08:45 -04:00
LC
3395bedc2b
x32/Time: Correct sizeof expression in utimensat
...
Ensures we check the proper type.
2026-07-10 08:04:56 -04:00
LC
7a14210e2b
Socket: Pass size by reference in getsockopt
...
Previously this was passing by value.
2026-07-10 08:01:29 -04:00
LC
d206b67ca8
x32/Info: Only modify output in getrlimit/ugetrlimit if successful
...
Avoids trampling over input data.
2026-07-10 07:49:44 -04:00
LC
d5ae87b5ca
Thread: Amend pidfd_open check
...
Checks for success.
2026-07-10 06:25:43 -04:00
LC
02028eb1ad
x32/Msg: Fix result comparison in mq_getsetattr
...
Checks against failure instead of 1.
2026-07-10 06:19:11 -04:00
LC
37b1432514
x32/Thread: Fix off-by-one in get_thread_area
...
12, 13, and 14 are the only valid TLS areas.
2026-07-10 06:06:30 -04:00
LC
6e8bc337aa
x32/FD: Ensure sendfile updates offset if set
2026-07-10 05:58:49 -04:00
LC
4069a9f7d5
Timer: Fix typo in timer_gettime
...
This should be passed by reference rather than by value.
2026-07-10 05:33:06 -04:00
Egor Lazarchuk
1eb5abb8db
Allocator: rename DetermineVASize to GetHostVABits
...
`DetermineVASize` does not return the size of VA, but the number of bits
it can use. Change the naming to make it more self explanatory.
In the mean time also move `HostVASize` global into `GetHostVABits`
since it is not and should not be used directly.
2026-07-05 12:46:41 +01:00
Ryan Houdek
24647820d7
Linux: Ensure 64-bit vsyscall page is tracked
...
It's a purely virtual page even on x86, so we need to manually add it to
tracking.
2026-06-03 18:03:31 -07:00
Ryan Houdek
7e8aa711ef
Linux: Pass gettimeofday through glibc
...
This ensures that it hits the VDSO path if possible.
2026-06-03 17:45:41 -07:00
Pepper Gray
92dce9a2ea
add missing header <thread>
...
building using musl fails due to missing defintions:
```
Source/Tools/LinuxEmulation/LinuxSyscalls/Syscalls.cpp:913:23: error: no member named 'sleep_for' in namespace 'std::this_thread'
913 | std::this_thread::sleep_for(std::chrono::milliseconds {10});
| ^~~~~~~~~
1 error generated.
```
Signed-off-by: Pepper Gray <hello@peppergray.xyz >
2026-05-29 13:19:24 +02:00
Tony Wasserka
a040740974
CodeCache: Ensure atomicity of code page finalization
2026-05-13 22:53:09 +02:00
Tony Wasserka
5be0dc9fc5
CodeCache: Implement lazy code loading
2026-05-13 21:25:47 +02:00
Tony Wasserka
52ad434d24
LinuxSyscalls: Defer MappedResource deletion until after code invalidation
...
This ensures that any code buffer memory owned by the MappedResource is
invalidated before being deallocated.
2026-05-13 21:25:47 +02:00
Tony Wasserka
8afda92a64
CodeCache: Fix crash when guest library wrappers aren't installed
2026-05-07 18:56:35 +02:00
Ryan Houdek
7506cb4ea1
Merge pull request #5483 from neobrain/fix_guest_wrapper_code_cache
...
CodeCache: Delay cache loading for guest library wrappers until after LoadLib
2026-05-06 18:04:55 -07:00