Michael Scire
54783b86f1
dmnt2: detect thread name, add monitor get mapping(s), increase buffer sizes
2021-11-03 23:59:55 -07:00
Michael Scire
1c7ae0d066
kern/dmnt2: allow retrieval of process info via extension
...
This also fixes ctrl-c break in gdbstub, and fixes crash on unknown monitor cmd.
2021-11-03 23:59:54 -07:00
Michael Scire
17ceca9140
kern: fix minor assembly bugs, avoid unnecessary function call in KScheduler hotloop
2021-10-29 17:47:13 -07:00
Michael Scire
e5756ca0b0
kern: fix 32-bit light ipc svc handler asm
...
Nintendo used to do what we were doing because the function wasn't directly in the handler table,
but we've always been directly in the handler table, so we were trashing the last four arguments to light ipc
when called from aarch32. Nothing uses this, but needed to be fixed.
2021-10-29 17:47:13 -07:00
Michael Scire
cb7f4e7757
kern: optimize and bring into line with N our pstate.i management
2021-10-27 22:57:18 -07:00
Michael Scire
610e99b277
kern: audit (and fix) our hardware maintenance instructions to match official kernel
2021-10-27 22:57:18 -07:00
Michael Scire
695a99183b
kern: other dmbs in kernel were already dmb ish
2021-10-26 01:11:19 -07:00
Michael Scire
3304c91dae
kern: add (and use) generic KSystemControlBase
2021-10-26 01:11:18 -07:00
Michael Scire
de5b6169d6
kern: add toggleable support for 40-bit physaddr caps
2021-10-26 01:11:17 -07:00
Michael Scire
194e58a3e3
kern/test: add wip qemu-virt board support to mesosphere
2021-10-26 01:11:16 -07:00
Michael Scire
5f0eb19a41
kernel_ldr: bring initial cache flush in line with Nintendo
2021-10-26 01:11:16 -07:00
Michael Scire
38a4dadd9e
kern: reflect nintendo cache management behavior for initial processes
2021-10-26 01:11:16 -07:00
Michael Scire
1713d12946
kern: devirtualize KReadableEvent::Reset, KWorkerTask::DoWorkerTask
2021-10-26 01:11:15 -07:00
Michael Scire
62bdae5b3f
kern: devirtualize most things that are free to devirtualize (see #1672 )
2021-10-26 01:11:15 -07:00
Michael Scire
6dbdfa0384
kern: use optimized red black tree finds for remaining holdouts
2021-10-26 01:11:14 -07:00
Michael Scire
7749ecabc4
kern: devirtualize several KAutoObject functions
2021-10-26 01:11:14 -07:00
Michael Scire
89f01cb068
kern: KCacheHelper: better reflect nintendo coremask clearing logic
2021-10-26 01:11:14 -07:00
Michael Scire
d3ad53a525
kern: devirtualize remaining vcall for class token/dyncast
2021-10-26 01:11:13 -07:00
SciresM
823c0df6b9
kern: avoid constexpr init for many objects (avoids unnecessary memory clear) ( #1668 )
2021-10-26 01:11:13 -07:00
Michael Scire
00353a05e9
kern: use new AtomicRef, use Atomic<bool>
2021-10-26 01:11:13 -07:00
Michael Scire
0d1ec0739f
util: better match true std::atomic semantics
2021-10-26 01:11:13 -07:00
Michael Scire
d3b358bbb9
kern/util: use custom atomics wrapper to substantially improve codegen
2021-10-26 01:11:12 -07:00
Michael Scire
6f9d5ecd0d
kern: use 13.0.0 revised KLightLock logic
2021-10-26 01:11:12 -07:00
Michael Scire
c77900d598
kern: fix capability check for thread priorities
2021-10-26 01:11:12 -07:00
Michael Scire
573769303b
kern: update scheduler for 13.0.0 change, fix some ctz/clz bugs
2021-10-26 01:11:11 -07:00
Michael Scire
2827f6300e
kern: fix use of plr vs plr_heap, fix close/unlock order in ArbitrateLock
2021-10-26 01:11:11 -07:00
Michael Scire
960c5c19f9
ams: improve offsetof style consistency
2021-10-26 01:11:10 -07:00
Michael Scire
f8d59254cf
kern: devirtualize KAutoObject::DynamicCast<>()
...
This is an optimization that saves the most common type of virtual call in the kernel (DynamicCast)
by storing class token as a member, rather than getting it via virtual call every time.
This does not currently cost any memory space on 64-bit targets, due to pre-existing padding space.
This optimization can be turned off via a compile-time flag for accuracy.
2021-10-26 01:11:09 -07:00
Michael Scire
05c7ba6439
kern/util: update structure layouts to match Nintendo (saves 0x10 per KThread/KSession)
2021-10-26 01:11:09 -07:00
Michael Scire
65e89cf1b8
kern: fix some lingering non-m_ member variables
2021-10-15 23:54:35 -07:00
Michael Scire
3b5f56ab9f
ams: replace most remaining operator & with std::addressof
2021-10-15 23:54:34 -07:00
Michael Scire
5c32ec11ea
strat: refactor address taking of form &var[...]
2021-10-15 23:54:34 -07:00
Michael Scire
390ce66da1
svc: refactor/rename MemoryInfo fields
2021-10-07 23:06:28 -07:00
Michael Scire
782e449543
strat: remove map namespace, svc: add address space defs
2021-10-07 23:06:27 -07:00
Michael Scire
002422d5dc
ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals
2021-10-07 23:06:25 -07:00
Michael Scire
204b389252
kern: devirtualize page table operations
2021-09-24 09:17:11 -07:00
Michael Scire
993ffbfdcd
kern: unify all waiting semantics to use single api
2021-09-19 10:35:39 -07:00
Michael Scire
ecb607bade
kern/svc: implement IoPool/Region svc support
2021-09-19 10:35:39 -07:00
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
f103b6876b
kern: KMemoryManager/KPageGroup use physical addresses instead of virtual, now
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
5a41163576
kern: improve kdebug attach semantics
2021-09-19 10:35:38 -07:00
Michael Scire
ccdee05857
kern: update KPageTable::Unmap block closing logic
2021-09-19 10:35:38 -07:00
Michael Scire
62655a9e3b
kern: optimize logging for release kernel strings (saves printf space in .text)
2021-09-19 10:35:37 -07:00
Michael Scire
22bb619873
kern: add new KMemoryState
2021-09-19 10:35:37 -07:00
Michael Scire
010fb5986e
kern: KWorkerTaskManager no longer tracks id
2021-09-19 10:35:37 -07:00
Michael Scire
99e78d285b
kern: KSchedulerInterruptTask -> KSchedulerInterruptHandler
2021-09-19 10:35:37 -07:00
Michael Scire
2913096bc4
kern: kill the interrupt task manager thread
2021-09-19 10:35:36 -07:00
Michael Scire
ccbca5fb57
kern: remove per-KInterruptEventTask locks
2021-09-19 10:35:36 -07:00