Commit Graph

193 Commits

Author SHA1 Message Date
Michael Scire
610e99b277 kern: audit (and fix) our hardware maintenance instructions to match official kernel 2021-10-27 22:57:18 -07:00
Michael Scire
695a99183b kern: other dmbs in kernel were already dmb ish 2021-10-26 01:11:19 -07:00
Michael Scire
5f0eb19a41 kernel_ldr: bring initial cache flush in line with Nintendo 2021-10-26 01:11:16 -07:00
Michael Scire
89f01cb068 kern: KCacheHelper: better reflect nintendo coremask clearing logic 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
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
2827f6300e kern: fix use of plr vs plr_heap, fix close/unlock order in ArbitrateLock 2021-10-26 01:11:11 -07:00
Michael Scire
960c5c19f9 ams: improve offsetof style consistency 2021-10-26 01:11:10 -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
204b389252 kern: devirtualize page table operations 2021-09-24 09:17:11 -07:00
Michael Scire
f103b6876b kern: KMemoryManager/KPageGroup use physical addresses instead of virtual, now 2021-09-19 10:35:38 -07:00
Michael Scire
1ac249dd13 kern: support dynamic resource expansion for system heaps/events/sessions. 2021-09-19 10:35:38 -07:00
Michael Scire
5a41163576 kern: improve kdebug attach semantics 2021-09-19 10:35:38 -07:00
Michael Scire
ccdee05857 kern: update KPageTable::Unmap block closing logic 2021-09-19 10:35:38 -07:00
Michael Scire
62655a9e3b kern: optimize logging for release kernel strings (saves printf space in .text) 2021-09-19 10:35:37 -07:00
Michael Scire
0a262ed268 kern: improve single-step around user-exception entry 2021-09-19 10:35:29 -07:00
Michael Scire
2b91674b42 kern: fix spsr register in RestoreContext 2021-09-19 10:35:29 -07:00
Michael Scire
e9a80d95e7 kern: optimize hw-single-step management 2021-09-19 10:35:29 -07:00
Michael Scire
33d58424c7 kern: add hardware single step extension 2021-09-19 10:35:28 -07:00
Michael Scire
42ef588bf4 kern: improve some debug output 2021-08-20 13:34:02 -07:00
Michael Scire
68e98575be kern: fix hardware watchpoint detection 2021-08-20 13:34:00 -07:00
Michael Scire
5bad58cb8f kern: fix inverted condition in context breakpoint validation 2021-08-20 13:34:00 -07:00
Michael Scire
4f66af77b0 kern: since 10.0.0, KDebug::GetThreadContext always returns X0-X7 2021-08-20 13:33:59 -07:00
Michael Scire
525254b32b kern: update initial cache management to match latest kernel 2021-08-20 13:33:58 -07:00
Michael Scire
765c854768 kern: implement improved [new page tables are zero] invariant 2021-07-06 07:28:30 -07:00
Michael Scire
e238fa426d kern: mostly kill magic numbers in assembly, fix SVCs >= 0x80 2021-04-29 03:04:51 -07:00
Michael Scire
0162133f1e kern: update pinning semantics for terminating threads 2021-04-11 03:59:19 -07:00
Michael Scire
3ebf91304e kern: update Initialize0 for new changes 2021-04-11 03:59:15 -07:00
Michael Scire
438fc774ba kern: trivially optimize userspace io memory write 2021-04-11 03:59:14 -07:00
Michael Scire
324ec34f5c kern: update set/way cache operations for new semantics 2021-04-11 03:59:13 -07:00
Michael Scire
43900d4765 kern: track mapped ipc server memory in page table 2021-04-11 03:59:12 -07:00
Michael Scire
be127dfc4b kern: update KInterruptEvent to store core id 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
02453fc15f kern: add page table contents debug 2020-12-19 10:21:46 -08:00
Michael Scire
59b4e75021 kern: cfi fix pt 2 2020-12-11 05:02:36 -08:00
Michael Scire
da89824925 kern: fix cfi (requires x18 not cleared on return to userland) 2020-12-11 05:02:35 -08:00
Michael Scire
7519d17941 kern: add kernel object debug 2020-12-11 03:49:01 -08:00
Michael Scire
f3882fa0f7 kern: add handle table/process/suspend/resume debug 2020-12-11 03:49:01 -08:00
Michael Scire
9784530bcf kern: implement thread call stack debug 2020-12-11 03:49:00 -08:00
Michael Scire
98c80d487b meso: properly initialize per-thread CFI-value for 11.x 2020-12-11 03:48:59 -08:00
Michael Scire
9586142e90 kern: tweak optimization settings for hot paths 2020-12-02 06:53:22 -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
43a0706e96 kern: remove more of clc 2020-12-02 06:53:12 -08:00
Michael Scire
f36d24e1ed kern: update KHardwareTimer, move out of KCoreLocalRegion 2020-12-02 06:53:11 -08:00
Michael Scire
8ec3f47a80 kern: use single interrupt manager object 2020-12-02 06:53:11 -08:00
Michael Scire
843e2b08fe kern: fix unnecessary align-down 2020-12-02 06:53:11 -08:00
Michael Scire
c21e43f7e1 kern: fix error in SeparatePages 2020-12-02 06:53:11 -08:00
Michael Scire
397d317a6c kern: implement DisableDeviceAddressSpaceMerge 2020-12-02 06:53:10 -08:00
Michael Scire
396dc066e9 kern: KMemoryManager::Allocate -> AllocateAndOpen 2020-12-02 06:53:09 -08:00
Michael Scire
f152b16639 kern: update KMemoryBlockManagerUpdateAllocator api 2020-12-02 06:53:09 -08:00
Michael Scire
5f885a3b22 kern: implement new software-reserved page table bits 2020-12-02 06:53:08 -08:00
Michael Scire
394112f9ac kern: update KPageTableBase for new disable-merge attrs 2020-12-02 06:53:08 -08:00
Michael Scire
ba45f73e40 kern: generate fatal error on panic 2020-09-17 08:34:22 -07:00
Michael Scire
78161021f4 kern: use common GIC implementation for arm/arm64 2020-09-07 10:51:41 -07:00
Michael Scire
d7e420c895 kern: SvcLegacyGetFutureThreadInfo 2020-09-07 10:51:40 -07:00
Michael Scire
4cafc6acb9 kern: rename CacheHelper operation for accuracy 2020-09-07 10:51:40 -07:00
Michael Scire
888f5cdd20 kern: fix multicore instruction cache invalidation 2020-09-07 10:51:40 -07:00
Michael Scire
d2dd922f47 kern: add tracing for irq/scheduling 2020-09-07 10:51:39 -07:00
Michael Scire
6f177e3e84 kern: fix missing scheduler updates in KLightLock/Exception, fix RequestScheduleOnInterrupt 2020-09-07 10:51:38 -07:00
Michael Scire
4a91046154 kern: implement svc trace 2020-09-07 10:51:37 -07:00
Michael Scire
dc59a2d2e5 kern: build with -Wextra 2020-09-07 10:51:36 -07:00
Michael Scire
b5c915a6f2 kern: complete final SVC stubs (KernelDebug/Trace debug-impl still TODO) 2020-08-01 15:31:46 -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
bb044b1934 kern: clean up majority of TODOs 2020-08-01 15:31:44 -07:00
Michael Scire
c7f108082b kern: resolve MESOSPHERE_UNIMPLEMENTEDs other than UserException 2020-08-01 15:31:44 -07:00
Michael Scire
3d5f2b7258 kern: Add real SvcBreak implementation 2020-08-01 15:31:43 -07:00
Michael Scire
179427687b kern: SvcSetHardwareBreakPoint 2020-08-01 15:31:43 -07:00
Michael Scire
a0de667005 kern: SvcGetLastThreadInfo, SvcGetDebugFutureThreadInfo 2020-08-01 15:31:41 -07:00
Michael Scire
641e92e6a0 kern: SvcFlushDataCache, SvcFlushEntireDataCache 2020-08-01 15:31:41 -07:00
Michael Scire
ef6ede3aeb kern: SvcReadDebugProcessMemory, SvcWriteDebugProcessMemory 2020-08-01 15:31:40 -07:00
Michael Scire
8019804c7f kern: automatic PC alignment on ERET is implementation defined 2020-08-01 15:31:39 -07:00
Michael Scire
85932bb91e kern: fix ARM vs THUMB mode selection on 32-bit entry 2020-08-01 15:31:38 -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
2cee81697c kern: correct behavior when setting activity/core mask for pinned thread 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
b98450c9cf kern: Map L1/L2 blocks when possible 2020-08-01 15:31:34 -07:00
Michael Scire
52e5e0866a kern: fix bug in page table mapping calculations 2020-08-01 15:31:33 -07:00
Michael Scire
a56e8ca4b0 kern: General system stability improvements to enhance the user's experience. 2020-08-01 15:31:32 -07:00
Michael Scire
c624611487 kern: update interrupt manager 2020-08-01 15:31:32 -07:00
Michael Scire
10415aefee kern: SvcUnmapPhysicalMemory, cleanup thread pinning 2020-08-01 15:31:31 -07:00
Michael Scire
dc8fccd168 kern: implement SvcMapPhysicalMemory 2020-08-01 15:31:31 -07:00
Michael Scire
a22d1d04f2 kern: implement SvcSleepSystem 2020-08-01 15:31:30 -07:00
Michael Scire
670824fa0a kern: implement process exit 2020-08-01 15:31:27 -07:00
Michael Scire
0013041509 kern: KConditionVariable::SignalImpl 2020-08-01 15:31:26 -07:00
Michael Scire
69274df795 kern: dump page table on user exception 2020-08-01 15:31:23 -07:00
Michael Scire
767a3fca3a kern: fix incorrect cache routines, implement SvcSetProcessMemoryPermission 2020-08-01 15:31:22 -07:00
Michael Scire
29a3bafb6f kern: fix kscheduler interrupt api, adjust debug logging 2020-08-01 15:31:20 -07:00
Michael Scire
a22c0a84dd kern: implement SvcSignalToAddress, SvcWaitForAddress 2020-08-01 15:31:19 -07:00
Michael Scire
03d30f5b15 kern: patch svc tables via asm, instead of relying on compiler to be nice 2020-08-01 15:31:15 -07:00
Michael Scire
8dbdf596bc kern: Support older SVC ABIs 2020-08-01 15:31:15 -07:00
Michael Scire
7a57010993 kern: add KPageTableBase::CopyMemory Linear <-> User and Linear <-> Kernel 2020-08-01 15:31:07 -07:00
Michael Scire
f752db8379 kern: implement SvcCreateThread, SvcStartThread 2020-08-01 15:31:02 -07:00
Michael Scire
191e233745 kern: implement SvcUnmapMemory, more of SvcGetInfo 2020-08-01 15:31:00 -07:00
Michael Scire
71027e463a kern: implement 10.x perm change, fix many page table bugs 2020-04-24 17:29:10 -07:00