Commit Graph

86 Commits

Author SHA1 Message Date
Michael Scire
737720086b kern: codegen tweaks, now that we're no longer -Os 2022-03-23 09:16:07 -07:00
Michael Scire
f38d589516 kern: implement new thread context/fpu semantics 2022-03-23 09:16:06 -07:00
SciresM
00203fd7c3 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-03-23 09:15:40 -07:00
Michael Scire
17ceca9140 kern: fix minor assembly bugs, avoid unnecessary function call in KScheduler hotloop 2021-10-29 17:47:13 -07:00
Michael Scire
1713d12946 kern: devirtualize KReadableEvent::Reset, KWorkerTask::DoWorkerTask 2021-10-26 01:11:15 -07:00
Michael Scire
5217e6b9f3 kern: devirtualize KAutoObjectWithList::GetId() 2021-10-26 01:11:15 -07:00
Michael Scire
62bdae5b3f kern: devirtualize most things that are free to devirtualize (see #1672) 2021-10-26 01:11:15 -07:00
Michael Scire
7749ecabc4 kern: devirtualize several KAutoObject functions 2021-10-26 01:11:14 -07:00
SciresM
823c0df6b9 kern: avoid constexpr init for many objects (avoids unnecessary memory clear) (#1668) 2021-10-26 01:11:13 -07:00
Michael Scire
00353a05e9 kern: use new AtomicRef, use Atomic<bool> 2021-10-26 01:11:13 -07:00
Michael Scire
0d1ec0739f util: better match true std::atomic semantics 2021-10-26 01:11:13 -07:00
Michael Scire
d3b358bbb9 kern/util: use custom atomics wrapper to substantially improve codegen 2021-10-26 01:11:12 -07:00
Michael Scire
960c5c19f9 ams: improve offsetof style consistency 2021-10-26 01:11:10 -07:00
Michael Scire
05c7ba6439 kern/util: update structure layouts to match Nintendo (saves 0x10 per KThread/KSession) 2021-10-26 01:11:09 -07:00
Michael Scire
002422d5dc ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-07 23:06:25 -07:00
Michael Scire
8ecddf498a kern: use util::BitFlagSet for capability flags 2021-10-07 23:06:18 -07:00
Michael Scire
993ffbfdcd kern: unify all waiting semantics to use single api 2021-09-19 10:35:39 -07:00
Michael Scire
94fa7524ff kern: KAutoObject doesn't need (virtual) destructor 2021-09-19 10:35:35 -07:00
Michael Scire
33d58424c7 kern: add hardware single step extension 2021-09-19 10:35:28 -07:00
Michael Scire
d8e35f2277 exo/meso: update for gcc 11 compatibility 2021-04-29 03:04:54 -07:00
Michael Scire
2ccba9adbb util: implement red black trees as templates over macros 2021-04-29 03:04:53 -07:00
Michael Scire
f863ad0a32 kern: mesosphere now implements kernel/sdk 12.3 2021-04-11 03:59:20 -07:00
Michael Scire
7c35303c62 kern: KAutoObject destruction is now scheduled for next dpc-time 2021-04-11 03:59:16 -07:00
Michael Scire
ec7e3fb07f kern: update process/thread for new running/termination semantics 2021-04-11 03:59:10 -07:00
Michael Scire
f11f6ec313 kern: update pinned thread priority rules 2021-04-11 03:59:09 -07:00
Michael Scire
af72072313 kern: bump svc limit to 192 from 128 2021-04-11 03:59:07 -07:00
Michael Scire
ca5e69f16d kern: greatly improve codegen for atomics, scheduler 2021-01-13 10:41:26 -08:00
Michael Scire
4ddacf3384 kern: refactor to use m_ for member variables 2020-12-19 10:21:52 -08:00
Michael Scire
9784530bcf kern: implement thread call stack debug 2020-12-11 03:49:00 -08:00
Michael Scire
a7b7dd1257 kern: add debug thread dump 2020-12-11 03:49:00 -08:00
Michael Scire
b5eb0bb978 kern: assume that uart has been setup by secmon 2020-12-02 06:53:18 -08:00
Michael Scire
02bea1a3f2 kern: remove now unused SetupFor*Compare funcs 2020-12-02 06:53:16 -08:00
Michael Scire
c24ba715b4 KConditionVariable/KAddressArbiter: no need for global compare thread 2020-12-02 06:53:15 -08:00
Michael Scire
e4774a2685 kern: implement 64-virtual-core interface 2020-12-02 06:53:15 -08:00
Michael Scire
a57c7f7a48 kern: cleanup KThread, optimize/normalize KThreadQueue/KWaitObject 2020-12-02 06:53:14 -08:00
Michael Scire
0c73792282 kern: Kill KCoreLocalRegion 2020-12-02 06:53:12 -08:00
Michael Scire
0f3085b8f6 kern: perform rescheduling on dispatch re-enable (closes #1169) 2020-10-26 16:03:08 -07:00
Michael Scire
ec6535bd4b kern: fix warn-errors 2020-09-07 10:51:47 -07:00
Michael Scire
3d800b407e kern: mark KThread/KProcess.GetId() final to save virtual calls 2020-09-07 10:51:38 -07:00
Michael Scire
227b9603cd kern: SvcReturnFromException 2020-08-01 15:31:46 -07:00
Michael Scire
f80eb2c26f kern SvcGetDebugThreadContext, SvcSetDebugThreadContext 2020-08-01 15:31:45 -07:00
Michael Scire
ff9d3ee1d6 kern: SvcGetDebugThreadParam 2020-08-01 15:31:45 -07:00
Michael Scire
bb044b1934 kern: clean up majority of TODOs 2020-08-01 15:31:44 -07:00
Michael Scire
3b9403f3fc kern: Svc(Legacy)ContinueDebugEvent 2020-08-01 15:31:42 -07:00
Michael Scire
83020ce2c4 kern: SvcGetThreadList 2020-08-01 15:31:41 -07:00
Michael Scire
a0de667005 kern: SvcGetLastThreadInfo, SvcGetDebugFutureThreadInfo 2020-08-01 15:31:41 -07:00
Michael Scire
e8021705d8 kern: SendSyncRequestLight, ReplyAndReceiveLight 2020-08-01 15:31:37 -07:00
Michael Scire
c64e490663 kern: implement SvcGetThreadContext3 2020-08-01 15:31:35 -07:00
Michael Scire
be1314cb88 kern: implement thread pinning/SvcSynchronizePreemptionState 2020-08-01 15:31:34 -07:00
Michael Scire
e096d11e3a kern: fix assertion in KThread::(Try)Suspend 2020-08-01 15:31:33 -07:00