Michael Scire
913710ddf3
kern: update KSystemControl::InitializePhase1, dynamically scale 39-bit address space regions
2023-02-23 09:00:30 -07:00
Michael Scire
8afa5a9057
kern: update for new ChangePermissions page table operation
2023-02-23 09:00:30 -07:00
Michael Scire
ec29feb497
kern: simplify KSchedulerLock::Lock
2023-02-23 09:00:29 -07:00
Michael Scire
07213a23fb
kern: update UnmapIoRegion for new Mapping_Memory handling
2023-02-23 09:00:28 -07:00
Michael Scire
6bd8bdc020
kern: use tree for IoPool regions instead of list
2023-02-23 09:00:28 -07:00
Michael Scire
326f737349
kern: use different psr masks for 64 and 32-bit El0 threads
2023-02-23 09:00:27 -07:00
Michael Scire
f81abe0625
kern: increase stack parameter size by 0x10
2023-02-23 09:00:27 -07:00
Michael Scire
30ecdbcf6a
kern: update scheduler for new switch count tracking logic
2023-02-23 09:00:26 -07:00
Michael Scire
044c8fbd72
kern: fix unnecessarily strong load in aligned spinlock
...
Copy-paste error I didn't notice for two years, whoops
2023-01-24 14:39:17 -07:00
Michael Scire
63e9c62380
kern: use slab allocated KSessionRequest dynamic mappings
2022-10-12 09:15:50 -07:00
Michael Scire
22a4a85fb2
kern: implement Svc(Un)MapInsecureMemory
2022-10-12 09:15:50 -07:00
Michael Scire
9fc57cbbbb
kern: move SecureAppletMemory/KPageBuffer heap into the ResourceRegion
2022-10-12 09:15:50 -07:00
Michael Scire
5f10b6670d
kern: increase stack region size when thread resource limit is increased
2022-10-12 09:15:49 -07:00
Michael Scire
e4825cc879
kern: Implement new PageTable operations/PhysicalMemory reference semantics
2022-10-12 09:15:49 -07:00
Michael Scire
cfe81a7eb3
kern: update for new device map semantics
2022-10-12 09:15:49 -07:00
Michael Scire
4c74021035
kern: merge/simplify KInterruptEventTask into KInterruptEvent
2022-10-12 09:15:48 -07:00
Michael Scire
8ca94db643
kern: implement K(Secure)SystemResource
2022-10-12 09:15:48 -07:00
Michael Scire
2e9d055b19
kern: update handle table init
2022-10-12 09:15:48 -07:00
Liam
d24ea71108
KScheduler: fix documentation mistakes
2022-10-12 09:15:42 -07:00
Michael Scire
737720086b
kern: codegen tweaks, now that we're no longer -Os
2022-03-23 09:16:07 -07:00
Michael Scire
4689ef9033
kern: on second thought, gcc built ins are for chumps
2022-03-23 09:16:07 -07:00
Michael Scire
8022175f5f
kern: implement revised IPI/SGI semantics
2022-03-23 09:16:07 -07:00
Michael Scire
d066ac3d69
kern: update for new hw maintenance semantics
2022-03-23 09:16:06 -07:00
Michael Scire
f38d589516
kern: implement new thread context/fpu semantics
2022-03-23 09:16:06 -07:00
Michael Scire
52e51c0634
kern: implement additional randomness in KPageHeap allocations
2022-03-23 09:16:05 -07:00
Michael Scire
692742b434
kern: enforce end of dram == end of partitions (move our probably outdated KTraceBuffer to new location)
2022-03-23 09:16:04 -07:00
Michael Scire
3be59053ca
kern: add new KCapability checks before creating process
2022-03-23 09:16:04 -07:00
Michael Scire
a3b74aece9
kern: add InfoType_IsSvcPermitted
2022-03-23 09:16:04 -07:00
Michael Scire
ab25a959f2
pm/kern: update for 14.0.0
2022-03-23 09:15:57 -07:00
Michael Scire
1f2822fafe
abort/error: print backtrace, abuse templates, overhaul result/diag (macos not done yet)
2022-03-23 09:15:49 -07:00
Michael Scire
d7a9c7ec4c
ams: support building unit test programs on windows/linux/macos
2022-03-23 09:15:46 -07:00
Michael Scire
9f7ff7a64a
kern: fix syntax in audit statement
2022-03-23 09:15:41 -07:00
SciresM
00203fd7c3
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-03-23 09:15:40 -07:00
Michael Scire
9436b9a555
ams: deduplicate static initialization logic
2022-01-19 16:28:54 -08:00
Michael Scire
24101aaa86
KScheduler big brain strat for mdscr_el1 cfg change
2021-11-30 16:34:43 -08: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
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
dfba6af22c
kern: implement 13.1.0 kernel changes
2021-10-26 01:11:18 -07:00
Michael Scire
8cc1c43ba4
kern: simplify random bitmap selection to match latest Nintendo logic
2021-10-26 01:11:18 -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
1713d12946
kern: devirtualize KReadableEvent::Reset, KWorkerTask::DoWorkerTask
2021-10-26 01:11:15 -07:00
Michael Scire
3852d02696
kern: enable lto for global instants (saves about a page in deduplicated code)
2021-10-26 01:11:15 -07:00
Michael Scire
5217e6b9f3
kern: devirtualize KAutoObjectWithList::GetId()
2021-10-26 01:11:15 -07:00
Michael Scire
4aefb1163c
kern: fix reorder-init in KHandleTable
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
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
d9d6d52575
kern: remove spurious assertion
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
e9c82af25f
kern: remove need for explicit reserved member in KAutoObject
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
f6c9839eae
kern: tidy up capability calc
2021-10-15 23:54:32 -07:00
Michael Scire
390ce66da1
svc: refactor/rename MemoryInfo fields
2021-10-07 23:06:28 -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
8ecddf498a
kern: use util::BitFlagSet for capability flags
2021-10-07 23:06:18 -07:00
Michael Scire
dbbd04fd2c
kern: fix/update thread permissions on pin
2021-10-07 23:06:18 -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
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
Michael Scire
2361bee5fe
kern: delete KWritableEvent, devirtualize KReadableEvent Signal/Clear
2021-09-19 10:35:36 -07:00
Michael Scire
cbec3828bf
kern: KConditionVariable arbiter functions now static
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
8939693d33
kern: optimize handle table layout
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
2a98931260
kern: fix handling of is_aligned parameter in DevicePageTable
2021-07-06 07:28:32 -07:00
Michael Scire
765c854768
kern: implement improved [new page tables are zero] invariant
2021-07-06 07:28:30 -07:00
Michael Scire
5785447252
kern: ensure InitArguments do not cross page boundaries
2021-07-06 07:28:29 -07:00
Michael Scire
d8e35f2277
exo/meso: update for gcc 11 compatibility
2021-04-29 03:04:54 -07:00
Michael Scire
c34109718f
kern: fix initial process binary load on 2.0.0-4.1.0 ( closes #1460 )
2021-04-29 03:04:54 -07:00
Michael Scire
2ccba9adbb
util: implement red black trees as templates over macros
2021-04-29 03:04:53 -07:00
Michael Scire
049c56f75a
kern: fix constant evaluation correctness, codegen tweak
2021-04-29 03:04:53 -07:00
Michael Scire
71e8931b89
kern: tweak KHandleTable codegen
2021-04-29 03:04:52 -07:00
Michael Scire
c8ca3ecccd
kern: tweak KAutoObject::Open/Close codegen
2021-04-29 03:04:52 -07:00