re-introduce wrapping structs for syscall registration Recently, a PR removed this, and broke useful backtraces for debugging ``` Switching to thread 2 (Thread 0x7fff5eac7640 (LWP 1501682))] #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 38 ../sysdeps/unix/sysv/linux/x86_64/syscall.S: No such file or directory. (gdb) bt #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x0000555555ab6a1a in FEX::HLE::x64::RegisterThread(FEX::HLE::SyscallHandler*)::$_1::operator()(FEXCore::Core::CpuStateFrame*, int*, int, int, timespec const*, int*, unsigned int) const ( this=0x7ffff76c29b0, Frame=0x7ffff76c29b0, uaddr=0x7fffdec171d8, futex_op=128, val=10, timeout=0x0, uaddr2=0x7fffdec171c0, val3=3737219520) at /home/skmp/projects/FEX/Source/Tests/LinuxSyscalls/x64/Thread.cpp:59 #2 0x0000555555ab69c8 in FEX::HLE::x64::RegisterThread(FEX::HLE::SyscallHandler*)::$_1::__invoke(FEXCore::Core::CpuStateFrame*, int*, int, int, timespec const*, int*, unsigned int) ( Frame=0x7ffff76c29b0, uaddr=0x7fffdec171d8, futex_op=128, val=10, timeout=0x0, uaddr2=0x7fffdec171c0, val3=3737219520) at /home/skmp/projects/FEX/Source/Tests/LinuxSyscalls/x64/Thread.cpp:59 #3 0x0000555555a2b90c in std::__invoke_impl ( __f=@0x7ffff76e32f8: 0x555555ab6980 , __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552) at /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61 #4 0x0000555555a2b819 in std::__invoke ( __fn=@0x7ffff76e32f8: 0x555555ab6980 , __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552) at /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96 #5 0x0000555555a2a009 in std::invoke ( __fn=@0x7ffff76e32f8: 0x555555ab6980 , __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552, __args=@0x7fff5eac4950: 140736930607552) at /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:97 #6 0x0000555555a23e65 in FEX::HLE::SyscallHandler::HandleSyscall (this=0x7ffff76ba000, Frame=0x7ffff76c29b0, Args=0x7fff5eac4920) at /home/skmp/projects/FEX/Source/Tests/LinuxSyscalls/Syscalls.cpp:762 #7 0x000055555567b41e in FEXCore::Context::HandleSyscall (Handler=0x7ffff76ba000, Frame=0x7ffff76c29b0, Args=0x7fff5eac4920) at /home/skmp/projects/FEX/External/FEXCore/Source/Interface/Core/Core.cpp:1463 ```