Michael Scire
85fd13f724
kern: update KernelLdr for 19.0.0 (new checks, dummy function call).
...
Also, fix a few very embarassing mistakes in kernel ldr:
* We have been mapping the page table region RWX for a few years now, accidentally.
* My attempt at making initial page tables not use bit 58 was broken in multiple ways.
2025-04-07 16:49:10 -07:00
Michael Scire
e63cae5c77
kern: Perform page table validity pass during KPageTableImpl::InitializeForKernel
2024-10-15 21:48:59 -07:00
Michael Scire
c911420d6a
kern: fix more page table refactor bugs
2024-10-15 21:48:59 -07:00
Michael Scire
4c81432e94
kern: update KPageTable::Map for new refactor
2024-10-15 21:48:59 -07:00
Michael Scire
e1e84d4450
kern: update ChangePermissions to use new iteration logic
2024-10-15 21:48:59 -07:00
Michael Scire
62abb31122
kern: use new merge pages api
2024-10-15 21:48:59 -07:00
Michael Scire
cb970049db
kern: implement KPageTableImpl merge
2024-10-15 21:48:59 -07:00
Michael Scire
9610f42dc0
kern: continue page table refactor, implement separate/unmap
2024-10-15 21:48:59 -07:00
Michael Scire
02e837d82e
kern: start KPageTable(Impl) refactor, use array-with-levels for KPageTableImpl
2024-10-15 21:48:59 -07:00
Michael Scire
912b84c4e3
kern: add minimum alignment support to KMemoryManager
2024-10-15 21:48:59 -07:00
Michael Scire
ff38a32a9b
kern/ldr: add support for --x executables
2024-10-15 21:48:59 -07:00
Michael Scire
2855b8ee35
kern/strat: update for new DebugFlags capability semantics
2024-10-15 21:48:59 -07:00
Michael Scire
743634c3fd
kern: move KTargetSystem into .rodata, split init/verify
2024-10-15 21:48:59 -07:00
Michael Scire
a72e39d657
kern: allocate all TTBR0 pages during init, use procidx as asid
2024-10-15 21:48:59 -07:00
Michael Scire
126cb8bbdf
kern: fix KMemoryBlock ctor reorder warn
2024-10-15 21:48:59 -07:00
Michael Scire
753cf74bf2
kern: eliminate use of KMemoryInfo, shuffle KMemoryBlock fields
2024-10-15 21:48:59 -07:00
Michael Scire
70bf833070
kern: KAddressSpaceInfo now takes CreateProcessFlags in getters
2024-10-15 21:48:59 -07:00
Michael Scire
a0ad3ef949
kern/svc: update WaitForAddress to support 64-bit WaitIfEqual
2024-10-15 21:48:59 -07:00
Michael Scire
5de551db29
kern: add InfoType_TransferMemoryHint
2024-10-15 21:48:59 -07:00
Michael Scire
423a05a1e9
meso: fix sign-comparison warn on svc/interrupt flag compare
2024-09-01 16:27:01 -07:00
Michael Scire
ecbe5cd406
kern: refactor smc helpers to share more common logic
2024-03-29 02:41:14 -07:00
Michael Scire
6922eae3e7
kern: add KPageGroup::CopyRangeTo
2024-03-29 02:41:14 -07:00
Michael Scire
952188fc73
kern: implement new attr tracking for memory range/traversal context
2024-03-29 02:41:14 -07:00
Michael Scire
0b04c89a84
kern: pass properties directly to KPageTableBase::AllocateAndMapPagesImpl
2024-03-29 02:41:14 -07:00
Michael Scire
217dd1260a
kern: take alignment argument in KMemoryManager::AllocateAndOpen
2024-03-29 02:41:14 -07:00
Michael Scire
8aa62a54d8
kern/os: support CreateProcessFlag_EnableAliasRegionExtraSize
2024-03-29 02:41:14 -07:00
Michael Scire
25bae14064
kern: revise KPageTableBase region layout logic to match 18.0.0 changes
2024-03-29 02:41:14 -07:00
Michael Scire
900913fe3b
kern: fix longstanding bug in ConvertToKMemoryPermission
2024-03-29 02:41:14 -07:00
Michael Scire
7562f807fd
kern: pass kernel base from KernelLdr to Kernel
2024-03-29 02:41:14 -07:00
Michael Scire
872c18c501
kern: fix some comment typos
2023-11-01 10:25:31 -07:00
Michael Scire
afc0e14556
kern/svc: fix query/insecure names
2023-11-01 10:24:13 -07:00
Michael Scire
06a840e550
kern: fix operation type enum-value whoops
2023-10-12 08:55:58 -07:00
Michael Scire
11c02e22e0
kern: implement support for applying relr relocations
2023-10-12 08:55:58 -07:00
Michael Scire
f93aea4c06
kern: split Process/Thread exit to separate WorkerTaskManagers
2023-10-12 08:55:58 -07:00
Michael Scire
3737151a2f
kern: Add special-case for InvalidateProcessDataCache on current process
2023-10-12 08:55:58 -07:00
Michael Scire
2a4d68f916
kern: KPageTable: remove MapFirst operation, replace with MapFirstGroup
2023-10-12 08:55:58 -07:00
Michael Scire
39a95d4023
kern: implement new default application system resource field in KProcess
2023-10-12 08:55:58 -07:00
Michael Scire
2c5002ce50
kern: update KMemoryRegionType values for new ids + SecureUnknown region
2023-10-12 08:55:58 -07:00
Michael Scire
b7384a8667
kern: KSupervisorPageTable now checks wxn instead of setting it
2023-10-12 08:55:58 -07:00
Michael Scire
85b5f20395
kern: KPageTable::Initialize no longer takes unused process id
2023-10-12 08:55:58 -07:00
Michael Scire
ad5bd81d3f
kern: implement PermissionLock, update KPageTableBase attribute/alignment checks
2023-10-12 08:55:58 -07:00
Michael Scire
777b6d285c
kern: KPageTableBase::CheckMemoryState now invokes a helper
2023-10-12 08:55:58 -07:00
Michael Scire
ae2c25e9c8
kern: update KMemoryState, remove bijection (separate IoRegister/IoMemory)
2023-10-12 08:55:58 -07:00
Michael Scire
3b8f65d502
kern: update initial process load logic to do per-segment mapping/decompression
2023-10-12 08:55:58 -07:00
Michael Scire
cfd2d5b012
kern: clear new pages in init page allocator, not init page table
2023-10-12 08:55:58 -07:00
Michael Scire
c72ba35684
kern: add speculation barriers after eret
2023-10-12 08:55:58 -07:00
Michael Scire
ec96203cb7
kern: remove unnecessary fields from InitArgs (0x80 -> 0x40)
2023-10-12 08:55:58 -07:00
Michael Scire
0daef4a6e8
kern/ldr: move crt0 into .rodata
2023-10-12 08:55:58 -07:00
Michael Scire
4ca3c44e5f
kern: pass ini1 size from loader to kernel, remove slab memset from init0
2023-10-12 08:55:58 -07:00
Michael Scire
1f5ec68a5c
ams: fix compilation with gcc 13
2023-05-07 03:36:46 -07:00