Michael Scire
01848bf7ac
os: fix various regressions since 1.3.1
2022-04-29 16:14:23 -07:00
Michael Scire
ee0cb14b97
os: fix minor bug (and simplify) MapProcessCodeMemory
2022-04-29 16:14:22 -07:00
Michael Scire
2702120d79
ro/os: use os primitives for MapProcessCodeMemory
2022-04-29 16:14:22 -07:00
Michael Scire
e5051619b6
loader: update for changes in 14.0.0
2022-04-29 16:14:21 -07:00
Michael Scire
aecf739a7c
loader: use os apis for interacting with process memory
2022-04-29 16:14:21 -07:00
Michael Scire
1ac83a92e5
strat: fix linux clang build
2022-04-29 16:14:20 -07:00
Michael Scire
91ef9bb92c
fs: fix null check in AesXtsStorageExternal
2022-04-29 16:14:19 -07:00
Michael Scire
0841242371
os: silence a maybe-uninit warning
2022-04-29 16:14:19 -07:00
Michael Scire
738f57cd37
os: refactor multi wait apis to better match Nintendo's latest implementation
2022-04-29 16:14:18 -07:00
Michael Scire
a6c096e833
fs: QueryEntry uses NonSecure buffers
2022-04-29 16:14:18 -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
6d0e0bc135
os: broadcast, not signal, on release more than 1 sema
2022-04-29 16:14:17 -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
0a6fec909b
fs: update signature for VerifySign1
2022-04-04 17:47:03 -07:00
Michael Scire
1aa71e6e44
fssystem: add unique lock apis
2022-04-04 17:47:03 -07:00
Michael Scire
08787303a2
fs: update romfs types
2022-04-04 17:47:02 -07:00
Michael Scire
8127091934
fs: remove dead code
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
b4da4ddb7e
os: add DetachIoRegionHandle
2022-04-04 17:47:01 -07:00
Michael Scire
bcaf3e8cd9
util: LockFreeAtomicType (for time)
2022-04-04 17:47:00 -07:00
Michael Scire
d47c54c70b
strat: add windows socket api, linux/macos TODO
2022-04-04 17:47:00 -07:00
Michael Scire
87f3e02042
fs: also update comment, for locking
2022-04-04 17:46:59 -07:00
Michael Scire
08c3748b87
fs: fix inverted optional-lock condition
2022-04-04 17:46:59 -07:00
Michael Scire
45db9a519b
fs: implement new 14.0.0 spl-ctr dispatch semantics
2022-04-04 17:46:58 -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
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
05fdf2ae75
fs: update HashGeneratorFactorySelector to reflect 14.0.0
2022-04-04 17:46:55 -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
2c630d5514
fs: fix removed include
2022-04-04 17:46:53 -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
652828c4f3
strat: fix clang build
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
a3b74aece9
kern: add InfoType_IsSvcPermitted
2022-03-23 09:16:04 -07:00
Michael Scire
797a6deaf3
ncm: hot take, uninitialized data bad
2022-03-23 09:16:03 -07:00
Michael Scire
d2163e1546
fs/sprof/build: fix minor issues
2022-03-23 09:16:03 -07:00
Michael Scire
396a63e5bb
boot2: launch omm before am
2022-03-23 09:16:02 -07:00
Michael Scire
7f987e17f3
pgl: style nitpick
2022-03-23 09:16:02 -07:00
Michael Scire
02056cdc00
pgl: hook up logic for enabling extra system threads
2022-03-23 09:16:01 -07:00
Michael Scire
e5463b4272
pm: hook up the new libnx apis
2022-03-23 09:16:00 -07:00
Michael Scire
6980519e04
pm: loosen restriction on resource limit boost
2022-03-23 09:16:00 -07:00
Michael Scire
2e64ec3dd4
erpt: update id map
2022-03-23 09:16:00 -07:00
Michael Scire
5b408b490e
sf: add another sanity assert
2022-03-23 09:15:59 -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
37792803f9
sprofile: fix/simplify import count calculation
2022-03-23 09:15:59 -07:00
Michael Scire
7325bd608e
libstrat: misc fixes for unused arg warnings
2022-03-23 09:15:58 -07:00
Michael Scire
a1aea1cb48
fatal: update for new 14.0.0 command
2022-03-23 09:15:58 -07:00
Michael Scire
ab25a959f2
pm/kern: update for 14.0.0
2022-03-23 09:15:57 -07:00
Michael Scire
1cee34d0de
sprofile: update for 14.0.0 (orphaned profiles now deleted on import)
2022-03-23 09:15:57 -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
b8be94ed7e
strat: only include windows.h in translation units where actually needed
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
c895603abf
fs: add indirection to raw storage open, for hac2l
2022-03-23 09:15:55 -07:00
Michael Scire
8b773a8f33
lz4: update to git-master
2022-03-23 09:15:54 -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
96aa83a60b
fs: fix inverted alignment determination in compressed storage
2022-03-23 09:15:53 -07:00
Michael Scire
a759a00e96
fs: fix locking in FileSystemBufferManager
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
8785a53d2b
fs: move bitmap classes out of save::
2022-03-23 09:15:52 -07:00
Michael Scire
b1b21adcb3
fs: fix missing mutex acquire in compressed storage invalidate/find
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
bdd66fb5ea
symbols: use same strategy on windows as on macOS
2022-03-23 09:15:51 -07:00
Michael Scire
071f9fb2f0
use cxxabi for demangling on linux/windows
2022-03-23 09:15:50 -07:00
Michael Scire
19002a652e
Implement working macOS backtrace symbolization
2022-03-23 09:15:50 -07:00
Michael Scire
0cefca205f
os: add working stack logic for macOS
2022-03-23 09:15:50 -07:00
Michael Scire
d5b858f5ba
fix stack getting on linux, add test
2022-03-23 09:15:50 -07:00
Michael Scire
097e04ab54
diag: fix typo in hos-specific backtrace getter
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
cdce4416e0
remove leftover debug print
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
eb768f0e86
fs: add just in case bounds checking to linux/macos dirent read
2022-03-23 09:15:47 -07:00
Michael Scire
5131256383
add basic tests for os::Event/SystemEvent functionality
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
c5ae3c2449
erpt: add automatic report cleanup mechanism on boot ( closes #1795 )
2022-03-23 09:15:46 -07:00
Michael Scire
936b36fc6e
ams_mitm: update to use new NcaFileSystemDriver intf
2022-03-23 09:15:45 -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
9b2c279d81
fs: add Sha256HashGenerator, LZ4 decompressor
2022-03-23 09:15:44 -07:00
Michael Scire
cdf7e0cbe5
fs: remove now unused StorageOption
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
78797b87d7
fssystem: revise allocator logic 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
c8621b9a5a
fssrv: skeleton more program registry logic
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
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
38bdd8279d
fssrv: add placeholder for ipc interface
2022-03-23 09:15:41 -07:00