Michael Scire
a65b6df8d2
os: implement MemoryHeapManager, SetMemoryAttribute
2022-06-10 22:36:03 -07:00
Michael Scire
20d200471d
kern: optimize postfix-compare to prefix-compare, result logic is identical but breaks earlier in some paths
2022-06-07 23:49:31 -07:00
Michael Scire
5f2d713fe4
kern: mea culpa (some time since 7.x)
2022-06-07 23:40:32 -07:00
Michael Scire
36bdb83cfc
util: prevent optimizer from removing endian-swapped writes
2022-06-05 22:57:18 -07:00
Michael Scire
a975689c59
ams: address some warnings when building with gcc-12
2022-06-05 22:57:08 -07:00
Michael Scire
a809e23320
lr: update capacity constants to reflect 12.0.0 changes
2022-05-26 18:44:12 -07:00
Michael Scire
4db485083b
strat: update for code changes found in boot ( closes #1797 )
2022-05-05 17:45:55 -07:00
Michael Scire
e96972c939
git subrepo push libraries
...
subrepo:
subdir: "libraries"
merged: "b91294d3b"
upstream:
origin: "https://github.com/Atmosphere-NX/Atmosphere-libs "
branch: "master"
commit: "b91294d3b"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
2022-04-29 16:15:06 -07:00
Michael Scire
3545c0aac2
ams: fs accuracy fixes, bump to 1.3.2
2022-04-29 16:14:01 -07:00
Michael Scire
d85875b910
os: fix various regressions since 1.3.1
2022-04-29 15:46:55 -07:00
Michael Scire
b1367942a2
os: fix minor bug (and simplify) MapProcessCodeMemory
2022-04-18 01:43:49 -07:00
Michael Scire
c2c0a2e169
ro/os: use os primitives for MapProcessCodeMemory
2022-04-18 01:39:22 -07:00
Michael Scire
f5052b4bca
loader: update for changes in 14.0.0
2022-04-17 20:11:05 -07:00
Michael Scire
70d67bb115
loader: use os apis for interacting with process memory
2022-04-17 18:51:36 -07:00
Michael Scire
9056e0b05f
strat: fix linux clang build
2022-04-17 14:01:03 -07:00
Michael Scire
895b6d0470
optional: add c++23 monadic interface
2022-04-17 12:17:25 -07:00
Michael Scire
dfba595cdc
fs: fix null check in AesXtsStorageExternal
2022-04-16 12:28:40 -07:00
Michael Scire
175a34da43
os: silence a maybe-uninit warning
2022-04-16 12:28:21 -07:00
Michael Scire
02b126c2be
os: refactor multi wait apis to better match Nintendo's latest implementation
2022-04-12 16:47:36 -07:00
Michael Scire
b45671fd35
fs: QueryEntry uses NonSecure buffers
2022-04-08 11:23:39 -07:00
Michael Scire
106599895d
fs: fix memory leak when path is reallocated ( closes #1842 )
2022-04-08 11:02:17 -07:00
Michael Scire
80154b0a54
os: broadcast, not signal, on release more than 1 sema
2022-04-07 12:17:13 -07:00
Michael Scire
b52e44e798
git subrepo push libraries
...
subrepo:
subdir: "libraries"
merged: "590cdaf02"
upstream:
origin: "https://github.com/Atmosphere-NX/Atmosphere-libs "
branch: "master"
commit: "590cdaf02"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
2022-04-04 17:47:56 -07:00
Michael Scire
72baa4ff18
ams: add enum recognition for 14.1.0
2022-04-04 17:44:56 -07:00
Michael Scire
442656899f
util: update some bit utility logic
2022-04-03 10:51:46 -07:00
Michael Scire
d7f89a0c31
fs: update signature for VerifySign1
2022-04-01 21:06:26 -07:00
Michael Scire
2e6223d9d0
fssystem: add unique lock apis
2022-03-28 14:29:22 -07:00
Michael Scire
28f11a86fd
fs: update romfs types
2022-03-28 13:57:06 -07:00
Michael Scire
a8b52dc123
fs: remove dead code
2022-03-28 08:37:08 -07:00
Michael Scire
9b47ddf01f
fs: update LocalFileSystem
2022-03-28 01:33:40 -07:00
Michael Scire
0fbf007bcf
fs: fixup all OperateRange implementations
2022-03-28 00:54:10 -07:00
Michael Scire
4ad8dad416
os: add DetachIoRegionHandle
2022-03-28 00:00:36 -07:00
Michael Scire
8e258bde9d
util: LockFreeAtomicType (for time)
2022-03-27 20:15:10 -07:00
Michael Scire
c0d5140ef0
strat: add windows socket api, linux/macos TODO
2022-03-27 14:36:31 -07:00
Michael Scire
1bef1b58d4
fs: also update comment, for locking
2022-03-26 15:29:38 -07:00
Michael Scire
07cd682460
fs: fix inverted optional-lock condition
2022-03-26 15:28:40 -07:00
Michael Scire
e5c3d264ec
fs: implement new 14.0.0 spl-ctr dispatch semantics
2022-03-26 15:21:12 -07:00
Michael Scire
bbf22b4c60
ams: globally prefer R_RETURN to return for ams::Result
2022-03-26 14:48:33 -07:00
Michael Scire
dd78ede99f
ams: use R_SUCCEED, R_THROW globally
2022-03-26 00:14:36 -07:00
Michael Scire
a4a2cc2218
fs: update IStorage::Check functions for 14.0.0
2022-03-25 23:29:36 -07:00
Michael Scire
5ffbed1bee
fs: update a few loose missed results
2022-03-25 10:02:55 -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
817ad8f98d
util: pointer traits only if <memory>/stratosphere
2022-03-24 18:24:19 -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
0da15a30fd
git subrepo push libraries
...
subrepo:
subdir: "libraries"
merged: "726a7efdd"
upstream:
origin: "https://github.com/Atmosphere-NX/Atmosphere-libs "
branch: "master"
commit: "726a7efdd"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
2022-03-23 13:45:59 -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
027f3b4911
git subrepo push libraries
...
subrepo:
subdir: "libraries"
merged: "af48924e5"
upstream:
origin: "https://github.com/Atmosphere-NX/Atmosphere-libs "
branch: "master"
commit: "af48924e5"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
2022-03-23 11:25:46 -07:00
Michael Scire
3fff114b14
crypto: fix aes-128 dec on arm64/cortex-a57
2022-03-23 11:24:43 -07:00
Michael Scire
f23f490cb4
strat: fix clang build
2022-03-23 10:39:20 -07:00
Michael Scire
b1a4a0db67
git subrepo push libraries
...
subrepo:
subdir: "libraries"
merged: "d97cdde1a"
upstream:
origin: "https://github.com/Atmosphere-NX/Atmosphere-libs "
branch: "master"
commit: "d97cdde1a"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
2022-03-23 09:17:52 -07:00
Michael Scire
01fd324d4f
os/dd: add missing semicolon to new cache logic
2022-03-23 09:10:50 -07:00
Michael Scire
f95bdb87a0
exo: right, Mariko* is a wiki-ism
2022-03-23 09:10:50 -07:00
Michael Scire
91d3d242f5
exo: update for new dram ids
2022-03-23 09:10:50 -07:00
Michael Scire
383fc2cc99
kern: codegen tweaks, now that we're no longer -Os
2022-03-23 09:10:50 -07:00
Michael Scire
1ca2f61527
kern: good night sweet prince
2022-03-23 09:10:50 -07:00
Michael Scire
cdc619a8a6
kern: on second thought, gcc built ins are for chumps
2022-03-23 09:10:50 -07:00
Michael Scire
ff07ba4201
kern: implement revised IPI/SGI semantics
2022-03-23 09:10:50 -07:00
Michael Scire
9d89835ff8
kern: update for new hw maintenance semantics
2022-03-23 09:10:50 -07:00
Michael Scire
6e17317d5d
kern: implement new thread context/fpu semantics
2022-03-23 09:10:50 -07:00
Michael Scire
401047f603
kern: implement additional randomness in KPageHeap allocations
2022-03-23 09:10:50 -07:00
Michael Scire
24739f245e
kern: enforce end of dram == end of partitions (move our probably outdated KTraceBuffer to new location)
2022-03-23 09:10:50 -07:00
Michael Scire
8cb3cfd835
kern: add new KCapability checks before creating process
2022-03-23 09:10:50 -07:00
Michael Scire
14e768cd10
kern: add InfoType_IsSvcPermitted
2022-03-23 09:10:50 -07:00
Michael Scire
ef1b67b87b
kern: enforce maximum secure region size
2022-03-23 09:10:50 -07:00
Michael Scire
8ef6c49d30
kern: print kernel backtrace on panic
2022-03-23 09:10:50 -07:00
Michael Scire
a89c5dd5d7
ncm: hot take, uninitialized data bad
2022-03-23 09:10:50 -07:00
Michael Scire
dfcb5005d2
fs/sprof/build: fix minor issues
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
81005fa3f8
pgl: style nitpick
2022-03-23 09:10:50 -07:00
Michael Scire
60d78bbf75
pgl: hook up logic for enabling extra system threads
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
86f98e49c7
sf: add another sanity assert
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
77b3bfcd16
sprofile: fix/simplify import count calculation
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
dc643daaa7
kern: update version (note: actual 14-kernel diff/impl todo)
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
0cfc93d423
sprofile: update for 14.0.0 (orphaned profiles now deleted on import)
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
000713186f
windows: link libgcc/libstdc++ statically
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
9866285f0e
util: update function dtors, update gitignore
2022-03-21 17:21:44 -07:00
Michael Scire
9911c44670
lz4: update to git-master
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