Michael Scire
|
4ae74b9b4e
|
kern: session mapping getters are on the hotpath
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
3c8e7de915
|
kern: fix bugs caused by UB + transition to -Os
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
3d4ab95ab2
|
kern: allow non-inline KSchedulerLock::Lock
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
152def19c0
|
kern: build as -Os instead of -O2
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
2b483866c7
|
kern: assume that uart has been setup by secmon
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
7e1da15f6e
|
kern: update Initialize0 to account for new ordering
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
0a1465f198
|
kern: add new overflow checks on KMemoryRegions
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
1ca64cf2a1
|
kern: improve KMemoryManager pool detection
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
aac8af8bf5
|
kern: update KMemoryRegion to store last address rather than size
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
5da6b60008
|
kern: add KAlpha/KBeta
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
56c6e4244a
|
kern: remove now unused SetupFor*Compare funcs
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
c8ebd7eea0
|
KConditionVariable/KAddressArbiter: no need for global compare thread
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
28f9b534b6
|
kern: implement 64-virtual-core interface
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
8b2ed36698
|
kern: cleanup KThread, optimize/normalize KThreadQueue/KWaitObject
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
1852fe8612
|
kern: improve KSynchronizationObject, kill KSynchronization
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
b60054dba1
|
kern: update for new interrupt event locking scheme
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
783f1077be
|
kern: KObjectContainer::Register -> void
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
b0debd72a7
|
kern: Kill KCoreLocalRegion
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
24d545701c
|
kern: remove more of clc
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
aae565629e
|
kern: move scheduler/interrupt task manager out of core local region
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
bee629b8ad
|
kern: update KHardwareTimer, move out of KCoreLocalRegion
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
5cb237d030
|
kern: use single interrupt manager object
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
08cfee54fa
|
kern: fix re-order/assert in KMemoryBlock
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
7b279ab863
|
kern: remove KPageTableBase::MakeAndOpenContiguousPageGroup
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
6a85f7225d
|
kern: implement DisableDeviceAddressSpaceMerge
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
f469dfbeb3
|
kern: SvcGetResourceLimitPeakValue
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
cc11d452e5
|
kern: KMemoryManager::Allocate -> AllocateAndOpen
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
3bce008170
|
kern: implement kmemoryblock/kmemoryinfo merge disable
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
3383509da6
|
kern: remove KMemoryAttribute_AnyLocked
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
281dcf232a
|
kern: update KMemoryBlockManagerUpdateAllocator api
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
71a2fe1bb6
|
kern: implement new software-reserved page table bits
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
4a216dc928
|
kern: update KPageTableBase for new disable-merge attrs
|
2020-12-02 06:43:37 -08:00 |
|
Michael Scire
|
2e7214b6fa
|
kern: perform rescheduling on dispatch re-enable (closes #1169)
|
2020-10-13 23:07:51 -07:00 |
|
Michael Scire
|
9b65daf439
|
kern: default to release config
|
2020-09-17 08:26:08 -07:00 |
|
Michael Scire
|
4acdc899f5
|
kern: generate fatal error on panic
|
2020-09-17 08:26:08 -07:00 |
|
Michael Scire
|
4dc728824f
|
kern: skeleton legacy lps driver
|
2020-09-07 10:43:35 -07:00 |
|
Michael Scire
|
49af4fae32
|
kern: begin 1.0.0 backwards compat changes (kips run, full boot fails)
|
2020-09-07 10:43:35 -07:00 |
|
Michael Scire
|
e8ffbe630f
|
kern: support 2-pool layout on 2.x-4.x instead of modern 4-pool layout
|
2020-09-07 10:43:35 -07:00 |
|
Michael Scire
|
ce95af89ef
|
kern: change terminology metadata -> management
|
2020-09-07 10:43:35 -07:00 |
|
Michael Scire
|
546e2de300
|
kern: pool management should be within carveout
|
2020-09-07 10:43:35 -07:00 |
|
Michael Scire
|
11b120b667
|
kern: fix phys/virt pool management mixup
|
2020-09-07 10:43:35 -07:00 |
|
Michael Scire
|
1983f86875
|
kern: revamp KMemoryRegionType to better encode derivation hierarchies
|
2020-09-07 10:43:35 -07:00 |
|
Michael Scire
|
d50c7c5c79
|
kern: PMC must be user-mappable for 1.0.0 compat
|
2020-09-07 10:43:35 -07:00 |
|
Michael Scire
|
bb11c57e7d
|
kern: fix warn-errors
|
2020-09-07 10:43:35 -07:00 |
|
Michael Scire
|
fac502aaa3
|
kern: fix KTypedAddress, strengthen assertions
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
47f2e93a42
|
kern: add version bounds checking
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
56ec55f3c4
|
kern: avoid hardcoding maximum board memory size
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
1a262c1063
|
kern: improve resource region size definitions/calculations
|
2020-08-18 15:17:40 -07:00 |
|
fincs
|
68e29b56b6
|
kern: add stubbed KDevicePageTable implementation for systems without iommu
|
2020-08-18 15:17:40 -07:00 |
|
fincs
|
b917ea283e
|
kern: make GetTargetFirmware a compile-time constant when not building for Switch
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
48e8562033
|
kern: use common GIC implementation for arm/arm64
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
f07bd0e337
|
kern: correct flushing of init arguments
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
b5f2698bf0
|
kern: fix multicore instruction cache invalidation
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
f058536b59
|
kern: add tracing for irq/scheduling
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
8e5c0a9663
|
kern: cleanup some KMemoryManager functions
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
1b63002f91
|
kern: refactor KMemoryLayout
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
cda15f08d8
|
kern: mark KThread/KProcess.GetId() final to save virtual calls
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
e1bd6fb874
|
kern: fix missing scheduler updates in KLightLock/Exception, fix RequestScheduleOnInterrupt
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
920b017677
|
kern: implement svc trace
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
f9d68db3f6
|
kern: SvcChangeKernelTraceState
|
2020-08-18 15:17:40 -07:00 |
|
Michael Scire
|
73798cb812
|
kern: build with -Wextra
|
2020-08-17 14:20:24 -07:00 |
|
Michael Scire
|
51b5c3d87d
|
ams: avoid UB infinite loops
|
2020-08-13 17:28:29 -07:00 |
|
Michael Scire
|
5d462c626c
|
kern: SvcReturnFromException
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
5c4fbf5c67
|
kern SvcGetDebugThreadContext, SvcSetDebugThreadContext
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
3afd723b92
|
kern: SvcGetDebugThreadParam
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
e1f3bb10a5
|
kern: clean up majority of TODOs
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
85f533e6c4
|
kern: SvcGetDebugEventInfo64From32
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
c9f8252577
|
kern: resolve MESOSPHERE_UNIMPLEMENTEDs other than UserException
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
325802e29d
|
kern: Add real SvcBreak implementation
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
4c3c910774
|
kern: SvcBreakDebugProcess, SvcTerminateDebugProcess
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
b88e09de5b
|
kern: SvcSetHardwareBreakPoint
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
b143f1e05f
|
kern: Svc(Legacy)ContinueDebugEvent
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
91fa0d651f
|
kern: SvcQueryPhysicalAddress
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
96c3dfee14
|
kern: SvcGetThreadList
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
51084c0837
|
kern: SvcGetLastThreadInfo, SvcGetDebugFutureThreadInfo
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
0993ae0685
|
kern: SvcFlushDataCache, SvcFlushEntireDataCache
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
f6f43300e0
|
kern: SvcReadDebugProcessMemory, SvcWriteDebugProcessMemory
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
f866f37cdc
|
kern: panic on failure-to-open auto object in debug config
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
7352d87b20
|
kern: switch memset to optimized impl
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
3f17a34b67
|
SvcQueryDebugProcessMemory
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
5de853b662
|
kern: fix ARM vs THUMB mode selection on 32-bit entry
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
8922bbd108
|
kern: SendSyncRequestLight, ReplyAndReceiveLight
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
b6cb561c47
|
kern: fix slab heap atomics
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
39b22cee8c
|
kern: implement KCodeMemory (and SVCs)
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
4bb9ef061a
|
kern: implement SvcGetThreadContext3
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
787964f7e7
|
kern: implement thread pinning/SvcSynchronizePreemptionState
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
9dc3e025fc
|
kern: Map L1/L2 blocks when possible
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
4ac94e9179
|
kern: improve KLightLock accuracy
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
1448068b69
|
kern: fix assertion in KThread::(Try)Suspend
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
a4d376cc0f
|
kern: fix hardware timer task corruption on core migration
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
840ab0785c
|
kern: SvcMapPhysicalMemoryUnsafe, SvcUnmapPhysicalMemoryUnsafe
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
583899ede3
|
kern: General system stability improvements to enhance the user's experience.
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
2ad9927a88
|
kern: Fix bug in thread core migration
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
1b9acc4a6a
|
kern: SvcUnmapPhysicalMemory, cleanup thread pinning
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
5ecc80a5f6
|
kern: implement SvcMapPhysicalMemory
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
695b82b945
|
kern: finish SvcGetInfo
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
fd9b986938
|
kern: Implement SecureMemory (system resource)
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
9231646f33
|
kern: implement SvcSleepSystem
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
418de7b0dc
|
kern: SvcInvalidateProcessDataCache
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
46935fea80
|
kern: fix resource leak bugs
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
11d5353827
|
kern: SvcMapProcessCodeMemory, SvcUnmapProcessCodeMemory
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
1d4d637818
|
kern SvcGetCurrentProcessorNumber, SvcSetProcessActivity, half of SvcSetThreadActivity
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
23eed522d3
|
kern: SvcGetThreadCoreMask, SvcSetThreadCoreMask
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
d87a9f011c
|
kern: implement transfer memory (and SVCs)
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
28aab09b5d
|
kern: implement process exit
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
ab96255a5d
|
kern: implement SvcSetMemoryAttribute
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
eecf59dd00
|
kern: fix bugs in interrupt permittance, DpcManager init
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
afe7e41de8
|
kern: SvcGetProcessInfo, SvcTerminateProcess
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
632a75eee7
|
kern: KConditionVariable::SignalImpl
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
7aa3120f60
|
kern: fully implement KSharedMemory (and Svcs)
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
51311a7332
|
kern: add KProcess::Initialize (for non-kip processes)
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
8759cb4da3
|
kern: implement first half of SvcCreateProcess
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
fb6e85b291
|
kern: implement SvcMapProcessMemory, SvcUnmapProcessMemory
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
3cf793f87e
|
kern: implement KThread::Finalize
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
3265927ed7
|
kern: KDevicePageTable::Finalize, InfoType_RandomEntropy
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
058f223b97
|
kern: finish SvcGetSystemInfo
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
43ad4eb794
|
kern: fix asid tlb invalidation
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
dea1235e12
|
kern: dump page table on user exception
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
26df56cd87
|
kern: implement SvcCancelSynchronization
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
5b8a20dbf7
|
kern: fix bug in SvcSetThreadPriority
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
94f9cc1626
|
kern: SvcCreateSession, KDebug finalization
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
36eb78a3ce
|
kern: implement SvcDebugActiveProcess, svcGetDebugEvent, SvcWaitProcessWideKeyAtomic
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
0bd14b7114
|
kern: fix bug in KPageTableBase::SetupForIpcServer
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
5fa59ec888
|
kern: fix kscheduler interrupt api, adjust debug logging
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
fae2daf77c
|
kern: fix bug in up/downcasting of scoped auto objects
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
8d507aa5a1
|
kern: implement SvcSignalToAddress, SvcWaitForAddress
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
a0cc22302c
|
kern: add KAddressArbiter::WaitIfEqual
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
01a7606f95
|
kern: implement SvcSetHeapSize
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
9c4c058307
|
kern: implement all device address space svcs
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
2ca6772475
|
kern: implement DetachDeviceAddressSpace, skeleton other das funcs in KDevicePageTable
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
0d3aa13f70
|
kern: add infra (but not impl) for all DeviceAddressSpace svcs
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
fe035736ca
|
kern: implement SvcGetProcessList
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
cfddb75398
|
kern: add SvcCreateDeviceAddressSpace, SvcAttachDeviceAddressSpace
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
04f325cf5a
|
kern: implement SvcCreateInterruptEvent
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
b35380a942
|
kern: implement SvcCreateEvent, SvcSignalEvent, SvcClearEvent, SvcResetSignal
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
93be2ffcba
|
kern: add SvcCreatePort, SvcConnectToPort
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
9f79710cb7
|
kern: add SvcReadWriteRegister
|
2020-07-31 14:50:52 -07:00 |
|
Michael Scire
|
18698bf1d3
|
kern: add SvcQueryIoMapping (NOTE: pre-10.x, ABI needs update)
|
2020-07-13 13:24:32 -07:00 |
|
Michael Scire
|
57867d6ced
|
kern: fix/add InfoType_(Total/Used)(NonSystem/)MemorySize
|
2020-07-13 12:17:28 -07:00 |
|
Michael Scire
|
84d8634938
|
kern: fix bugs in Receive/Exchange ipc buffers
|
2020-07-13 10:02:01 -07:00 |
|
Michael Scire
|
a8d4b10b17
|
kern: implement IPC KPageTable functionality
|
2020-07-12 15:42:47 -07:00 |
|
Michael Scire
|
4a7ce9dd75
|
kern/KScheduler: implement special yields
|
2020-07-11 00:48:26 -07:00 |
|
Michael Scire
|
ca9327a120
|
kern: implement SvcSleepThread for ns > 0
|
2020-07-10 23:30:15 -07:00 |
|
Michael Scire
|
f37eda6b86
|
kern: implement KPageTableBase::CopyHeapToHeap(WithoutCheckDestination)
|
2020-07-10 21:37:56 -07:00 |
|
Michael Scire
|
c72bdec328
|
kern: add KPageTableBase::CopyMemory Linear <-> User and Linear <-> Kernel
|
2020-07-10 20:09:06 -07:00 |
|
Michael Scire
|
4a767c9082
|
kern: mostly implement thread exit
|
2020-07-10 18:39:53 -07:00 |
|
Michael Scire
|
9fa6d12586
|
kern/ipc: finish Receive part of ReplyAndReceive
|
2020-07-10 11:55:33 -07:00 |
|
Michael Scire
|
804aa0e55d
|
ipc: add MapAlias processing logic for Receive
|
2020-07-10 11:55:33 -07:00 |
|
Michael Scire
|
a510a1138d
|
ipc::Reply -> add raw data copy logic
|
2020-07-10 11:55:33 -07:00 |
|
Michael Scire
|
84b1be1d58
|
kern: partially implement Receive half of ReplyAndReceive
|
2020-07-10 11:55:33 -07:00 |
|