Commit Graph

700 Commits

Author SHA1 Message Date
Michael Scire
712c21a744 gpio: really not sure how this works before, lol 2023-02-23 09:00:26 -07:00
Michael Scire
5ba19935cb erpt: fix multiple issues with automatic report cleanup (thanks @yellows8)
* Setting retrieval was performed before the call that used the setting.
* Call to detect number of files passed incomplete path and was guaranteed to fail.
* Call to delete reports passed incomplete path and was guaranteed to do nothing.
2023-01-24 14:39:17 -07:00
Michael Scire
b2232894f3 ncm: update enums, refactor comparison operators 2022-10-18 11:10:46 -07:00
Michael Scire
363fba0cf3 lr: new AOC commands use MapAlias for paths... 2022-10-12 09:15:52 -07:00
Michael Scire
cfe81a7eb3 kern: update for new device map semantics 2022-10-12 09:15:49 -07:00
Michael Scire
d408819335 os: update os namespace for 15.0.0, loader/ro: update to use csrng, spl: bump max sessions 2022-10-12 09:15:47 -07:00
Michael Scire
9d15378a54 boot2: launch new eth sysmodule after bsdsockets 2022-10-12 09:15:47 -07:00
Michael Scire
c75c993bf3 erpt: update IDs for 15.0.0 2022-10-12 09:15:47 -07:00
Michael Scire
e3da8b8cb1 ncm: update for new add on content/attr changes 2022-10-12 09:15:45 -07:00
Michael Scire
07494b1d42 lr: add support for location resolver disable commands 2022-10-12 09:15:45 -07:00
Michael Scire
bbb682ea36 ncm: GetContentAccessibilities, GetContentInfo* 2022-10-12 09:15:44 -07:00
Michael Scire
101b637afd ams/fuse: update version numbers, update DramId read logic 2022-10-12 09:15:44 -07:00
Michael Scire
11cad64de1 diag: fix process name cache 2022-10-12 09:15:43 -07:00
Michael Scire
f660acb0cd fs/emummc: fix DirectoryRedirectionFileSystem not stripping prefix 2022-10-12 09:15:43 -07:00
Michael Scire
5e73321aec os: pthread_yield is deprecated, don't use it on linux 2022-10-12 09:15:41 -07:00
Michael Scire
d421817c86 os: silence warning building with gcc 12 on windows 2022-10-12 09:15:41 -07:00
Michael Scire
0ae75a5fd4 fs: add extension GetEntryList to AesCtrCounterExtendedStorage 2022-10-12 09:15:40 -07:00
Michael Scire
83aaf4904b os: fix whoops in SetMemoryPermission on windows 2022-10-12 09:15:40 -07:00
Michael Scire
019a7600c7 os: implement MemoryHeapManager, SetMemoryAttribute 2022-10-12 09:15:40 -07:00
Michael Scire
932db3b92e ams: address some warnings when building with gcc-12 2022-10-12 09:15:38 -07:00
Michael Scire
696cfb4862 lr: update capacity constants to reflect 12.0.0 changes 2022-10-12 09:15:37 -07:00
Michael Scire
95b3d39918 strat: update for code changes found in boot (closes #1797) 2022-10-12 09:15:37 -07:00
Michael Scire
b91294d3b9 ams: fs accuracy fixes, bump to 1.3.2 2022-04-29 16:14:24 -07:00
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