Ryan Houdek
fac6377ed3
Fixes a crash in openat
2021-03-31 23:37:57 -07:00
Ryan Houdek
4f3cb933cb
Fixes execve
2021-03-31 23:37:56 -07:00
Ryan Houdek
83eb7f4ad3
Return EPERM in ptrace. A Feral launcher is attempting to use this to ensure it can't ptrace.
2021-03-31 23:37:56 -07:00
Stefanos Kornilios Mitsis Poiitidis
942b8549c6
Docs: Add tags to the source code
2021-03-30 12:21:18 +03:00
Ryan Houdek
15dd70487f
Removes legacy difference between FEX config env variable and enum names
2021-03-29 00:26:11 -07:00
Ryan Houdek
43984c810d
Merge pull request #886 from Sonicadvance1/namespace_perm
...
Returns EPERM on clone with namespace
2021-03-23 20:56:20 -07:00
Scott Mansell
6a8f68022f
Join threads after fork.
...
Also, add some comments to document things and
rename function to be clear about it's purpose.
2021-03-24 15:41:09 +13:00
Ryan Houdek
9b35cb4408
Returns EPERM on clone with namespace
...
Notably this allows applications to work that don't require the namespace but check up front if they are able to clone with it.
Civ 6's launcher checks this as an example
2021-03-23 19:28:06 -07:00
Scott Mansell
41a1a9d400
Cleanup threads when they exit
2021-03-24 03:14:23 +13:00
Stefanos Kornilios Mitsis Poiitidis
d34cde12ae
Merge pull request #850 from Sonicadvance1/struct_verifier
...
libclang based Struct verifier written in python
2021-03-19 10:06:34 +02:00
Stefanos Kornilios Mitsis Poiitidis
0106b362d6
EmulatedFiles: Lock around FDToNameMap accesses
2021-03-18 12:45:27 +02:00
Ryan Houdek
634d4fead0
Removes libcap-dev dependency
...
We are only using this for syscalls getcap and setcap.
These are only passthrough pointers and don't need to be handled from a library.
Noticed this while writing user documentation
2021-03-16 22:08:15 -07:00
Ryan Houdek
4f64ba582c
Patch up the remaining 32bit structs
2021-03-15 15:51:59 -07:00
Ryan Houdek
aacb0f6891
Adds new struct_verifier ctest to cmake
...
Currently only testing 32bit syscall struct definitions
2021-03-15 15:24:49 -07:00
Ryan Houdek
9dc0717cdb
Attributes a few 32bit syscall types
...
This will be necessary for struct verification in the next commit
rusage needed to be updated to match the real rusage. Has unions with two named types
2021-03-15 06:58:06 -07:00
Ryan Houdek
3a0b475cfa
Wrap /proc/version where we were leaking host kernel information
...
drops the correct FEX version in to the string as well
2021-03-12 20:29:35 -08:00
Ryan Houdek
4ece56ac4d
Fixes uname version string
...
This wasn't following the correct format and it never actually had a working FEX_VERSION define.
Now it pulls in the GIT_DESCRIBE_STRING and brings in the correct date + time format
2021-03-12 20:29:35 -08:00
Ryan Houdek
ea7af248e8
Ensure programs can pull in git_version.h
2021-03-12 20:29:35 -08:00
Stefanos Kornilios Mitsis Poiitidis
e9afabc4cb
Merge pull request #827 from FEX-Emu/skmp/thunks-json
...
Thunks: Add Thunk json, thunk guest folder
2021-03-11 11:05:23 +02:00
Ryan Houdek
0dc7fd75e1
Adds a couple new 32bit syscalls found while running Steam
...
These are straightforward to implement. Only a few dozen more syscalls missing on 32bit
2021-03-10 17:43:21 -08:00
Stefanos Kornilios Mitsis Poiitidis
f0d3004363
Thunks: Add Thunk json, thunk guest folder
2021-03-10 15:51:34 +02:00
Stefanos Kornilios Mitsis Poiitidis
449ea3e80b
Signals: SA_NOCLDSTOP only blocks CLD_CONTINUED/STOPPED/TRAPPED
2021-03-10 11:25:40 +02:00
Scott Mansell
6ed36e3304
Refactor syscalls to take Frame
...
The vast majoirty of syscalls don't need anything in thread or frame.
So lets save an indirection for all those syscalls.
Most of the syscalls which do need Thread (or CTX via
Thread are in Thread.cpp or Memory.cpp
These have all been modifiy to fetch Thread from Frame
2021-03-09 20:28:50 +13:00
Scott Mansell
35c01038ba
Seperate per-thread and per-frame state
2021-03-09 20:27:44 +13:00
Ryan Houdek
a3ba1ae199
Deduplicates some configuration data
...
Configuration mapping was duplicated between three different tables.
Additionally default configuration values were strewn about. Making it confusing as to what the default value would end up being
Adds a new ConfigValues.inl header that defines a few things right next to each other.
Defines the enum name as usual.
Defines the JSON config option name.
Defines the Environment config option name
Defines the default value that the configuration should be
2021-03-08 22:53:41 -08:00
Stefanos Kornilios Mitsis Poiitidis
3978097f15
Merge pull request #705 from FEX-Emu/skmp/mmap-cache-flushing
...
Flush IR/Code cache on mmap, mmunmap & mprot
2021-03-03 12:59:29 +02:00
Stefanos Kornilios Mitsis Poiitidis
e92578817d
SMC: Flush IR/Code cache on mmap, mmunmap & mprot
2021-02-26 13:22:05 +02:00
Ryan Houdek
9746e0175e
Change unsupported faccessat2 to use safe syscall unsupported
2021-02-25 13:45:24 -08:00
Ryan Houdek
d78a3784fb
Guards SYS_faccessat2 define for new enough glibc defines
2021-02-25 13:44:40 -08:00
Ryan Houdek
7dd5252d68
Implements support for faccessat2 in syscallhandler
...
Only exists if the host kernel is >= 5.8.0.
2021-02-24 09:52:30 -08:00
Ryan Houdek
ac92a103df
Adds support for faccessat2 to FileManager
2021-02-24 09:51:29 -08:00
Ryan Houdek
74a00fee0f
Updates syscall definitions enums
2021-02-24 09:51:03 -08:00
Stefanos Kornilios Mitsis Poiitidis
075cd423ed
AOTIR: Review feedback
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
abb2e09c20
AOTIR: Add support for 32-bit process
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
b3d12fbb7b
AOTIR: Cleanup interface
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
d825ed2b03
AOTIR: Reduce map lookup
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
3e1e093b24
AOTIR: Store in ~/.fex-emu/aotir, per so
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
47d4481a75
AOTIR: Support relocations via new ir op
2021-02-23 12:08:57 +02:00
Ryan Houdek
d3e98fedb4
Pulls uname nodename from host system
...
Hardcoding FEXCore as the nodename is an annoyance.
Pull the host's nodename instead.
Fixes #600
2021-02-22 22:39:05 -08:00
Stefanos Kornilios Mitsis Poiitidis
568fb3643d
Syscalls/x86-32: Fix selects to actually remarshal the sets after running the host syscall
2021-02-16 02:35:38 +02:00
Scott Mansell
3d6461f0ca
BRK: don't munmap if mmap failed
2021-02-09 17:29:44 +13:00
Scott Mansell
46ec7c406f
emulated-cpuid: add some comments
2021-02-09 13:03:49 +13:00
Scott Mansell
a28acf5505
Fix the number of physical cpus reported.
2021-02-09 12:52:27 +13:00
Ryan Houdek
0aaed41f72
Merge pull request #751 from FEX-Emu/skmp/fix-fchmodat-faccessat
...
Syscalls: chmodat, faccessat glibc interface differs from kernel
2021-02-02 05:52:38 -08:00
Stefanos Kornilios Mitsis Poiitidis
f9aa457e3f
Syscalls: chmodat, faccessat glibc interface differs from kernel
2021-02-02 14:35:27 +02:00
Scott Mansell
9fa108ff33
Move -lnuma to correct place
2021-02-02 16:47:55 +13:00
Scott Mansell
45962098ef
Refactor LinuxSyscalls to it's own static library
2021-02-02 16:47:55 +13:00
Stefanos Kornilios Mitsis Poiitidis
d6ee3caad4
Syscalls: Define MREMAP_DONTUNMAP if missing
2021-01-28 17:09:08 +02:00
Ryan Houdek
a98eaa6a27
Finishes 32bit memory allocator
...
This was partially implemented before but it had some bugs still.
This fixes those bugs and also implements mremap, shmat, and shmdt.
This now works well enough for 32bit graphical applications
2021-01-27 10:49:28 -08:00
Ryan Houdek
2d8b70bbd5
Merge pull request #710 from Sonicadvance1/brk_improvements
...
More improvements to BRK handling
2021-01-27 10:49:07 -08:00