Michael Scire
d27fe8a229
util: fix consteval CountTrailingZeroes impl
2021-10-11 13:15:11 -07:00
Michael Scire
67a45c97ef
exo/vapours: refactor member variables to m_ over this->
2021-10-09 15:40:06 -07:00
Michael Scire
1ab0bd1765
ams: replace most remaining operator & with std::addressof
2021-10-09 14:49:53 -07:00
Michael Scire
7ca83c9d3b
libstrat: enable -Wextra, -Werror
...
This caught an embarrassingly large number of bugs.
2021-10-06 15:20:48 -07:00
Michael Scire
77fe5cf6f5
ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals
2021-10-04 12:59:10 -07:00
Michael Scire
d00cec38b0
kern: use util::BitFlagSet for capability flags
2021-09-27 11:37:27 -07:00
Michael Scire
89541c8042
sprofile: fully reimplement sprof:bg + sprof:sp
2021-09-19 10:34:31 -07:00
SciresM
e9849c74cf
LogManager: implement system module, client api, logging api ( #1617 )
...
Some notes:
* Unless `atmosphere!enable_log_manager` is true, Nintendo's log manager will be used instead.
* This prevents paying memory costs for LM when not enabling logging.
* To facilitate this, Atmosphere's log manager has a different program id from Nintendo's.
* `atmosphere!enable_htc` implies `atmosphere!enable_log_manager`.
* LogManager logs to tma, and the SD card (if `lm!enable_sd_card_logging` is true, which it is by default).
* Binary logs are saved to `lm!sd_card_log_output_directory`, which is `atmosphere/binlogs` by default.
2021-09-11 19:32:14 -07:00
Michael Scire
a7c14e03b9
ams: std::optional -> util::optional
2021-07-08 02:37:26 -07:00
Michael Scire
dbcb1e1564
loader: avoid UB when doing count trailing zeros
2021-04-30 10:03:54 -07:00
Michael Scire
0767d9f8da
ams: assume gcc 11
2021-04-28 15:13:29 -07:00
Michael Scire
4f16106702
exo/meso: update for gcc 11 compatibility
2021-04-26 20:06:18 -07:00
Michael Scire
ed80d6ec8c
util: add compile-time validation tests for intrusive red black trees
2021-04-21 05:06:11 -07:00
Michael Scire
57b6c71c1c
util: implement red black trees as templates over macros
2021-04-20 16:56:33 -07:00
Michael Scire
a1e137cc1c
kern: update Initialize0 for new changes
2021-04-11 03:42:16 -07:00
Michael Scire
d84dcb653d
ams: prefer construct_at/destroy_at over placement new/explicit destructor
2021-03-21 20:30:40 -07:00
Michael Scire
aff0da9427
ams: remove TYPED_STORAGE() macro in favor of template
2021-03-21 18:47:30 -07:00
Michael Scire
4cb6c63516
htc: implement HtclowDriver
2021-02-24 04:06:54 -08:00
Michael Scire
6fc24d8883
htc: implement service channel parsing (ReceiveReadyPacket)
2021-02-24 04:06:54 -08:00
Michael Scire
846cc0b47a
util: add FixedSet
2021-02-04 02:29:54 -08:00
Michael Scire
e82ad1cdc5
util: add FixedMap::clear
2021-02-04 02:16:37 -08:00
Michael Scire
a9c6476416
util: various FixedMap fixes
2021-02-04 02:08:21 -08:00
Michael Scire
c1d93a9495
util: add FixedMap/FixedTree
2021-02-04 01:00:19 -08:00
Michael Scire
201b17f100
util: impl::AvailableIndexFinder
2021-02-03 17:47:32 -08:00
Michael Scire
6950989552
dns.mitm: support % in hosts file as stand-in for environment identifier
2021-02-02 11:41:49 -08:00
Michael Scire
e4e278bb3d
util::unique_lock, update loader to new sf semantics
2021-01-20 23:39:31 -08:00
Michael Scire
3bb94aa146
util::string_view, update pgl for new sf semantics
2021-01-20 23:39:31 -08:00
Michael Scire
f06de12bea
libstrat: convert to experimental new (super-accurate) sf allocation semantics
2021-01-20 23:39:31 -08:00
Michael Scire
6a2ee02409
util: fix header dependence
2021-01-12 03:02:09 -08:00
Michael Scire
094cede39e
ams: use util::SNPrintf over std:: (size/linker improvements)
2021-01-12 02:59:41 -08:00
Michael Scire
b8072b1398
util: faster constexpr offsetof calc, at the cost of standards compliance
2021-01-08 04:07:45 -08:00
Michael Scire
1e643f7ab0
kern: further codegen tweaks
2021-01-08 02:35:29 -08:00
Michael Scire
32803d9920
fs: update + consolidate path normalization logic
2020-12-06 19:56:45 -08:00
Michael Scire
6da28f4a27
erpt: update for 11.0.0 ( closes #1218 )
2020-12-03 11:13:35 -08:00
Michael Scire
726d7b6e4d
kern: tweak optimization settings for hot paths
2020-12-02 06:43:37 -08:00
Michael Scire
390bdc7b6b
kern: more iterator adjustments
2020-12-02 06:43:37 -08:00
Michael Scire
41a53075e5
hot path: just in case
2020-12-02 06:43:37 -08:00
Michael Scire
ab8de72db0
microkernel: hot paths are pretty fucking hot
2020-12-02 06:43:37 -08:00
Michael Scire
c8ebd7eea0
KConditionVariable/KAddressArbiter: no need for global compare thread
2020-12-02 06:43:37 -08:00
SciresM
166318ba77
sdmmc: implement driver suitable for fs + bootloader
...
* sdmmc: begin skeletoning sdmmc driver
* sdmmc: add most of SdHostStandardController
* sdmmc: implement most of SdmmcController
* sdmmc: Sdmmc2Controller
* sdmmc: skeleton implementation of Sdmmc1Controller
* sdmmc: complete abstract logic for Sdmmc1 power controller
* sdmmc: implement gpio handling for sdmmc1-register-control
* sdmmc: implement pinmux handling for sdmmc1-register-control
* sdmmc: fix building for arm32 and in stratosphere context
* sdmmc: implement voltage enable/set for sdmmc1-register-control
* util: move T(V)SNPrintf from kernel to util
* sdmmc: implement BaseDeviceAccessor
* sdmmc: implement MmcDeviceAccessor
* sdmmc: implement clock reset controller for register api
* sdmmc: fix bug in WaitWhileCommandInhibit, add mmc accessors
* exo: add sdmmc test program
* sdmmc: fix speed mode extension, add CheckMmcConnection for debug
* sdmmc: add DeviceDetector, gpio: implement client api
* gpio: modernize client api instead of doing it the lazy way
* sdmmc: SdCardDeviceAccessor impl
* sdmmc: update test program to read first two sectors of sd card
* sdmmc: fix vref sel
* sdmmc: finish outward-facing api (untested)
* ams: changes for libvapours including tegra register defs
* sdmmc: remove hwinit
2020-10-30 11:54:30 -07:00
Michael Scire
d52179c708
util: follow 90fd771
to its natural conclusion (generic base rbtree)
2020-10-12 01:06:19 -07:00
Michael Scire
90fd771fce
IntrusiveRedBlackTree: refactor to add ->GetPrev(), ->GetNext() to BaseNode inheritors
2020-08-18 15:17:40 -07:00
Michael Scire
73798cb812
kern: build with -Wextra
2020-08-17 14:20:24 -07:00
Michael Scire
a0cc22302c
kern: add KAddressArbiter::WaitIfEqual
2020-07-31 14:50:52 -07:00
Michael Scire
a6218ed814
sysupdater: implement content meta mounting
2020-06-28 01:46:51 -07:00
Michael Scire
91e0bbd9d7
exo2: Implement (untested) SmcDecryptDeviceUniqueData
2020-06-14 22:07:45 -07:00
Michael Scire
87bdc46beb
exo2: implement rest of main other than SetupSocProtections
2020-06-14 22:07:45 -07:00
Michael Scire
f66b41c027
exo2: Initial work on the exosphere rewrite.
...
exo2: Implement uncompressor stub and boot code up to Main().
exo2: implement some more init (uart/gic)
exo2: implement more of init
exo2: improve reg api, add keyslot flag setters
exo2: implement se aes decryption/enc
exo2: fix bugs in loader stub/mmu mappings
exo2: start skeletoning bootconfig/global context types
arch: fix makefile flags
exo2: implement through master key derivation
exo2: implement device master keygen
exo2: more init through start of SetupSocSecurity
exo2: implement pmc secure scratch management
se: implement sticky bit validation
libexosphere: fix building for arm32
libexo: fix makefile flags
libexo: support building for arm64/arm
sc7fw: skeleton binary
sc7fw: skeleton a little more
sc7fw: implement all non-dram functionality
exo2: fix DivideUp error
sc7fw: implement more dram code, fix reg library errors
sc7fw: complete sc7fw impl.
exo2: skeleton the rest of SetupSocSecurity
exo2: implement fiq interrupt handler
exo2: implement all exception handlers
exo2: skeleton the entire smc api, implement the svc invoker
exo2: implement rest of SetupSocSecurity
exo2: correct slave security errors
exo2: fix register definition
exo2: minor fixes
2020-06-14 22:07:45 -07:00
SciresM
81f91803ec
Implement support for parsing/interacting with NCAs. ( #942 )
...
* fs: implement support for interacting with ncas.
* spl: extend to use virtual keyslots
2020-05-11 15:04:51 -07:00
SciresM
3a1ccdd919
Switch atmosphere's build target to C++20. ( #952 )
...
* ams: update to build with gcc10/c++20
* remove mno-outline-atomics
* ams: take care of most TODO C++20s
* fusee/sept: update for gcc10
* whoosh, your code now uses pre-compiled headers
* make: dependency fixes
2020-05-11 15:02:10 -07:00