Léo Lam
d787bec63e
Fix ALWAYS_INLINE_LAMBDA and parameter list relative order
...
While GCC doesn't seem to care about the position of the always_inline
attribute relative to the parameter list, Clang is very picky
and requires the attribute to appear after the parameter list
(and before a trailing return type)
2021-11-07 00:57:28 +01:00
Michael Scire
d1f3c4904b
kern: fix minor assembly bugs, avoid unnecessary function call in KScheduler hotloop
2021-10-28 19:16:23 -07:00
Michael Scire
54dde406bc
kern: devirtualize KReadableEvent::Reset, KWorkerTask::DoWorkerTask
2021-10-24 20:41:38 -07:00
Michael Scire
89926f44c6
kern: use optimized red black tree finds for remaining holdouts
2021-10-23 21:58:48 -07:00
Michael Scire
436613401a
kern: devirtualize several KAutoObject functions
2021-10-23 21:13:26 -07:00
SciresM
36e4914be8
kern: avoid constexpr init for many objects (avoids unnecessary memory clear) ( #1668 )
2021-10-23 15:25:20 -07:00
Michael Scire
20716cb3de
kern: use new AtomicRef, use Atomic<bool>
2021-10-20 13:29:38 -07:00
Michael Scire
aed9d3f535
util: better match true std::atomic semantics
2021-10-20 11:02:17 -07:00
Michael Scire
d74f364107
kern/util: use custom atomics wrapper to substantially improve codegen
2021-10-19 15:24:15 -07:00
Michael Scire
f3b532070b
kern: update scheduler for 13.0.0 change, fix some ctz/clz bugs
2021-10-19 01:20:28 -07:00
Michael Scire
42b6c2dd95
kern: fix use of plr vs plr_heap, fix close/unlock order in ArbitrateLock
2021-10-19 01:19:31 -07:00
Michael Scire
26c02e2019
kern/util: update structure layouts to match Nintendo (saves 0x10 per KThread/KSession)
2021-10-16 16:13:10 -07:00
Michael Scire
1ab0bd1765
ams: replace most remaining operator & with std::addressof
2021-10-09 14:49:53 -07:00
Michael Scire
77fe5cf6f5
ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals
2021-10-04 12:59:10 -07:00
Michael Scire
90732ff311
kern: unify all waiting semantics to use single api
2021-09-19 10:34:31 -07:00
Michael Scire
4f16106702
exo/meso: update for gcc 11 compatibility
2021-04-26 20:06:18 -07:00
Michael Scire
6faa3534bf
kern: update pinning semantics for terminating threads
2021-04-11 03:42:16 -07:00
Michael Scire
4407237f5b
kern: KAutoObject destruction is now scheduled for next dpc-time
2021-04-11 03:42:16 -07:00
Michael Scire
256eb92f4c
kern: update process/thread for new running/termination semantics
2021-04-11 03:42:16 -07:00
Michael Scire
3356eddcba
kern: update kernel waiter management rules
2021-04-11 03:42:16 -07:00
Michael Scire
e64fef109c
kern: update pinned thread priority rules
2021-04-11 03:42:16 -07:00
Michael Scire
1b2cf173b3
kern: add new checks to SetThreadPriority/CoreMask
2021-04-11 03:42:16 -07:00
Michael Scire
4aa18b06e8
kern: greatly improve codegen for atomics, scheduler
2021-01-08 02:13:43 -08:00
Michael Scire
968f50bc07
kern: refactor to use m_ for member variables
2020-12-18 13:31:01 -08:00
Michael Scire
bcc7eed037
kern: add debug thread dump
2020-12-09 05:59:54 -08:00
Michael Scire
3c8e7de915
kern: fix bugs caused by UB + transition to -Os
2020-12-02 06:43:37 -08:00
Michael Scire
0a1465f198
kern: add new overflow checks on KMemoryRegions
2020-12-02 06:43:37 -08:00
Michael Scire
28f9b534b6
kern: implement 64-virtual-core interface
2020-12-02 06:43:37 -08:00
Michael Scire
8b2ed36698
kern: cleanup KThread, optimize/normalize KThreadQueue/KWaitObject
2020-12-02 06:43:37 -08:00
Michael Scire
1852fe8612
kern: improve KSynchronizationObject, kill KSynchronization
2020-12-02 06:43:37 -08:00
Michael Scire
b0debd72a7
kern: Kill KCoreLocalRegion
2020-12-02 06:43:37 -08:00
Michael Scire
a75c16226e
kern: correct thread termination atomicity
2020-08-18 15:17:40 -07:00
Michael Scire
e1bd6fb874
kern: fix missing scheduler updates in KLightLock/Exception, fix RequestScheduleOnInterrupt
2020-08-18 15:17:40 -07:00
Michael Scire
3afd723b92
kern: SvcGetDebugThreadParam
2020-07-31 14:50:52 -07:00
Michael Scire
e1f3bb10a5
kern: clean up majority of TODOs
2020-07-31 14:50:52 -07:00
Michael Scire
96c3dfee14
kern: SvcGetThreadList
2020-07-31 14:50:52 -07:00
Michael Scire
8922bbd108
kern: SendSyncRequestLight, ReplyAndReceiveLight
2020-07-31 14:50:52 -07:00
Michael Scire
4bb9ef061a
kern: implement SvcGetThreadContext3
2020-07-31 14:50:52 -07:00
Michael Scire
f70ee67753
kern: correct behavior when setting activity/core mask for pinned thread
2020-07-31 14:50:52 -07:00
Michael Scire
787964f7e7
kern: implement thread pinning/SvcSynchronizePreemptionState
2020-07-31 14:50:52 -07:00
Michael Scire
1448068b69
kern: fix assertion in KThread::(Try)Suspend
2020-07-31 14:50:52 -07:00
Michael Scire
1b9acc4a6a
kern: SvcUnmapPhysicalMemory, cleanup thread pinning
2020-07-31 14:50:52 -07:00
Michael Scire
46935fea80
kern: fix resource leak bugs
2020-07-31 14:50:52 -07:00
Michael Scire
1d4d637818
kern SvcGetCurrentProcessorNumber, SvcSetProcessActivity, half of SvcSetThreadActivity
2020-07-31 14:50:52 -07:00
Michael Scire
23eed522d3
kern: SvcGetThreadCoreMask, SvcSetThreadCoreMask
2020-07-31 14:50:52 -07:00
Michael Scire
28aab09b5d
kern: implement process exit
2020-07-31 14:50:52 -07:00
Michael Scire
3cf793f87e
kern: implement KThread::Finalize
2020-07-31 14:50:52 -07:00
Michael Scire
26df56cd87
kern: implement SvcCancelSynchronization
2020-07-31 14:50:52 -07:00
Michael Scire
5b8a20dbf7
kern: fix bug in SvcSetThreadPriority
2020-07-31 14:50:52 -07:00
Michael Scire
a0cc22302c
kern: add KAddressArbiter::WaitIfEqual
2020-07-31 14:50:52 -07:00