Michael Scire
6e17317d5d
kern: implement new thread context/fpu semantics
2022-03-23 09:10:50 -07:00
SciresM
96f95b9f95
Integrate new result macros. ( #1780 )
...
* result: try out some experimental shenanigans
* result: sketch out some more shenanigans
* result: see what it looks like to convert kernel to use result conds instead of guards
* make rest of kernel use experimental new macro-ing
2022-02-14 14:45:32 -08: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
8a661cee6e
kern: devirtualize KAutoObjectWithList::GetId()
2021-10-24 17:00:05 -07:00
Michael Scire
d0cd511c0e
kern: devirtualize most things that are free to devirtualize (see #1672 )
2021-10-24 13:04:31 -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
889d843718
ams: improve offsetof style consistency
2021-10-18 00:17:13 -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
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
d00cec38b0
kern: use util::BitFlagSet for capability flags
2021-09-27 11:37:27 -07:00
Michael Scire
90732ff311
kern: unify all waiting semantics to use single api
2021-09-19 10:34:31 -07:00
Michael Scire
572cbd8619
kern: KAutoObject doesn't need (virtual) destructor
2021-09-19 10:34:31 -07:00
Michael Scire
4075d24e0c
kern: add hardware single step extension
2021-09-11 19:41:47 -07:00
Michael Scire
4f16106702
exo/meso: update for gcc 11 compatibility
2021-04-26 20:06:18 -07:00
Michael Scire
57b6c71c1c
util: implement red black trees as templates over macros
2021-04-20 16:56:33 -07:00
Michael Scire
1d2be0a2eb
kern: mesosphere now implements kernel/sdk 12.3
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
e64fef109c
kern: update pinned thread priority rules
2021-04-11 03:42:16 -07:00
Michael Scire
4b9e7c7d27
kern: bump svc limit to 192 from 128
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
af259eabda
kern: implement thread call stack debug
2020-12-09 22:49:04 -08:00
Michael Scire
bcc7eed037
kern: add debug thread dump
2020-12-09 05:59:54 -08:00
Michael Scire
2b483866c7
kern: assume that uart has been setup by secmon
2020-12-02 06:43:37 -08:00
Michael Scire
56c6e4244a
kern: remove now unused SetupFor*Compare funcs
2020-12-02 06:43:37 -08:00
Michael Scire
c8ebd7eea0
KConditionVariable/KAddressArbiter: no need for global compare thread
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
b0debd72a7
kern: Kill KCoreLocalRegion
2020-12-02 06:43:37 -08:00
Michael Scire
2e7214b6fa
kern: perform rescheduling on dispatch re-enable ( closes #1169 )
2020-10-13 23:07:51 -07:00
Michael Scire
bb11c57e7d
kern: fix warn-errors
2020-09-07 10:43:35 -07:00
Michael Scire
cda15f08d8
kern: mark KThread/KProcess.GetId() final to save virtual calls
2020-08-18 15:17:40 -07:00
Michael Scire
5d462c626c
kern: SvcReturnFromException
2020-07-31 14:50:52 -07:00
Michael Scire
5c4fbf5c67
kern SvcGetDebugThreadContext, SvcSetDebugThreadContext
2020-07-31 14:50:52 -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
b143f1e05f
kern: Svc(Legacy)ContinueDebugEvent
2020-07-31 14:50:52 -07:00
Michael Scire
96c3dfee14
kern: SvcGetThreadList
2020-07-31 14:50:52 -07:00
Michael Scire
51084c0837
kern: SvcGetLastThreadInfo, SvcGetDebugFutureThreadInfo
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
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