Commit Graph

21 Commits

Author SHA1 Message Date
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
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
3304c91dae kern: add (and use) generic KSystemControlBase 2021-10-26 01:11:18 -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
3e328eae72 kern: update Initialize0 for new arguments/randomization semantics 2021-09-19 10:35:38 -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
bb30453d43 kern: fix KTrace buffer memory region type to match official kernel 2020-12-28 17:34:07 -08:00
Michael Scire
3355f97275 exo/meso/fusee: support dynamic control of log port/baud rate 2020-12-11 03:48:58 -08:00
Michael Scire
0eb6e0a963 kern: add new overflow checks on KMemoryRegions 2020-12-02 06:53:17 -08:00
Michael Scire
f7a3eead0c kern: add build-define for logging to iram ringbuffer 2020-09-17 08:34:22 -07:00
Michael Scire
51c951f4ac kern: finish 1.x lps driver 2020-09-07 10:51:51 -07:00
Michael Scire
b4dbd97381 kern: skeleton legacy lps driver 2020-09-07 10:51:51 -07:00
Michael Scire
6182330d05 exo/kern: 1.0.0 requires access to bpmp smmu regs, userland (am) needs to map bpmp exception vectors 2020-09-07 10:51:50 -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
6cf1e0cece kern: change terminology metadata -> management 2020-09-07 10:51:50 -07:00
Michael Scire
00a43ac776 kern: revamp KMemoryRegionType to better encode derivation hierarchies 2020-09-07 10:51:49 -07:00
Michael Scire
ae14cf51b5 kern: PMC must be user-mappable for 1.0.0 compat 2020-09-07 10:51:48 -07:00
fincs
4916f3f7f8 kern: move SetupPoolPartitionMemoryRegions into board specific implementation 2020-09-07 10:51:42 -07:00
Michael Scire
c87812ef8a kern: switch->nx, implement sleep manager init 2020-03-02 19:50:56 -08:00