* Implement syscall handlers using a source generator
* Copy FlushProcessDataCache implementation to Syscall since it was only implemented on Syscall32
* Fix wrong argument order in some syscalls
* Delete old Reflection.Emit based syscall handling code
* Improvements to the code generation
* ControlCodeMemory address and size is always 64-bit
* Refactor CPU interface
* Use IExecutionContext interface on SVC handler, change how CPU interrupts invokes the handlers
* Make CpuEngine take a ITickSource rather than returning one
The previous implementation had the scenario where the CPU engine had to implement the tick source in mind, like for example, when we have a hypervisor and the game can read CNTPCT on the host directly. However given that we need to do conversion due to different frequencies anyway, it's not worth it. It's better to just let the user pass the tick source and redirect any reads to CNTPCT to the user tick source
* XML docs for the public interfaces
* PPTC invalidation due to NativeInterface function name changes
* Fix build of the CPU tests
* PR feedback
* kernel: Implement Thread pinning support
This commit adds support for 8.x thread pinning changes and implement SynchronizePreemptionState syscall.
Based on kernel 13.x reverse.
* Address gdkchan's comment
* kernel: fix missing critical section leave in SetActivity
Fix Unity games
* Implement missing bits on the interrupt handler and inline update pinning function as it cannot be generic
* Fix some bugs in SetActivity and SetCoreAndAffinityMask
* Address gdkchan's comments
* Rewrite scheduler context switch code
* Fix race in UnmapIpcRestorePermission
* Fix thread exit issue that could leave the scheduler in a invalid state
* Change context switch method to not wait on guest thread, remove spin wait, use SignalAndWait to pass control
* Remove multi-core setting (it is always on now)
* Re-enable assert
* Remove multicore from default config and schema
* Fix race in KTimeManager