Michael Scire
2409222dd0
kern: be a little more consistent about pragma GCC location
2021-11-30 16:34:45 -08:00
Léo Lam
2916512fb7
Minor header fixes to reduce parsing issues with Clang ( #1700 )
...
* Work around Clang's incomplete C++20 support for omitting typename
* vapours: fix Clang error about missing return in constexpr function
* stratosphere: fix call to non-constexpr strlen in constexpr function
strlen being constexpr is a non-compliant GCC extension; Clang
explicitly rejects it: https://reviews.llvm.org/D23692
* stratosphere: add a bunch of missing override specifiers
* stratosphere: work around Clang consteval bug
Minimal example: https://godbolt.org/z/MoM64v93M
The issue seems to be that Clang does not consider f(x) to be a
constant expression if x comes from a template argument that isn't
a non-type auto template argument (???)
We can work around this by relaxing GetMessageHeaderForCheck (by using
constexpr instead of consteval). This produces no functional changes
because the result of GetMessageHeaderForCheck() is assigned to a
constexpr variable, so the result is guaranteed to be computed
at compile-time.
* stratosphere: fix missing require clauses in definitions
GCC not requiring the require clauses to be repeated for member
definitions is actually a compiler bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96830
Clang rejects declarations with missing require clauses.
* Fix ALWAYS_INLINE_LAMBDA and parameter list relative order
While GCC doesn't seem to care about the position of the always_inline
attribute relative to the parameter list, Clang is very picky
and requires the attribute to appear after the parameter list
(and before a trailing return type)
* stratosphere: fix static constexpr member variable with incomplete type
GCC accepts this for some reason (because of the lambda?) but Clang
correctly rejects this.
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
3304c91dae
kern: add (and use) generic KSystemControlBase
2021-10-26 01:11:18 -07:00
Michael Scire
1713d12946
kern: devirtualize KReadableEvent::Reset, KWorkerTask::DoWorkerTask
2021-10-26 01:11:15 -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
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
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
62655a9e3b
kern: optimize logging for release kernel strings (saves printf space in .text)
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
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
b4c67d9c3b
kern: update GetInfo logic for tick count InfoTypes
2021-09-19 10:35:35 -07:00
Michael Scire
33d58424c7
kern: add hardware single step extension
2021-09-19 10:35:28 -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
40f3724891
kern: simplify handle table registration for port/session
2021-04-11 03:59:18 -07:00
Michael Scire
7c35303c62
kern: KAutoObject destruction is now scheduled for next dpc-time
2021-04-11 03:59:16 -07:00
Michael Scire
ec7e3fb07f
kern: update process/thread for new running/termination semantics
2021-04-11 03:59:10 -07:00
Michael Scire
e40ccfb4ca
kern: add new checks to SetThreadPriority/CoreMask
2021-04-11 03:59:08 -07:00
Michael Scire
f09107ff50
kern: add extension InfoType for retrieving current process handle.
2021-04-11 03:59:01 -07:00
Michael Scire
832f0f441d
kern: fix support for virtual core IDs
2021-02-15 19:51:57 -08:00
Michael Scire
514756094b
kern: fix svc bounds checking for main memory size 4GB -> 8GB ( closes #1320 )
2021-01-13 10:41:26 -08:00
Michael Scire
02453fc15f
kern: add page table contents debug
2020-12-19 10:21:46 -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
4c0b780017
kern: implement port debug
2020-12-11 03:49:01 -08:00
Michael Scire
f3882fa0f7
kern: add handle table/process/suspend/resume 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
a7b7dd1257
kern: add debug thread dump
2020-12-11 03:49:00 -08:00
Michael Scire
ccd1f3b982
kern: add support for InfoType_FreeThreadCount
2020-12-11 03:48:56 -08:00
Michael Scire
9586142e90
kern: tweak optimization settings for hot paths
2020-12-02 06:53:22 -08:00
Michael Scire
b9504f356f
microkernel: hot paths are pretty fucking hot
2020-12-02 06:53:20 -08:00
Michael Scire
f3e127f147
kern: fix SvcGetResourceLimitPeakValue
2020-12-02 06:53:20 -08:00
Michael Scire
0eb6e0a963
kern: add new overflow checks on KMemoryRegions
2020-12-02 06:53:17 -08:00
Michael Scire
7779d7d06d
kern: stubs for Svc39, 3A, 46, 47
2020-12-02 06:53:16 -08:00
Michael Scire
e4774a2685
kern: implement 64-virtual-core interface
2020-12-02 06:53:15 -08:00
Michael Scire
a01f7ab1c9
kern: improve KSynchronizationObject, kill KSynchronization
2020-12-02 06:53:14 -08:00
Michael Scire
1582110af7
kern: KObjectContainer::Register -> void
2020-12-02 06:53:12 -08:00
Michael Scire
0063ede635
kern: SvcGetResourceLimitPeakValue
2020-12-02 06:53:10 -08:00
Michael Scire
e7e63e19b9
kern: fix KCodeMemory SVCs when Owner process != Generator process
2020-09-17 08:34:23 -07:00
Michael Scire
22f2946671
kern: begin 1.0.0 backwards compat changes (kips run, full boot fails)
2020-09-07 10:51:50 -07:00
Michael Scire
1aedaa0f91
kern: support 2-pool layout on 2.x-4.x instead of modern 4-pool layout
2020-09-07 10:51:50 -07:00
Michael Scire
c89927177e
kern: expose mesosphere meta over GetInfo instead of GetSystemInfo
2020-09-07 10:51:48 -07:00
Michael Scire
8836a5385c
kern/pm: support for 5.x under mesosphere
2020-09-07 10:51:47 -07:00
Michael Scire
f577ffa682
kern: fix reference leak in KThread::GetThreadFromId callers
2020-09-07 10:51:44 -07:00