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
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
a8bccc95ab
sprofile: fully reimplement sprof:bg + sprof:sp
2021-09-19 10:35:33 -07:00
SciresM
277d2193e2
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-19 10:35:25 -07:00
Michael Scire
dc3f54a713
ams: std::optional -> util::optional
2021-07-12 01:59:51 -07:00
Michael Scire
acee57e888
loader: avoid UB when doing count trailing zeros
2021-04-30 10:04:09 -07:00
Michael Scire
888b39fa50
ams: assume gcc 11
2021-04-29 03:04:54 -07:00
Michael Scire
d8e35f2277
exo/meso: update for gcc 11 compatibility
2021-04-29 03:04:54 -07:00
Michael Scire
2d67f66c44
util: add compile-time validation tests for intrusive red black trees
2021-04-29 03:04:53 -07:00
Michael Scire
2ccba9adbb
util: implement red black trees as templates over macros
2021-04-29 03:04:53 -07:00
Michael Scire
3ebf91304e
kern: update Initialize0 for new changes
2021-04-11 03:59:15 -07:00
Michael Scire
9b47aa6e08
ams: prefer construct_at/destroy_at over placement new/explicit destructor
2021-04-11 03:59:04 -07:00
Michael Scire
1861791c1c
ams: remove TYPED_STORAGE() macro in favor of template
2021-04-11 03:59:03 -07:00
Michael Scire
042de46692
htc: implement HtclowDriver
2021-04-11 03:58:35 -07:00
Michael Scire
c44177cbcc
htc: implement service channel parsing (ReceiveReadyPacket)
2021-04-11 03:58:32 -07:00
Michael Scire
e4d44fb376
util: add FixedSet
2021-02-15 19:51:57 -08:00
Michael Scire
5f5b9a2831
util: add FixedMap::clear
2021-02-15 19:51:57 -08:00
Michael Scire
663e99d1f3
util: various FixedMap fixes
2021-02-15 19:51:56 -08:00
Michael Scire
6f7afd1812
util: add FixedMap/FixedTree
2021-02-15 19:51:56 -08:00
Michael Scire
8827c7da7b
util: impl::AvailableIndexFinder
2021-02-15 19:51:56 -08:00
Michael Scire
66212b7926
dns.mitm: support % in hosts file as stand-in for environment identifier
2021-02-02 12:16:30 -08:00
Michael Scire
0b2c4bb70e
util::unique_lock, update loader to new sf semantics
2021-02-02 12:16:22 -08:00
Michael Scire
29b3baf678
util::string_view, update pgl for new sf semantics
2021-02-02 12:16:21 -08:00
Michael Scire
637c44f64d
libstrat: convert to experimental new (super-accurate) sf allocation semantics
2021-02-02 12:16:20 -08:00
Michael Scire
20f8c05114
util: fix header dependence
2021-01-13 10:41:29 -08:00
Michael Scire
26369e34f1
ams: use util::SNPrintf over std:: (size/linker improvements)
2021-01-13 10:41:28 -08:00
Michael Scire
673c988ed1
util: faster constexpr offsetof calc, at the cost of standards compliance
2021-01-13 10:41:27 -08:00
Michael Scire
b3eef9315b
kern: further codegen tweaks
2021-01-13 10:41:27 -08:00
Michael Scire
fd5212f399
fs: update + consolidate path normalization logic
2020-12-11 03:48:57 -08:00
Michael Scire
49c1ace890
erpt: update for 11.0.0 ( closes #1218 )
2020-12-03 12:48:16 -08:00
Michael Scire
9586142e90
kern: tweak optimization settings for hot paths
2020-12-02 06:53:22 -08:00
Michael Scire
4faa6940ce
kern: more iterator adjustments
2020-12-02 06:53:22 -08:00
Michael Scire
8209a85205
hot path: just in case
2020-12-02 06:53:20 -08:00
Michael Scire
b9504f356f
microkernel: hot paths are pretty fucking hot
2020-12-02 06:53:20 -08:00
Michael Scire
c24ba715b4
KConditionVariable/KAddressArbiter: no need for global compare thread
2020-12-02 06:53:15 -08:00
SciresM
791b402320
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-12-02 06:52:42 -08:00
Michael Scire
8e2b81b55a
util: follow 90fd771 to its natural conclusion (generic base rbtree)
2020-10-26 16:03:08 -07:00
Michael Scire
c99184e155
IntrusiveRedBlackTree: refactor to add ->GetPrev(), ->GetNext() to BaseNode inheritors
2020-09-07 10:51:39 -07:00
Michael Scire
dc59a2d2e5
kern: build with -Wextra
2020-09-07 10:51:36 -07:00
Michael Scire
811cf0768a
kern: add KAddressArbiter::WaitIfEqual
2020-08-01 15:31:19 -07:00
Michael Scire
f019daae0e
sysupdater: implement content meta mounting
2020-06-28 19:41:09 -07:00
Michael Scire
7561db5ed2
exo2: Implement (untested) SmcDecryptDeviceUniqueData
2020-06-14 22:54:01 -07:00
Michael Scire
f47147653e
exo2: implement rest of main other than SetupSocProtections
2020-06-14 22:53:54 -07:00
Michael Scire
bc653fa855
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:53:53 -07:00
SciresM
b38939adb5
Implement support for parsing/interacting with NCAs. ( #942 )
...
* fs: implement support for interacting with ncas.
* spl: extend to use virtual keyslots
2020-05-12 15:44:19 -07:00
SciresM
7d041e853d
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-12 15:44:19 -07:00
Michael Scire
b8be9d0031
os: implement ReadWriteLock
2020-04-24 17:29:11 -07:00
SciresM
78653041d4
erpt: reimplement the sysmodule ( #875 )
...
* erpt: reimplement the sysmodule
* fatal: update for latest bindings
* erpt: amend logic for culling orphan attachments
2020-04-15 11:55:01 -07:00
Michael Scire
ddcf89e337
util: add bitflagset
2020-04-15 11:55:00 -07:00