Michael Scire
04ba43ff98
erpt: GetMmcErrorInfo, GetSdCard*Info
2023-10-27 16:22:09 -07:00
Michael Scire
f67c400289
erpt: begin SubmitFsinfo (SubmitMmcDetailInfo)
2023-10-27 16:22:09 -07:00
Michael Scire
c9a576e990
ncm: update for new 17.0.0 apis
2023-10-12 09:22:29 -07:00
Michael Scire
1465b1447b
libstrat: make build with new ncm/fs api changes (sysmodules probably fail to build)
2023-02-23 09:00:35 -07:00
Michael Scire
3cba51b85f
boot2: update for 16.0.0
2023-02-23 09:00:35 -07:00
Michael Scire
bbb682ea36
ncm: GetContentAccessibilities, GetContentInfo*
2022-10-12 09:15:44 -07:00
Michael Scire
a309a1273e
fs: fix memory leak when path is reallocated ( closes #1842 )
2022-04-29 16:14:17 -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
f2480c7b33
fs: fixup all OperateRange implementations
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
99fba44125
fs: update IStorage::Check functions for 14.0.0
2022-04-04 17:46:57 -07:00
SciresM
974526f708
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-04-04 17:46:55 -07:00
Michael Scire
7a0bfc4397
util: add pointer utils, use to constrain fs pointers
2022-04-04 17:46:54 -07:00
Michael Scire
0f8ae6e04b
fs: for my sanity, begin tracking version where code was last checked for accuracy
2022-04-04 17:46:53 -07:00
Michael Scire
726a7efddf
fs: fix out of bounds access when parsing directory paths
2022-03-23 13:45:36 -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
f037d60c75
strat: minor result/overflow check fixes
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
a9e2c6a9c0
fs: first pass at compressed storage (works on iridium with wip hac2l code)
2022-03-23 09:15:51 -07:00
Michael Scire
7a689dc29e
libs: add ongoing work to facilitate hactool rewrite
2022-03-23 09:15:48 -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
f6a7274b60
fix SubStorage copy ctor/= op for new shared_ptr member
2022-03-23 09:15:45 -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
2fd560c7d1
fs: allocations with mutex held must be unsafe
2022-03-23 09:15:42 -07:00
Michael Scire
5b4528214f
fs: implement newer allocator templates
2022-03-23 09:15:42 -07:00
Michael Scire
1e98da6d08
fssrv: skeleton server manager setup/registration
2022-03-23 09:15:42 -07:00
Michael Scire
3e33fb6361
strat: use m_ for member variables
2021-10-15 23:54:35 -07:00
Michael Scire
3b5f56ab9f
ams: replace most remaining operator & with std::addressof
2021-10-15 23:54:34 -07:00
Michael Scire
2905319d46
strat: use ams::Main() instead of main(argc, argv)
2021-10-07 23:06:29 -07:00
Michael Scire
8a8631ebcb
strat: build sysmodules with -Wextra/-Werror
2021-10-07 23:06:29 -07:00
Michael Scire
843dc8e521
libstrat: fix compilation without pre-compiled header/without lto
2021-10-07 23:06:28 -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
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
69a0ec03e9
strat: use consistent include style for lib headers
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
dc3f54a713
ams: std::optional -> util::optional
2021-07-12 01:59:51 -07:00
Michael Scire
156a5ceba2
libstrat: fix override operator new to be noexcept ( closes #1494 )
2021-06-08 08:09:21 -07:00
Michael Scire
1e1b5971ce
fs: properly implement OperateRangeWithBuffer, correct OperationId names.
2021-04-30 08:56:09 -07:00
Michael Scire
65a37c60cc
tio: implement SdCardObserver (finishes sysmodule)
2021-04-11 03:58:57 -07:00
Michael Scire
26369e34f1
ams: use util::SNPrintf over std:: (size/linker improvements)
2021-01-13 10:41:28 -08:00
Michael Scire
af44769939
fs: add ProgramIndexMapInfo
2020-12-11 03:48:58 -08:00
Michael Scire
fd5212f399
fs: update + consolidate path normalization logic
2020-12-11 03:48:57 -08:00
Michael Scire
1aa8a27f17
fs: move file storage to common
2020-12-11 03:48:57 -08:00
Michael Scire
8aa6f4253d
IStorage: rename access check helpers
2020-12-11 03:48:57 -08:00
Michael Scire
7c4ada41fc
fsa: *Impl -> Do*
2020-12-11 03:48:56 -08:00