Michael Scire
952188fc73
kern: implement new attr tracking for memory range/traversal context
2024-03-29 02:41:14 -07:00
Michael Scire
c0a4fc30a8
kern: simplify size calculations in KPageTableBase::Read/WriteDebugIoMemory
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
cf5895e04f
kern: use userspace access instructions to read from tlr
2024-03-29 02:41:14 -07:00
Michael Scire
e09ba765a1
kern: fix various comment/style hygiene issues (thanks @liamwhite)
2023-12-27 23:24:35 -07:00
Michael Scire
3217df147e
kern: allow ktrace map capability when ktrace is disabled
2023-12-27 23:17:52 -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
693fb423cb
kern: fix minor sin
2023-10-12 14:25:17 -07:00
Michael Scire
6d0bf70783
kern: fix assert usage in process load
2023-10-12 08:55:58 -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
4ddfb6183c
kern: split out GetInstructionDataUserMode in exception handler
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
7b523cfc8d
kern: note OnFinalize calls in KPageTable::Finalize
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
Michael Scire
ed9e60acb9
kern: track heap in KPageTableBase::MemoryRange
2023-04-30 16:50:53 -07:00
Michael Scire
e9b28ab4b1
kern: adjust wording to be more technically correct
2023-03-27 10:54:58 -07:00
Michael Scire
a8df400825
kern: fix stray addressof operator
2023-03-08 09:46:38 -07:00
Michael Scire
8da4d14e15
kern: minor cleanup (thanks @liamwhite)
2023-03-06 21:18:00 -07:00
Michael Scire
3292ea5970
kern: fix stray comment copy/paste error
2023-02-23 22:00:00 -07:00
Michael Scire
d64ab354ad
kern: 16.x web applet crashes on exit with 48 MB stolen (rip)
2023-02-22 17:19:51 -08:00
Michael Scire
406320f6ec
kern: better divide non-secure size, don't waste fatal memory unless necessary
2023-02-22 17:19:51 -08:00
Michael Scire
aad2be0a01
kern: delete creation time field from KProcess
2023-02-22 17:19:51 -08:00
Michael Scire
25383db524
kern: add InfoType_IoRegionHint
2023-02-22 17:19:51 -08:00
Michael Scire
48f4c526f3
kern: refactor priority inheritance to represent locks as C++ objects
2023-02-22 17:19:51 -08:00
Michael Scire
1279d236f3
kern: remove unnecessary interrupt disables from arbiter/condvar
2023-02-22 17:19:51 -08:00
Michael Scire
008eb974d4
kern: KConditionVariable::SignalToAddress now emits dmb before userspace write
2023-02-22 17:19:51 -08:00
Michael Scire
035cebef9d
kern: refactor init (kill identity map, merge cpu on logic)
2023-02-22 17:19:51 -08:00
Michael Scire
8db22967bf
kern: use variable-count parameter arrays for DebugEvents
2023-02-22 17:19:51 -08:00
Michael Scire
db510f96c3
kern: update KSystemControl::InitializePhase1, dynamically scale 39-bit address space regions
2023-02-22 17:19:51 -08:00
Michael Scire
6e2dd791b2
kern: update for new ChangePermissions page table operation
2023-02-22 17:19:51 -08:00
Michael Scire
bff61c68ab
kern: adjust pool allocations
2023-02-22 17:19:51 -08:00
Michael Scire
ca7734ffaf
kern: simplify KSchedulerLock::Lock
2023-02-22 17:19:51 -08:00
Michael Scire
ed22f802ee
kern: allow QueryIoMapping to find Static mappings
2023-02-22 17:19:51 -08:00
Michael Scire
8ffc177b44
kern: update UnmapIoRegion for new Mapping_Memory handling
2023-02-22 17:19:51 -08:00
Michael Scire
c058376b3b
kern: use tree for IoPool regions instead of list
2023-02-22 17:19:51 -08:00
Michael Scire
d5ebf13094
kern: optimize userspace access asm to use cheaper instruction in io memory loops
2023-02-22 17:19:51 -08:00
Michael Scire
695c125721
kern: use different psr masks for 64 and 32-bit El0 threads
2023-02-22 17:19:51 -08:00
Michael Scire
e7e3e7b374
kern: increase stack parameter size by 0x10
2023-02-22 17:19:51 -08:00
Michael Scire
3a5f406c5f
kern: update scheduler for new switch count tracking logic
2023-02-21 03:12:17 -07:00
Michael Scire
7a69f2f062
kern/pm: only steal 8 MB from applet.
...
WebApplet crashes on exit with 16 more MB stolen, apparently.
2023-01-24 19:54:28 -07:00
Michael Scire
0dd071b279
romfs: thank you fire emblem, very cool ( closes #2021 )
2023-01-24 14:07:50 -07:00
Michael Scire
e4b9930bf3
kern: fix unnecessarily strong load in aligned spinlock
...
Copy-paste error I didn't notice for two years, whoops
2022-12-25 01:56:31 -07:00
Michael Scire
1f8798ace7
kern: fix GetProcessId wrong result on invalid parameter
2022-12-04 13:40:44 -07:00
Michael Scire
bf4fdf6188
kern: update for new exception flag semantics
2022-10-12 09:15:16 -07:00
Michael Scire
13238fc4fd
kern: use slab allocated KSessionRequest dynamic mappings
2022-10-12 09:15:16 -07:00
Michael Scire
e7a1e0fee2
kern: implement Svc(Un)MapInsecureMemory
2022-10-12 09:15:16 -07:00
Michael Scire
5a918f3bc9
kern: move SecureAppletMemory/KPageBuffer heap into the ResourceRegion
2022-10-12 09:15:16 -07:00
Michael Scire
ea82889e6c
kern: increase stack region size when thread resource limit is increased
2022-10-12 09:15:16 -07:00
Michael Scire
7f2cbba543
kern: Implement new PageTable operations/PhysicalMemory reference semantics
2022-10-12 09:15:16 -07:00
Michael Scire
5ee7d8a5ed
kern: update for new device map semantics
2022-10-12 09:15:16 -07:00
Michael Scire
947fdcf6f6
kern: merge/simplify KInterruptEventTask into KInterruptEvent
2022-10-12 09:15:16 -07:00
Michael Scire
2e73f33eb0
kern: implement K(Secure)SystemResource
2022-10-12 09:15:16 -07:00
Michael Scire
752704a798
kern: update handle table init
2022-10-12 09:15:16 -07:00
Liam
e702eab21c
KScheduler: fix documentation mistakes
2022-06-29 17:28:26 -07:00
Michael Scire
20d200471d
kern: optimize postfix-compare to prefix-compare, result logic is identical but breaks earlier in some paths
2022-06-07 23:49:31 -07:00
Michael Scire
5f2d713fe4
kern: mea culpa (some time since 7.x)
2022-06-07 23:40:32 -07:00
Michael Scire
383fc2cc99
kern: codegen tweaks, now that we're no longer -Os
2022-03-23 09:10:50 -07:00
Michael Scire
1ca2f61527
kern: good night sweet prince
2022-03-23 09:10:50 -07:00
Michael Scire
cdc619a8a6
kern: on second thought, gcc built ins are for chumps
2022-03-23 09:10:50 -07:00
Michael Scire
ff07ba4201
kern: implement revised IPI/SGI semantics
2022-03-23 09:10:50 -07:00
Michael Scire
9d89835ff8
kern: update for new hw maintenance semantics
2022-03-23 09:10:50 -07:00
Michael Scire
6e17317d5d
kern: implement new thread context/fpu semantics
2022-03-23 09:10:50 -07:00
Michael Scire
401047f603
kern: implement additional randomness in KPageHeap allocations
2022-03-23 09:10:50 -07:00
Michael Scire
24739f245e
kern: enforce end of dram == end of partitions (move our probably outdated KTraceBuffer to new location)
2022-03-23 09:10:50 -07:00
Michael Scire
8cb3cfd835
kern: add new KCapability checks before creating process
2022-03-23 09:10:50 -07:00
Michael Scire
14e768cd10
kern: add InfoType_IsSvcPermitted
2022-03-23 09:10:50 -07:00
Michael Scire
ef1b67b87b
kern: enforce maximum secure region size
2022-03-23 09:10:50 -07:00
Michael Scire
8ef6c49d30
kern: print kernel backtrace on panic
2022-03-23 09:10:50 -07:00
Michael Scire
e05df99342
pm/kern: update for 14.0.0
2022-03-23 09:10:50 -07:00
Michael Scire
646f84bad1
abort/error: print backtrace, abuse templates, overhaul result/diag (macos not done yet)
2022-03-21 17:21:44 -07:00
Michael Scire
64a97576d0
ams: support building unit test programs on windows/linux/macos
2022-03-21 17:21:44 -07:00
merry
9545cbb4cb
KThreadContext: Use El0PsrMask constant in GetUserContext
2022-03-06 11:22:28 -08:00
Michael Scire
4c7fd70c10
kern: fix syntax in audit statement
2022-02-19 13:26:08 -08:00
SciresM
96f95b9f95
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-02-14 14:45:32 -08:00
Michael Scire
275da52305
kern: add missing debug mode check to WriteDebugProcessMemory
2022-01-03 08:59:27 -08:00
Michael Scire
30fac905af
ams: deduplicate static initialization logic
2021-12-13 13:07:03 -08:00
Michael Scire
78f7218c4f
kern: fix vi devicename missing in HsSupported device list
2021-12-10 18:58:18 -08:00
Michael Scire
767e702a70
kern: correct TotalUserPhysicalMemorySize ( closes #1710 )
2021-11-16 23:18:47 -08:00