Commit Graph

470 Commits

Author SHA1 Message Date
Michael Scire
1d7ad43fdc kern: implement KPageTableImpl merge 2024-10-15 21:51:43 -07:00
Michael Scire
b40b203614 kern: continue page table refactor, implement separate/unmap 2024-10-15 21:51:43 -07:00
Michael Scire
fe06100001 kern: start KPageTable(Impl) refactor, use array-with-levels for KPageTableImpl 2024-10-15 21:51:42 -07:00
Michael Scire
adc3f5e155 kern: add minimum alignment support to KMemoryManager 2024-10-15 21:51:39 -07:00
Michael Scire
b70e367745 kern/ldr: add support for --x executables 2024-10-15 21:51:39 -07:00
Michael Scire
49f2449073 kern/strat: update for new DebugFlags capability semantics 2024-10-15 21:51:38 -07:00
Michael Scire
98d2aae984 kern: move KTargetSystem into .rodata, split init/verify 2024-10-15 21:51:38 -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
7e3638f261 kern: fix KMemoryBlock ctor reorder warn 2024-10-15 21:51:36 -07:00
Michael Scire
989b494a86 kern: eliminate use of KMemoryInfo, shuffle KMemoryBlock fields 2024-10-15 21:51:36 -07:00
Michael Scire
7be7c1ba7c kern: KAddressSpaceInfo now takes CreateProcessFlags in getters 2024-10-15 21:51:35 -07:00
Michael Scire
89bfecb6b6 kern/svc: update WaitForAddress to support 64-bit WaitIfEqual 2024-10-15 21:51:35 -07:00
Michael Scire
63d83fe69d kern: add InfoType_TransferMemoryHint 2024-10-15 21:51:34 -07:00
Michael Scire
8435f6c24e meso: fix sign-comparison warn on svc/interrupt flag compare 2024-10-15 21:51:32 -07:00
Michael Scire
e0998df82e kern: refactor smc helpers to share more common logic 2024-03-29 02:55:05 -07:00
Michael Scire
2af5fbb951 kern: add KPageGroup::CopyRangeTo 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
7ef8ee44f8 kern: pass properties directly to KPageTableBase::AllocateAndMapPagesImpl 2024-03-29 02:55:03 -07:00
Michael Scire
1e2dc76755 kern: take alignment argument in KMemoryManager::AllocateAndOpen 2024-03-29 02:55:03 -07:00
Michael Scire
60e3c8a4cc kern/os: support CreateProcessFlag_EnableAliasRegionExtraSize 2024-03-29 02:55:02 -07:00
Michael Scire
8af707b13f kern: revise KPageTableBase region layout logic to match 18.0.0 changes 2024-03-29 02:55:02 -07:00
Michael Scire
cafc0eae1b kern: fix longstanding bug in ConvertToKMemoryPermission 2024-03-29 02:55:01 -07:00
Michael Scire
44d728cc1c kern: pass kernel base from KernelLdr to Kernel 2024-03-29 02:55:01 -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
224be3e9f1 kern: fix operation type enum-value whoops 2023-10-12 09:22:27 -07:00
Michael Scire
d211eb4de7 kern: implement support for applying relr relocations 2023-10-12 09:22:27 -07:00
Michael Scire
a55dbf0819 kern: split Process/Thread exit to separate WorkerTaskManagers 2023-10-12 09:22:27 -07:00
Michael Scire
e07b0a924d kern: Add special-case for InvalidateProcessDataCache on current process 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
dfbd37e448 kern: implement new default application system resource field in KProcess 2023-10-12 09:22:25 -07:00
Michael Scire
9d485e7df9 kern: update KMemoryRegionType values for new ids + SecureUnknown region 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
15ca0c1b10 kern: implement PermissionLock, update KPageTableBase attribute/alignment checks 2023-10-12 09:22:24 -07:00
Michael Scire
d4319842a9 kern: KPageTableBase::CheckMemoryState now invokes a helper 2023-10-12 09:22:23 -07:00
Michael Scire
c8f04e21e5 kern: update KMemoryState, remove bijection (separate IoRegister/IoMemory) 2023-10-12 09:22:23 -07:00
Michael Scire
2c2aa8b57c kern: update initial process load logic to do per-segment mapping/decompression 2023-10-12 09:22:23 -07:00
Michael Scire
a6e34647de kern: clear new pages in init page allocator, not init page table 2023-10-12 09:22:22 -07:00
Michael Scire
8d84b5776f kern: add speculation barriers after eret 2023-10-12 09:22:22 -07:00
Michael Scire
d21f281094 kern: remove unnecessary fields from InitArgs (0x80 -> 0x40) 2023-10-12 09:22:22 -07:00
Michael Scire
3abc567a73 kern/ldr: move crt0 into .rodata 2023-10-12 09:22:21 -07:00
Michael Scire
ba1a07db68 kern: pass ini1 size from loader to kernel, remove slab memset from init0 2023-10-12 09:22:21 -07:00
Michael Scire
5d883f22c8 ams: fix compilation with gcc 13 2023-05-08 18:06:07 -07:00
Michael Scire
2db2e41398 kern: track heap in KPageTableBase::MemoryRange 2023-05-08 18:06:06 -07:00
Michael Scire
c1e9ba08dc kern: adjust wording to be more technically correct 2023-04-17 14:19:31 -07:00
Michael Scire
1d3c3230fc kern: minor cleanup (thanks @liamwhite) 2023-03-13 17:17:06 -07:00
Michael Scire
a556909c10 kern: fix stray comment copy/paste error 2023-03-13 17:17:03 -07:00
Michael Scire
8ccd35988a kern: 16.x web applet crashes on exit with 48 MB stolen (rip) 2023-02-23 09:00:36 -07:00
Michael Scire
a47e5c387d kern: delete creation time field from KProcess 2023-02-23 09:00:33 -07:00