Michael Scire
b3c1e7be61
kern: exception flags are now atomic.
...
This is a really weird one, because they didn't actually update the
code which updates these flags in asm, these still use ldrb/orr/strb.
But every access to these via c++ is now an atomic ldxrb/stxrb loop.
Maybe they just forgot to update the asm?
2025-11-15 12:57:43 -07:00
Michael Scire
d999a84810
kern: pass u32 directly to CopyMemoryToUserSize32Bit
2025-11-15 12:57:42 -07:00
Michael Scire
06ea58c7fa
ams: mark ams::Result [[nodiscard]] (partially complete).
...
NOTE: This work is not yet fully complete; kernel is done, but
it was taking an exceedingly long time to get through libstratosphere.
Thus, I've temporarily added -Wno-error=unused-result for libstratosphere/stratosphere.
All warnings should be fixed to do the same thing Nintendo does as relevant, but this
is taking a phenomenally long time and is not actually the most important work to do,
so it can be put off for some time to prioritize other tasks for 21.0.0 support.
2025-11-15 12:57:42 -07:00
Michael Scire
b7b86affa9
kern: Nintendo now also devirtualizes KAutoObject::DynamicCast
2025-11-15 12:57:41 -07:00
Michael Scire
0f72b2ceba
kern: move spendsgir static assert
2025-05-28 19:34:03 -07:00
Michael Scire
8c3d2bdbba
kern: save/restore spendsgir in KInterruptController::Save/RestoreCoreLocal
2025-05-28 19:34:02 -07:00
Michael Scire
e5ebbd0cd1
kern: use callback to note pte updates in KPageTableImpl
2025-05-09 12:10:07 -07:00
Michael Scire
7f3ccf945a
kern: refactor FindFreeArea region search logic per 20.0.0 changes
2025-05-09 12:10:07 -07:00
Michael Scire
5aa54772e6
kern: support null resource limit in KSecureSystemResource
2025-05-09 12:10:06 -07:00
Michael Scire
fa7577c87b
kern: update UserspaceAccess functions for 20.0.0 changes
2025-05-09 12:10:05 -07:00
Michael Scire
73dd0b5019
kern: update KAddressSpaceInfo to reflect 20.0.0 changes
2025-05-09 12:10:04 -07:00
Michael Scire
16fb7ca067
kern: invert meaning of KTargetSystem/KSystemControl bools
2025-05-09 12:10:04 -07:00
Michael Scire
715eff2102
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-05-09 12:10:01 -07:00
Michael Scire
18473ebbe9
kern: Perform page table validity pass during KPageTableImpl::InitializeForKernel
2024-10-15 21:51:46 -07:00
Michael Scire
4f9b30bd86
kern: fix more page table refactor bugs
2024-10-15 21:51:45 -07:00
Michael Scire
1466c59252
kern: update KPageTable::Map for new refactor
2024-10-15 21:51:44 -07:00
Michael Scire
235cff531b
kern: update ChangePermissions to use new iteration logic
2024-10-15 21:51:44 -07:00
Michael Scire
eaef8d20a1
kern: use new merge pages api
2024-10-15 21:51:43 -07:00
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