Michael Scire
80cae0cc2d
kern: simplify random bitmap selection to match latest Nintendo logic
2021-10-25 17:00:59 -07:00
Michael Scire
e780171c78
kern: add (and use) generic KSystemControlBase
2021-10-25 15:07:24 -07:00
Michael Scire
0cbf726479
kern/test: add some scheduler tests (yields work correctly, all non-special priorities are cooperative/not pre-emptive
2021-10-25 13:54:33 -07:00
Michael Scire
a192ca5172
hos: whoops
2021-10-25 13:54:33 -07:00
Michael Scire
cbebfcb9e2
hos: better safe than sorry
2021-10-25 13:54:33 -07:00
Michael Scire
ec950d8320
hos: allow turning off ams extension hard-reqs for unit testing
2021-10-25 13:54:33 -07:00
Michael Scire
d562bb841d
kern: add toggleable support for 40-bit physaddr caps
2021-10-25 13:54:33 -07:00
Michael Scire
ff1760fac1
util: add trait/macro for is_constexpr_constructible
2021-10-25 13:54:33 -07:00
Michael Scire
7ea4737abb
test: add tests for SetMemoryPermission
2021-10-25 13:54:33 -07:00
Michael Scire
0a1ce6f079
kern/test: add wip qemu-virt board support to mesosphere
2021-10-25 13:54:33 -07:00
Michael Scire
10ed579c38
kernel_ldr: bring initial cache flush in line with Nintendo
2021-10-25 13:38:52 -07:00
Michael Scire
6ad3219656
kern: reflect nintendo cache management behavior for initial processes
2021-10-25 13:02:35 -07:00
Michael Scire
54dde406bc
kern: devirtualize KReadableEvent::Reset, KWorkerTask::DoWorkerTask
2021-10-24 20:41:38 -07:00
Michael Scire
fd187f952e
kern: enable lto for global instants (saves about a page in deduplicated code)
2021-10-24 17:06:43 -07:00
Michael Scire
8a661cee6e
kern: devirtualize KAutoObjectWithList::GetId()
2021-10-24 17:00:05 -07:00
Michael Scire
3e4acc62f3
kern: fix reorder-init in KHandleTable
2021-10-24 13:08:08 -07:00
Michael Scire
d0cd511c0e
kern: devirtualize most things that are free to devirtualize (see #1672 )
2021-10-24 13:04:31 -07:00
Michael Scire
aaa3770806
kern: optimize timespan -> tick codegen, improve .text layout
2021-10-24 01:16:24 -07:00
Michael Scire
89926f44c6
kern: use optimized red black tree finds for remaining holdouts
2021-10-23 21:58:48 -07:00
Michael Scire
436613401a
kern: devirtualize several KAutoObject functions
2021-10-23 21:13:26 -07:00
Michael Scire
2490bbf4f9
kern: KCacheHelper: better reflect nintendo coremask clearing logic
2021-10-23 17:44:30 -07:00
Michael Scire
71e4313d0c
kern: devirtualize remaining vcall for class token/dyncast
2021-10-23 16:04:04 -07:00
SciresM
36e4914be8
kern: avoid constexpr init for many objects (avoids unnecessary memory clear) ( #1668 )
2021-10-23 15:25:20 -07:00
Michael Scire
20716cb3de
kern: use new AtomicRef, use Atomic<bool>
2021-10-20 13:29:38 -07:00
Michael Scire
aed9d3f535
util: better match true std::atomic semantics
2021-10-20 11:02:17 -07:00
Michael Scire
c6d7174dd3
exo: use the fancy new optimal atomics
2021-10-20 08:52:54 -07:00
Michael Scire
d74f364107
kern/util: use custom atomics wrapper to substantially improve codegen
2021-10-19 15:24:15 -07:00
Michael Scire
52332e8d75
kern: use 13.0.0 revised KLightLock logic
2021-10-19 02:45:29 -07:00
Michael Scire
3fc695aff8
kern: fix capability check for thread priorities
2021-10-19 01:41:23 -07:00
Michael Scire
d3eb1268bc
kern: remove spurious assertion
2021-10-19 01:21:23 -07:00
Michael Scire
f3b532070b
kern: update scheduler for 13.0.0 change, fix some ctz/clz bugs
2021-10-19 01:20:28 -07:00
Michael Scire
42b6c2dd95
kern: fix use of plr vs plr_heap, fix close/unlock order in ArbitrateLock
2021-10-19 01:19:31 -07:00
Michael Scire
52c914afcc
ams-libs: move -Wno-invalid-offsetof to cxxflags, not cflags
2021-10-18 13:10:02 -07:00
Michael Scire
692247b26b
ams-libs: use nintendo_nx identifier for source file compat bpmp<->ccplex
2021-10-18 11:10:25 -07:00
Michael Scire
799a9a5f98
lr: fix EraseRedirection hang introduced by refactoring
2021-10-18 11:00:55 -07:00
Michael Scire
889d843718
ams: improve offsetof style consistency
2021-10-18 00:17:13 -07:00
Michael Scire
ec6d1a92ef
util: improve (and use) offsetof that's """standard compliant"""
2021-10-17 21:45:02 -07:00
Michael Scire
ad4c794aea
constexpr: resign ourselves to gcc dropping void -> T support
2021-10-17 02:39:16 -07:00
Michael Scire
96d3187f3e
kern: remove need for explicit reserved member in KAutoObject
2021-10-16 17:17:26 -07:00
Michael Scire
bfffe6b119
kern: devirtualize KAutoObject::DynamicCast<>()
...
This is an optimization that saves the most common type of virtual call in the kernel (DynamicCast)
by storing class token as a member, rather than getting it via virtual call every time.
This does not currently cost any memory space on 64-bit targets, due to pre-existing padding space.
This optimization can be turned off via a compile-time flag for accuracy.
2021-10-16 16:24:06 -07:00
Michael Scire
26c02e2019
kern/util: update structure layouts to match Nintendo (saves 0x10 per KThread/KSession)
2021-10-16 16:13:10 -07:00
Michael Scire
7805a3624e
fusee: accept non-zero rather than rejecting non-one for emummc enable
2021-10-16 12:26:17 -07:00
Michael Scire
64950dbd31
powctl: remove unused arm_neon header after last commit
2021-10-16 10:11:45 -07:00
Michael Scire
03efc31f9c
powctl: don't require arm64 arch for floating -> fixed conversion
2021-10-16 10:04:19 -07:00
Michael Scire
f7f83b4742
git subrepo push libraries
...
subrepo:
subdir: "libraries"
merged: "cf765c094"
upstream:
origin: "https://github.com/Atmosphere-NX/Atmosphere-libs "
branch: "master"
commit: "cf765c094"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
2021-10-15 23:55:53 -07:00
Michael Scire
8634ea0f7c
docs: add changelog for 1.2.0
2021-10-15 23:54:25 -07:00
Michael Scire
2541f6dd71
tipc: implement special-case templating used by 13.0.0 pgl
2021-10-15 21:23:55 -07:00
Michael Scire
ff5f376c33
tipc: enable named-thread dispatch
2021-10-15 19:59:29 -07:00
Michael Scire
d1bc1a5c57
boot: update for 13.0.0/aula parameter changes ( closes #1477 )
2021-10-15 19:03:11 -07:00
Michael Scire
990daec3a2
powctl: integrate 13.0.0 changes (aula params not done yet)
2021-10-15 16:30:27 -07:00
Michael Scire
c04a262d49
boot: update display logic for 13.0.0 changes
2021-10-14 19:48:13 -07:00
Michael Scire
7e536f74ae
strat: fix some mitm server management logic
2021-10-14 00:40:43 -07:00
Michael Scire
891fa32bf1
tipc/sm: update more fully for 13.0.0 changes
2021-10-13 23:50:57 -07:00
Michael Scire
ca25a884b5
tipc: add additional logic from 13.0.0
2021-10-12 00:57:54 -07:00
Michael Scire
0189c5f1e6
sm/tipc: minor cleanup
2021-10-12 00:20:21 -07:00
Michael Scire
124a1a1ea0
sm: update for 13.0.0, optimize layout to reduce storage size.
2021-10-11 22:16:37 -07:00
Michael Scire
82d07e04aa
strat: don't force fs globals to link into every process
2021-10-11 22:16:12 -07:00
Michael Scire
bd1bcdf52b
sf: prevent emitting mitm/defer code unless server in process supports it
2021-10-11 19:01:27 -07:00
Michael Scire
d27fe8a229
util: fix consteval CountTrailingZeroes impl
2021-10-11 13:15:11 -07:00
Michael Scire
1c5edaf4fb
fatal: use align up for width calc
2021-10-11 12:41:43 -07:00
Michael Scire
3cd8ec509c
boot: probably should have done this a few months ago huh
2021-10-11 01:01:31 -07:00
Michael Scire
3bee3e77ca
ams: bump api verrsion pre-emptively to 1.2.0
2021-10-11 01:00:07 -07:00
Michael Scire
5708bb1557
ams: allow bootloader to merely approximate correct target firmware
2021-10-11 00:54:17 -07:00
Michael Scire
d41de21753
fusee: fix loader stub
2021-10-11 00:19:47 -07:00
Michael Scire
06f68a8159
loader: refactor to remove fake namespaces
2021-10-10 21:37:29 -07:00
Michael Scire
d9dc04318d
loader: refactor ro manager/improve accuracy
2021-10-10 18:22:32 -07:00
Michael Scire
d8a36e39f2
spl: refactor for accuracy/move into libstrat
2021-10-10 12:57:36 -07:00
Michael Scire
bc96ebb74c
os: add FlushDataCache
2021-10-10 00:33:52 -07:00
Michael Scire
a595c232b9
strat: use m_ for member variables
2021-10-10 00:14:06 -07:00
Michael Scire
ce28591ab2
svc: use m_ for member variables
2021-10-09 16:14:00 -07:00
Michael Scire
00116450c3
sdmmc: use m_ for member variables
2021-10-09 15:59:59 -07:00
Michael Scire
179d91a563
kern: fix some lingering non-m_ member variables
2021-10-09 15:46:04 -07:00
Michael Scire
67a45c97ef
exo/vapours: refactor member variables to m_ over this->
2021-10-09 15:40:06 -07:00
Michael Scire
5a38311ebf
libstrat: remove lingering debugging edits
2021-10-09 14:51:44 -07:00
Michael Scire
1ab0bd1765
ams: replace most remaining operator & with std::addressof
2021-10-09 14:49:53 -07:00
Michael Scire
ce8aacef21
settings: fix correctness issue in LazyFileAccessor
2021-10-09 14:20:37 -07:00
Michael Scire
ec65c39d17
strat: refactor address taking of form &var[...]
2021-10-09 12:45:31 -07:00
Michael Scire
b0e520112b
strat: always use explicit result namespacing
2021-10-09 10:36:21 -07:00
Michael Scire
14c8801259
sm: remove apm:p compatibility hack
...
Homebrew which would hang when doing this were compiled with libnx < 3.0.0.
Homebrew which is compiled with < 3.0.0 cannot send messages to sm, because
of the incorrect serialization problem (which required homebrew recompile when
12.0.0 released).
Thus, there is no case where this makes a difference.
2021-10-08 15:25:52 -07:00
Michael Scire
960ba52a43
kern: put rela in bss
...
NOTE: This saves ~0x4000 of space at the cost of crimes against the linker script.
2021-10-08 12:48:53 -07:00
Michael Scire
fba962ef11
kern: clean up mesosphere buildscript
2021-10-08 12:32:23 -07:00
Michael Scire
9def4b5925
kern: tidy up capability calc
2021-10-08 12:29:41 -07:00
Michael Scire
578843f92c
fusee: fix loader stub size alignment
2021-10-08 11:18:12 -07:00
Michael Scire
e5cce0f61c
git subrepo push libraries
...
subrepo:
subdir: "libraries"
merged: "0a4c2759a"
upstream:
origin: "https://github.com/Atmosphere-NX/Atmosphere-libs "
branch: "master"
commit: "0a4c2759a"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
2021-10-07 23:38:51 -07:00
Michael Scire
d14290e357
os: fix mutex push/pop prototypes
2021-10-07 23:38:15 -07:00
Michael Scire
812acb8b68
git subrepo push libraries
...
subrepo:
subdir: "libraries"
merged: "80d72af9f"
upstream:
origin: "https://github.com/Atmosphere-NX/Atmosphere-libs "
branch: "master"
commit: "80d72af9f"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
2021-10-07 23:07:34 -07:00
Michael Scire
229651fe72
ams.mitm: avoid using std::unordered_map, it manifests exception code
2021-10-07 22:59:16 -07:00
Michael Scire
41a4bf53f6
cs: prevent exceptions from manifesting
2021-10-07 19:48:40 -07:00
Michael Scire
888b35833e
boot: save 12KB
2021-10-07 19:33:07 -07:00
Michael Scire
afccc35e79
erpt: save 8KB
2021-10-07 19:14:31 -07:00
Michael Scire
e7ca22abd7
jpegdec: save 128KB of memory
2021-10-07 18:03:11 -07:00
Michael Scire
ffc143860b
strat: use ams::Main() instead of main(argc, argv)
2021-10-07 17:44:54 -07:00
Michael Scire
6a53726833
strat: build sysmodules with -Wextra/-Werror
2021-10-06 23:22:54 -07:00
Michael Scire
e8f1efd01b
libstrat: fix compilation without pre-compiled header/without lto
2021-10-06 17:58:42 -07:00
Michael Scire
7ca83c9d3b
libstrat: enable -Wextra, -Werror
...
This caught an embarrassingly large number of bugs.
2021-10-06 15:20:48 -07:00
Michael Scire
e1fbf27398
os: fix MapTransferMemory output not being set
2021-10-06 12:07:26 -07:00
Michael Scire
4866e80769
svc: refactor/rename MemoryInfo fields
2021-10-05 15:16:54 -07:00
Michael Scire
d9159f81d2
ro: double whoops
2021-10-05 12:40:58 -07:00
Michael Scire
306f413874
ro/dmnt: fix process address space detection
2021-10-05 12:34:09 -07:00
Michael Scire
719ead824e
strat: remove map namespace, svc: add address space defs
2021-10-05 12:22:34 -07:00