Commit Graph

465 Commits

Author SHA1 Message Date
Michael Scire
2702120d79 ro/os: use os primitives for MapProcessCodeMemory 2022-04-29 16:14:22 -07:00
Michael Scire
54b6d5f40b optional: add c++23 monadic interface 2022-04-29 16:14:20 -07:00
Michael Scire
590cdaf022 ams: add enum recognition for 14.1.0 2022-04-04 17:47:04 -07:00
Michael Scire
ddd98cb20b util: update some bit utility logic 2022-04-04 17:47:04 -07:00
Michael Scire
08787303a2 fs: update romfs types 2022-04-04 17:47:02 -07:00
Michael Scire
37089309b2 fs: update LocalFileSystem 2022-04-04 17:47:01 -07:00
Michael Scire
6a5d2ced4b ams: globally prefer R_RETURN to return for ams::Result 2022-04-04 17:46:58 -07:00
Michael Scire
6f4618ea60 ams: use R_SUCCEED, R_THROW globally 2022-04-04 17:46:57 -07:00
Michael Scire
e7d6626ef6 fs: update a few loose missed results 2022-04-04 17:46:56 -07:00
Michael Scire
cdadb5e9a2 fs: update nca drivers (and dependents/callees) for 14.0.0 changes 2022-04-04 17:46:56 -07:00
Michael Scire
767f4a9913 util: pointer traits only if <memory>/stratosphere 2022-04-04 17:46:54 -07:00
Michael Scire
7a0bfc4397 util: add pointer utils, use to constrain fs pointers 2022-04-04 17:46:54 -07:00
Michael Scire
af48924e59 crypto: fix aes-128 dec on arm64/cortex-a57 2022-03-23 11:25:20 -07:00
Michael Scire
d97cdde1aa os/dd: add missing semicolon to new cache logic 2022-03-23 09:16:08 -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
a3b74aece9 kern: add InfoType_IsSvcPermitted 2022-03-23 09:16:04 -07:00
Michael Scire
ac73be8eae sf: add new debug-interface-id in cmif out header 2022-03-23 09:15:59 -07:00
Michael Scire
aab409bf1a kern: update version (note: actual 14-kernel diff/impl todo) 2022-03-23 09:15:58 -07:00
Michael Scire
446df35368 exo/fusee: first pass at updating enums for 14.0.0 2022-03-23 09:15:57 -07:00
Michael Scire
39047de5c2 ncm: update client code to better reflect latest sysupdate 2022-03-23 09:15:56 -07:00
Michael Scire
8a5d1ec46c fs: utilities for hac2l to print gc headers 2022-03-23 09:15:55 -07:00
Michael Scire
bf95bc3ede fs: add gc validation wrappers for hac2l 2022-03-23 09:15:55 -07:00
Michael Scire
a9aef5024c util: update function dtors, update gitignore 2022-03-23 09:15:54 -07:00
Michael Scire
ce44fe4ea9 fs: revise allocation-fail result names 2022-03-23 09:15:54 -07:00
Michael Scire
0d2e2df552 strat: revise fs unsupported operation results, add overflow utils 2022-03-23 09:15:53 -07:00
Michael Scire
5febe40d50 fs: fix clang-build, os: StackGuardManager 2022-03-23 09:15:52 -07:00
Michael Scire
a9e2c6a9c0 fs: first pass at compressed storage (works on iridium with wip hac2l code) 2022-03-23 09:15:51 -07:00
Michael Scire
493001fdd7 fssrv: add ExternalKeyManager (rights-id crypto) for hac2l 2022-03-23 09:15:51 -07:00
Michael Scire
9e1386f225 crypto: add ability to hash data at compile time, for future diag use 2022-03-23 09:15:49 -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
6c3eb5b121 lib: simplify pragma macros 2022-03-23 09:15:48 -07:00
Michael Scire
7a689dc29e libs: add ongoing work to facilitate hactool rewrite 2022-03-23 09:15:48 -07:00
Michael Scire
78af849848 libs: begin adding capacity for doing crypto on generic os (using externally-preset keys) 2022-03-23 09:15:47 -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
513c5e732a crypto: fix asm constraints for memory comparison 2022-03-23 09:15:45 -07:00
Michael Scire
9b2c279d81 fs: add Sha256HashGenerator, LZ4 decompressor 2022-03-23 09:15:44 -07:00
Michael Scire
b37eba086f fs: revise NcaFileSystemDriver for latest semantics 2022-03-23 09:15:44 -07:00
Michael Scire
7407ddaf1e fssrv: flesh out the program registry 2022-03-23 09:15:43 -07:00
Michael Scire
0e957db878 fssrv: add skeleton getters for service object sf::SharedPointers 2022-03-23 09:15:43 -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
0d161b8588 ams: first attempt at 13.2.1 support 2022-01-19 16:28:55 -08:00
Michael Scire
9436b9a555 ams: deduplicate static initialization logic 2022-01-19 16:28:54 -08:00
Michael Scire
c4d0335b79 bump version to 1.2.5, fix enum for 13.2.0 2021-11-30 16:53:39 -08:00
Michael Scire
b670c079fe ams/hos: add enum support for 13.2.0 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
ff28833612 ams: overhaul fs.mitm romfs ownership, bump to 1.2.4 2021-11-04 13:40:36 -07:00
Michael Scire
e7b84767c6 git subrepo pull (merge) libraries
subrepo:
  subdir:   "libraries"
  merged:   "8764bd406"
upstream:
  origin:   "https://github.com/Atmosphere-NX/Atmosphere-libs"
  branch:   "master"
  commit:   "12d0ba172"
git-subrepo:
  version:  "0.4.1"
  origin:   "???"
  commit:   "???"
2021-11-03 23:59:56 -07:00
Michael Scire
a0ca502b3a ams: bump api version to 1.2.3 2021-11-03 23:59:56 -07:00
Michael Scire
bb16bb0d8d ams: update for awareness of architecture revision 2021-11-03 23:59:53 -07:00
Léo Lam
12d0ba172f util/string_view: fix nonnull attribute argument number
Argument 1 is the this pointer, not the string.
2021-11-02 17:19:35 -07:00
Michael Scire
4d0f1b7924 ams: bump version to 1.2.2 2021-10-29 17:47:14 -07:00
Michael Scire
f8e294d6fc sprofile: various correctness fixes. 2021-10-29 17:47:14 -07:00
Michael Scire
13c6987cc4 ams: bump version to 1.2.1 2021-10-26 01:11:19 -07:00
Michael Scire
f68bae342c sprof: update for 13.1.0 (format version 1) 2021-10-26 01:11:19 -07:00
Michael Scire
a0f0dc3ba1 crypto: implement md5, which now used by sprof 2021-10-26 01:11:19 -07:00
Michael Scire
dfba6af22c kern: implement 13.1.0 kernel changes 2021-10-26 01:11:18 -07:00
Michael Scire
2eab77fe5a util: add trait/macro for is_constexpr_constructible 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
8f761e928c kern: optimize timespan -> tick codegen, improve .text layout 2021-10-26 01:11:14 -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
573769303b kern: update scheduler for 13.0.0 change, fix some ctz/clz bugs 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
191d2941b5 util: improve (and use) offsetof that's """standard compliant""" 2021-10-26 01:11:10 -07:00
Michael Scire
21cb300537 constexpr: resign ourselves to gcc dropping void -> T support 2021-10-26 01:11:10 -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
96190af3dc util: fix consteval CountTrailingZeroes impl 2021-10-15 23:54:38 -07:00
Michael Scire
3744ee6fff ams: bump api verrsion pre-emptively to 1.2.0 2021-10-15 23:54:37 -07:00
Michael Scire
3218308524 loader: refactor ro manager/improve accuracy 2021-10-15 23:54:36 -07:00
Michael Scire
0abb1e474e spl: refactor for accuracy/move into libstrat 2021-10-15 23:54:36 -07:00
Michael Scire
5872a51c18 svc: use m_ for member variables 2021-10-15 23:54:35 -07:00
Michael Scire
bb1a22a631 sdmmc: use m_ for member variables 2021-10-15 23:54:35 -07:00
Michael Scire
116e41f790 exo/vapours: refactor member variables to m_ over this-> 2021-10-15 23:54:34 -07:00
Michael Scire
3b5f56ab9f ams: replace most remaining operator & with std::addressof 2021-10-15 23:54:34 -07:00
Adubbz
ea0bb620f2 settings: implement KeyValueStore (#1659)
* settings: implement KeyValueStore and dependencies

* settings: update KeyValueStore for recent refactoring

* settings: address feedback
2021-10-15 23:54:33 -07:00
Michael Scire
fd1b6d4578 libstrat: enable -Wextra, -Werror
This caught an embarrassingly large number of bugs.
2021-10-07 23:06:28 -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
612b9e2f01 strat: prefer os::NativeHandle to Handle/svc::Handle where sensible 2021-10-07 23:06:26 -07:00
Michael Scire
5a71876ca8 strat: use svc:: over ::svc 2021-10-07 23:06:26 -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
57f439afe7 result: improve Includes codegen 2021-10-07 23:06:24 -07:00
Michael Scire
6125281acd os: adopt multiwait naming over waitable 2021-10-07 23:06:23 -07:00
Michael Scire
c68298a00e stratosphere: use SdkMutex/SdkRecursiveMutex over Mutex 2021-10-07 23:06:22 -07:00
Michael Scire
7665721e03 ams-libs: AMS_ASSERT no longer invokes expression 2021-10-07 23:06:21 -07:00
Michael Scire
8ecddf498a kern: use util::BitFlagSet for capability flags 2021-10-07 23:06:18 -07:00
Michael Scire
e05183a6f4 ams: bump version to 1.1.1 2021-09-24 09:17:12 -07:00
Michael Scire
33ae401bc8 svc: bump supported version 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
22bb619873 kern: add new KMemoryState 2021-09-19 10:35:37 -07:00
Michael Scire
b4c67d9c3b kern: update GetInfo logic for tick count InfoTypes 2021-09-19 10:35:35 -07:00
Adubbz
66104b830a ncm: skeleton new commands 2021-09-19 10:35:34 -07:00
Michael Scire
a8bccc95ab sprofile: fully reimplement sprof:bg + sprof:sp 2021-09-19 10:35:33 -07:00
Michael Scire
8a35d51406 sprofile: implement non-importer bgagent commands 2021-09-19 10:35:33 -07:00
Michael Scire
196c524768 sprofile: implement OpenProfileUpdateObserver 2021-09-19 10:35:33 -07:00
Michael Scire
6c012b8371 ams: update current target firmware 2021-09-19 10:35:32 -07:00