Commit Graph

182 Commits

Author SHA1 Message Date
Michael Scire
b70e367745 kern/ldr: add support for --x executables 2024-10-15 21:51:39 -07:00
Michael Scire
18d59ac4ac kern: fix debug build 2024-10-15 21:51:37 -07:00
Michael Scire
0c85274c14 kern: allocate all TTBR0 pages during init, use procidx as asid 2024-10-15 21:51:37 -07:00
Michael Scire
42332ee1bc kern: clear gicd/gicc pointers in KInterruptController::Finalize 2024-10-15 21:51:36 -07:00
Michael Scire
89bfecb6b6 kern/svc: update WaitForAddress to support 64-bit WaitIfEqual 2024-10-15 21:51:35 -07:00
Michael Scire
06d82b52ff kern/creport: use mod0 to locate symbol table for all modules 2024-10-15 21:51:33 -07:00
Michael Scire
7f661bd2c8 kern: return ExceptionType_UnalignedData on data abort caused by alignment fault 2024-03-29 02:55:05 -07:00
Michael Scire
6571df6cbc kern: implement new attr tracking for memory range/traversal context 2024-03-29 02:55:04 -07:00
Michael Scire
60e3c8a4cc kern/os: support CreateProcessFlag_EnableAliasRegionExtraSize 2024-03-29 02:55:02 -07:00
Michael Scire
d7c77f731e kern: use userspace access instructions to read from tlr 2024-03-29 02:55:00 -07:00
Michael Scire
d7a02b6ca1 kern: fix some comment typos 2023-11-16 16:25:26 -07:00
Michael Scire
43b8461b5f kern/svc: fix query/insecure names 2023-11-16 16:25:26 -07:00
Michael Scire
d213377313 kern: split out GetInstructionDataUserMode in exception handler 2023-10-12 09:22:26 -07:00
Michael Scire
6dcf506423 kern: KPageTable: remove MapFirst operation, replace with MapFirstGroup 2023-10-12 09:22:25 -07:00
Michael Scire
7ac90cdb0d kern: note OnFinalize calls in KPageTable::Finalize 2023-10-12 09:22:25 -07:00
Michael Scire
9f51df06d5 kern: KSupervisorPageTable now checks wxn instead of setting it 2023-10-12 09:22:24 -07:00
Michael Scire
41eea11a19 kern: KPageTable::Initialize no longer takes unused process id 2023-10-12 09:22:24 -07:00
Michael Scire
8d84b5776f kern: add speculation barriers after eret 2023-10-12 09:22:22 -07:00
Michael Scire
03d0fd0f62 kern: refactor init (kill identity map, merge cpu on logic) 2023-02-23 09:00:31 -07:00
Michael Scire
0db64c5e6f kern: use variable-count parameter arrays for DebugEvents 2023-02-23 09:00:31 -07:00
Michael Scire
8afa5a9057 kern: update for new ChangePermissions page table operation 2023-02-23 09:00:30 -07:00
Michael Scire
a761a80252 kern: optimize userspace access asm to use cheaper instruction in io memory loops 2023-02-23 09:00:27 -07:00
Michael Scire
326f737349 kern: use different psr masks for 64 and 32-bit El0 threads 2023-02-23 09:00:27 -07:00
Michael Scire
f81abe0625 kern: increase stack parameter size by 0x10 2023-02-23 09:00:27 -07:00
Michael Scire
a3cbed96d0 kern: update for new exception flag semantics 2022-10-12 09:15:51 -07:00
Michael Scire
e4825cc879 kern: Implement new PageTable operations/PhysicalMemory reference semantics 2022-10-12 09:15:49 -07:00
Michael Scire
8ca94db643 kern: implement K(Secure)SystemResource 2022-10-12 09:15:48 -07:00
Michael Scire
8022175f5f kern: implement revised IPI/SGI semantics 2022-03-23 09:16:07 -07:00
Michael Scire
d066ac3d69 kern: update for new hw maintenance semantics 2022-03-23 09:16:06 -07:00
Michael Scire
f38d589516 kern: implement new thread context/fpu semantics 2022-03-23 09:16:06 -07:00
merry
a2e891d5e8 KThreadContext: Use El0PsrMask constant in GetUserContext 2022-03-23 09:15:46 -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
9436b9a555 ams: deduplicate static initialization logic 2022-01-19 16:28:54 -08:00
Michael Scire
2409222dd0 kern: be a little more consistent about pragma GCC location 2021-11-30 16:34:45 -08: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
e5756ca0b0 kern: fix 32-bit light ipc svc handler asm
Nintendo used to do what we were doing because the function wasn't directly in the handler table,
but we've always been directly in the handler table, so we were trashing the last four arguments to light ipc
when called from aarch32. Nothing uses this, but needed to be fixed.
2021-10-29 17:47:13 -07:00
Michael Scire
cb7f4e7757 kern: optimize and bring into line with N our pstate.i management 2021-10-27 22:57:18 -07:00
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