Commit Graph

189 Commits

Author SHA1 Message Date
Michael Scire
b579a6d75e svc/kern/dd: remove MapDeviceAddressSpace() 2021-09-19 10:35:39 -07:00
Michael Scire
3e328eae72 kern: update Initialize0 for new arguments/randomization semantics 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
Michael Scire
2913096bc4 kern: kill the interrupt task manager thread 2021-09-19 10:35:36 -07:00
Michael Scire
94fa7524ff kern: KAutoObject doesn't need (virtual) destructor 2021-09-19 10:35:35 -07:00
Michael Scire
e9a80d95e7 kern: optimize hw-single-step management 2021-09-19 10:35:29 -07:00
Michael Scire
33d58424c7 kern: add hardware single step extension 2021-09-19 10:35:28 -07:00
Michael Scire
525254b32b kern: update initial cache management to match latest kernel 2021-08-20 13:33:58 -07:00
Michael Scire
5785447252 kern: ensure InitArguments do not cross page boundaries 2021-07-06 07:28:29 -07:00
Michael Scire
53693dfb17 kern: add names/links to kern_assembly_offsets.h 2021-04-29 03:04:52 -07:00
Michael Scire
e238fa426d kern: mostly kill magic numbers in assembly, fix SVCs >= 0x80 2021-04-29 03:04:51 -07:00
Michael Scire
e9d44eb71a kern: fuck the KPolice^H^H^H^H^H^HPageGroups 2021-04-11 03:59:20 -07:00
Michael Scire
43900d4765 kern: track mapped ipc server memory in page table 2021-04-11 03:59:12 -07:00
Michael Scire
8df6062a1d kern: add KPageTableBase::Read/WriteDebugIoMemory 2021-04-11 03:59:12 -07:00
Michael Scire
e2f21cbd84 kern: swap tpidr_el1/cntv_cval_el0 as scratch vs exception stack 2021-04-11 03:59:11 -07:00
Michael Scire
be127dfc4b kern: update KInterruptEvent to store core id 2021-04-11 03:59:09 -07:00
Michael Scire
d44aa9cb5d kern: update KInitialPageTable/KInitialPageAllocator 2021-04-11 03:59:08 -07:00
Michael Scire
af72072313 kern: bump svc limit to 192 from 128 2021-04-11 03:59:07 -07:00
Michael Scire
d247e742b8 kern: remove target-firmware logic for kernel loader 2020-12-29 13:07:57 -08:00
Michael Scire
4ddacf3384 kern: refactor to use m_ for member variables 2020-12-19 10:21:52 -08:00
Michael Scire
84ca5c4aab kern: fix LegacyNFiq interrupt ID 2020-12-19 10:21:50 -08:00
Michael Scire
eb621c6aae kern: implement memory debug 2020-12-11 03:49:02 -08:00
Michael Scire
7519d17941 kern: add kernel object debug 2020-12-11 03:49:01 -08:00
Michael Scire
9784530bcf kern: implement thread call stack debug 2020-12-11 03:49:00 -08:00
Michael Scire
9d51004a9b kern: fix bugs caused by UB + transition to -Os 2020-12-02 06:53:19 -08:00
Michael Scire
a15f3ba468 kern: update Initialize0 to account for new ordering 2020-12-02 06:53:17 -08:00
Michael Scire
0c73792282 kern: Kill KCoreLocalRegion 2020-12-02 06:53:12 -08:00
Michael Scire
43a0706e96 kern: remove more of clc 2020-12-02 06:53:12 -08:00
Michael Scire
f36d24e1ed kern: update KHardwareTimer, move out of KCoreLocalRegion 2020-12-02 06:53:11 -08:00
Michael Scire
8ec3f47a80 kern: use single interrupt manager object 2020-12-02 06:53:11 -08:00
Michael Scire
f8999a2318 kern: remove KPageTableBase::MakeAndOpenContiguousPageGroup 2020-12-02 06:53:10 -08:00
Michael Scire
397d317a6c kern: implement DisableDeviceAddressSpaceMerge 2020-12-02 06:53:10 -08:00
Michael Scire
f152b16639 kern: update KMemoryBlockManagerUpdateAllocator api 2020-12-02 06:53:09 -08:00
Michael Scire
5f885a3b22 kern: implement new software-reserved page table bits 2020-12-02 06:53:08 -08:00
Michael Scire
394112f9ac kern: update KPageTableBase for new disable-merge attrs 2020-12-02 06:53:08 -08:00
Michael Scire
00a43ac776 kern: revamp KMemoryRegionType to better encode derivation hierarchies 2020-09-07 10:51:49 -07:00
Michael Scire
ec6535bd4b kern: fix warn-errors 2020-09-07 10:51:47 -07:00
Michael Scire
5bc3307ffa kern: improve resource region size definitions/calculations 2020-09-07 10:51:45 -07:00
Michael Scire
78161021f4 kern: use common GIC implementation for arm/arm64 2020-09-07 10:51:41 -07:00
Michael Scire
888f5cdd20 kern: fix multicore instruction cache invalidation 2020-09-07 10:51:40 -07:00
Michael Scire
227b9603cd kern: SvcReturnFromException 2020-08-01 15:31:46 -07:00
Michael Scire
f80eb2c26f kern SvcGetDebugThreadContext, SvcSetDebugThreadContext 2020-08-01 15:31:45 -07:00
Michael Scire
bb044b1934 kern: clean up majority of TODOs 2020-08-01 15:31:44 -07:00
Michael Scire
c7f108082b kern: resolve MESOSPHERE_UNIMPLEMENTEDs other than UserException 2020-08-01 15:31:44 -07:00
Michael Scire
3d5f2b7258 kern: Add real SvcBreak implementation 2020-08-01 15:31:43 -07:00
Michael Scire
179427687b kern: SvcSetHardwareBreakPoint 2020-08-01 15:31:43 -07:00
Michael Scire
a5d7e8328b kern: SvcQueryPhysicalAddress 2020-08-01 15:31:42 -07:00
Michael Scire
a0de667005 kern: SvcGetLastThreadInfo, SvcGetDebugFutureThreadInfo 2020-08-01 15:31:41 -07:00
Michael Scire
641e92e6a0 kern: SvcFlushDataCache, SvcFlushEntireDataCache 2020-08-01 15:31:41 -07:00
Michael Scire
ef6ede3aeb kern: SvcReadDebugProcessMemory, SvcWriteDebugProcessMemory 2020-08-01 15:31:40 -07:00
Michael Scire
911a81430a kern: switch memset to optimized impl 2020-08-01 15:31:39 -07:00
Michael Scire
85932bb91e kern: fix ARM vs THUMB mode selection on 32-bit entry 2020-08-01 15:31:38 -07:00
Michael Scire
a7cc9dd743 kern: fix slab heap atomics 2020-08-01 15:31:37 -07:00
Michael Scire
a7de710f09 kern: implement KCodeMemory (and SVCs) 2020-08-01 15:31:36 -07:00
Michael Scire
c64e490663 kern: implement SvcGetThreadContext3 2020-08-01 15:31:35 -07:00
Michael Scire
b98450c9cf kern: Map L1/L2 blocks when possible 2020-08-01 15:31:34 -07:00
Michael Scire
6935929c33 kern: SvcMapPhysicalMemoryUnsafe, SvcUnmapPhysicalMemoryUnsafe 2020-08-01 15:31:33 -07:00
Michael Scire
dc8fccd168 kern: implement SvcMapPhysicalMemory 2020-08-01 15:31:31 -07:00
Michael Scire
a22d1d04f2 kern: implement SvcSleepSystem 2020-08-01 15:31:30 -07:00
Michael Scire
16ce69e333 kern: SvcInvalidateProcessDataCache 2020-08-01 15:31:30 -07:00
Michael Scire
c0c9fe5fd3 kern: SvcMapProcessCodeMemory, SvcUnmapProcessCodeMemory 2020-08-01 15:31:29 -07:00
Michael Scire
0cfdef738d kern: implement transfer memory (and SVCs) 2020-08-01 15:31:28 -07:00
Michael Scire
417ed5f01c kern: implement SvcSetMemoryAttribute 2020-08-01 15:31:27 -07:00
Michael Scire
0013041509 kern: KConditionVariable::SignalImpl 2020-08-01 15:31:26 -07:00
Michael Scire
fe48b9163d kern: fully implement KSharedMemory (and Svcs) 2020-08-01 15:31:25 -07:00
Michael Scire
8cad49ee02 kern: add KProcess::Initialize (for non-kip processes) 2020-08-01 15:31:25 -07:00
Michael Scire
e760bd7038 kern: implement SvcMapProcessMemory, SvcUnmapProcessMemory 2020-08-01 15:31:24 -07:00
Michael Scire
70385eeec9 kern: fix asid tlb invalidation 2020-08-01 15:31:23 -07:00
Michael Scire
69274df795 kern: dump page table on user exception 2020-08-01 15:31:23 -07:00
Michael Scire
eeb12eb4a2 kern: implement SvcDebugActiveProcess, svcGetDebugEvent, SvcWaitProcessWideKeyAtomic 2020-08-01 15:31:21 -07:00
Michael Scire
ba1d964100 kern: fix bug in KPageTableBase::SetupForIpcServer 2020-08-01 15:31:20 -07:00
Michael Scire
a22c0a84dd kern: implement SvcSignalToAddress, SvcWaitForAddress 2020-08-01 15:31:19 -07:00
Michael Scire
d501c3832a kern: add infra (but not impl) for all DeviceAddressSpace svcs 2020-08-01 15:31:17 -07:00
Michael Scire
df104ecc34 kern: implement SvcCreateInterruptEvent 2020-08-01 15:31:16 -07:00
Michael Scire
1a8393e8b2 kern: add SvcQueryIoMapping (NOTE: pre-10.x, ABI needs update) 2020-08-01 15:31:11 -07:00
Michael Scire
2a8979b6a1 kern: implement KPageTableBase::CopyHeapToHeap(WithoutCheckDestination) 2020-08-01 15:31:08 -07:00
Michael Scire
67c18a0008 ipc: add MapAlias processing logic for Receive 2020-08-01 15:31:04 -07:00
Michael Scire
f7b9ea9ff5 ipc::Reply -> add raw data copy logic 2020-08-01 15:31:04 -07:00
Michael Scire
d986b698d4 kern: implement SvcSendSyncRequest(WithUserBuffer) 2020-08-01 15:31:03 -07:00
Michael Scire
f752db8379 kern: implement SvcCreateThread, SvcStartThread 2020-08-01 15:31:02 -07:00
Michael Scire
3c386e8ab3 kern: implement SvcMapMemory 2020-08-01 15:31:02 -07:00
Michael Scire
98ac3c7efc kern: implement KEvent, KWritableEvent, KServerSession::OnClientClosed 2020-08-01 15:31:01 -07:00
Michael Scire
191e233745 kern: implement SvcUnmapMemory, more of SvcGetInfo 2020-08-01 15:31:00 -07:00
SciresM
7d041e853d Switch atmosphere's build target to C++20. (#952)
* ams: update to build with gcc10/c++20

* remove mno-outline-atomics

* ams: take care of most TODO C++20s

* fusee/sept: update for gcc10

* whoosh, your code now uses pre-compiled headers

* make: dependency fixes
2020-05-12 15:44:19 -07:00
Michael Scire
1f35c699a7 ams: revamp target firmware 2020-05-12 15:44:18 -07:00
Michael Scire
4496c6aa23 kern/kldr: fix bugs in physical randomization 2020-04-24 17:29:11 -07:00
Michael Scire
71027e463a kern: implement 10.x perm change, fix many page table bugs 2020-04-24 17:29:10 -07:00
Michael Scire
432e2aa60d kern: fix suboptimal mapping choices by kernel/kernelldr 2020-04-24 17:29:09 -07:00
Michael Scire
08b4ed8daf kern: Update init to reflect 10.0.0 changes 2020-04-24 17:29:09 -07:00
Michael Scire
4c1dc00766 kern: Update page bitmaps/alloc to reflect 10.0.0 changes 2020-04-24 17:29:09 -07:00
Michael Scire
a253850abc ams: fix boot sysmodule/kernel for 10.0.0 2020-04-15 11:55:06 -07:00
Michael Scire
b4f1833c50 kernel_ldr: update to support 10.0.0 2020-04-15 11:55:05 -07:00
Michael Scire
b5f8d04924 kern: implement CallSecureMonitor, some of GetInfo/GetSystemInfo 2020-03-18 00:15:02 -07:00
Michael Scire
3c8d569f0a kern: mem access prep for svc streams, TODO_IMPLEMENT -> UNIMPLEMENTED 2020-03-02 19:51:02 -08:00
Michael Scire
feae39aa2e kern: implement KUserPointer (and test with QueryMemory) in advance of svc dev 2020-03-02 19:51:01 -08:00
Michael Scire
2e23abe83d kern: implement user thread start, el0 code now runs 2020-03-02 19:51:01 -08:00
Michael Scire
fb23bfc77f kern: implement unsuspension of init threads 2020-03-02 19:51:00 -08:00
Michael Scire
cba973f859 kern: implement KProcess::Run 2020-03-02 19:51:00 -08:00
Michael Scire
67c77d92f7 kern: implement SetProcessMemoryPermission 2020-03-02 19:51:00 -08:00
Michael Scire
46258eaf63 kern: finish KProcess::Initialize() for KIPs 2020-03-02 19:51:00 -08:00