Michael Scire
a4a2cc2218
fs: update IStorage::Check functions for 14.0.0
2022-03-25 23:29:36 -07:00
Michael Scire
ec44eaa263
fs: update nca drivers (and dependents/callees) for 14.0.0 changes
2022-03-25 09:48:24 -07:00
Michael Scire
20e53fcd82
fs: update HashGeneratorFactorySelector to reflect 14.0.0
2022-03-24 21:57:37 -07:00
SciresM
64c6ef2de7
fs: reduce path size 0x28 -> 0x18
...
This implements two optimizations on fs::Path, which N added in 12.0.0.
The current structure looks like:
```cpp
struct Path {
const char *m_str; // Points to the read-only path string
char *m_write_buffer_buffer; // Part of std::unique_ptr<char[], ams::fs::impl::Deleter>
ams::fs::impl::Deleter m_write_buffer_deleter; // Parse of std::unique_ptr<char[], ams::fs::impl::Deleter>, stores the size of the buffer.
size_t m_write_buffer_length; // Copy of the write buffer's size accessible to the Path() structure.
bool m_is_normalized; // Whether the path buffer is normalized
};
```
This is pretty wasteful. The write buffer size is stored twice, wasting 8 bytes, because one copy of the size isn't accessible to the path.
In addition, due to alignment, the bool wastes 7 padding bytes.
This commit:
* Encodes normalized in the low bit of the write buffer length, saving 8 bytes.
* Use a custom WriteBuffer class rather than generic unique_ptr, to avoid needing to store the WriteBuffer twice.
These each save 8 bytes, for a final size of 0x18 rather than 0x28.
2022-03-24 20:22:47 -07:00
Michael Scire
dfa475a769
util: add pointer utils, use to constrain fs pointers
2022-03-24 16:21:03 -07:00
Michael Scire
141ae5c7ab
fs: fix removed include
2022-03-24 13:31:49 -07:00
Michael Scire
4646581e93
fs: for my sanity, begin tracking version where code was last checked for accuracy
2022-03-24 08:43:40 -07:00
Michael Scire
6f54ab5716
fs: fix out of bounds access when parsing directory paths
2022-03-23 13:38:34 -07:00
Michael Scire
a89c5dd5d7
ncm: hot take, uninitialized data bad
2022-03-23 09:10:50 -07:00
Michael Scire
07f91f0a83
boot2: launch omm before am
2022-03-23 09:10:50 -07:00
Michael Scire
247852db3a
pm: hook up the new libnx apis
2022-03-23 09:10:50 -07:00
Michael Scire
74fddf667a
pm: loosen restriction on resource limit boost
2022-03-23 09:10:50 -07:00
Michael Scire
027242e909
erpt: update id map
2022-03-23 09:10:50 -07:00
Michael Scire
3579797309
sf: add new debug-interface-id in cmif out header
2022-03-23 09:10:50 -07:00
Michael Scire
fa98bf9434
libstrat: misc fixes for unused arg warnings
2022-03-23 09:10:50 -07:00
Michael Scire
e975784179
fatal: update for new 14.0.0 command
2022-03-23 09:10:50 -07:00
Michael Scire
e05df99342
pm/kern: update for 14.0.0
2022-03-23 09:10:50 -07:00
Michael Scire
588d761615
exo/fusee: first pass at updating enums for 14.0.0
2022-03-23 09:10:50 -07:00
Michael Scire
320a946fc7
ncm: update client code to better reflect latest sysupdate
2022-03-21 17:21:44 -07:00
Michael Scire
ca142889c4
strat: only include windows.h in translation units where actually needed
2022-03-21 17:21:44 -07:00
Michael Scire
c35114bacc
fs: utilities for hac2l to print gc headers
2022-03-21 17:21:44 -07:00
Michael Scire
2d984822c6
fs: add gc validation wrappers for hac2l
2022-03-21 17:21:44 -07:00
Michael Scire
32d443977e
fs: add indirection to raw storage open, for hac2l
2022-03-21 17:21:44 -07:00
Michael Scire
741efd04ec
strat: minor result/overflow check fixes
2022-03-21 17:21:44 -07:00
Michael Scire
e13b81aa9e
fs: revise allocation-fail result names
2022-03-21 17:21:44 -07:00
Michael Scire
11e4bed199
strat: revise fs unsupported operation results, add overflow utils
2022-03-21 17:21:44 -07:00
Michael Scire
ba4e7c5866
fs: fix inverted alignment determination in compressed storage
2022-03-21 17:21:44 -07:00
Michael Scire
da1b24b9b5
fs: fix locking in FileSystemBufferManager
2022-03-21 17:21:44 -07:00
Michael Scire
cb3d20ef79
fs: fix clang-build, os: StackGuardManager
2022-03-21 17:21:44 -07:00
Michael Scire
be9338eb33
fs: move bitmap classes out of save::
2022-03-21 17:21:44 -07:00
Michael Scire
7a69723021
fs: fix missing mutex acquire in compressed storage invalidate/find
2022-03-21 17:21:44 -07:00
Michael Scire
d638bbbb62
fs: first pass at compressed storage (works on iridium with wip hac2l code)
2022-03-21 17:21:44 -07:00
Michael Scire
df631d74f0
fssrv: add ExternalKeyManager (rights-id crypto) for hac2l
2022-03-21 17:21:44 -07:00
Michael Scire
646f84bad1
abort/error: print backtrace, abuse templates, overhaul result/diag (macos not done yet)
2022-03-21 17:21:44 -07:00
Michael Scire
13697fa921
libs: add ongoing work to facilitate hactool rewrite
2022-03-21 17:21:44 -07:00
Michael Scire
706b8492fd
libs: begin adding capacity for doing crypto on generic os (using externally-preset keys)
2022-03-21 17:21:44 -07:00
Michael Scire
64a97576d0
ams: support building unit test programs on windows/linux/macos
2022-03-21 17:21:44 -07:00
Michael Scire
9a38be201a
erpt: add automatic report cleanup mechanism on boot ( closes #1795 )
2022-03-17 00:31:38 -07:00
Michael Scire
2b6719ec25
ams_mitm: update to use new NcaFileSystemDriver intf
2022-02-21 15:17:17 -08:00
Michael Scire
3f6010b4dc
fix SubStorage copy ctor/= op for new shared_ptr member
2022-02-21 15:17:17 -08:00
Michael Scire
01f7f567b9
fs: add Sha256HashGenerator, LZ4 decompressor
2022-02-21 15:17:17 -08:00
Michael Scire
a2aec363d7
fs: remove now unused StorageOption
2022-02-21 15:17:17 -08:00
Michael Scire
52296fc2dd
fs: revise NcaFileSystemDriver for latest semantics
2022-02-21 15:17:17 -08:00
Michael Scire
ccf29a1302
fssystem: revise allocator logic for latest semantics
2022-02-21 15:17:17 -08:00
Michael Scire
28ea6555f8
fssrv: flesh out the program registry
2022-02-21 15:17:17 -08:00
Michael Scire
e8d14eb77d
fssrv: skeleton more program registry logic
2022-02-21 15:17:17 -08:00
Michael Scire
33701bb387
fssrv: add skeleton getters for service object sf::SharedPointers
2022-02-21 15:17:17 -08:00
Michael Scire
f3dbdc2391
fs: allocations with mutex held must be unsafe
2022-02-21 15:17:17 -08:00
Michael Scire
64b4cc25fc
fs: implement newer allocator templates
2022-02-21 15:17:17 -08:00
Michael Scire
ace409ccec
fssrv: skeleton server manager setup/registration
2022-02-21 15:17:17 -08:00