Michael Scire
3ef8f0f73f
os: implement Barrier
2021-10-07 23:06:21 -07:00
Michael Scire
389018db64
os: implement SdkRecursiveMutex
2021-10-07 23:06:21 -07:00
Michael Scire
47bbff43c5
os: add unit tests for ExpandUnsignedValueToAscii
2021-10-07 23:06:20 -07:00
Michael Scire
c357cf7b87
os: implement ExpandUnsignedValueToAscii
...
Nintendo does this as of latest firmware.
It's desirable because it removes the only usage of util::SNPrintf() from os library,
which means programs which don't otherwise use SNPrintf do not need to link it into .text.
This saves ~0xD40 of .text as of time-of-commit when successfully unlinking, and e.g.
reduces our sm (and other modules) memory size by a page.
2021-10-07 23:06:20 -07:00
Michael Scire
6f53cbbe79
os: implement LightSemaphore
2021-10-07 23:06:20 -07:00
Michael Scire
41495ef51b
os: implement LightMessageQueue
2021-10-07 23:06:19 -07:00
Michael Scire
c00d83204f
os: refactor MessageQueue to use new MessageQueueHelper template
2021-10-07 23:06:19 -07:00
Michael Scire
9035b840a2
os: tweak LightEvent codegen
2021-10-07 23:06:19 -07:00
Michael Scire
3d6e8d5281
os: implement LightEvent
2021-10-07 23:06:19 -07:00
Michael Scire
57e380b2d6
os: implement ReadWriteBusyMutex
2021-10-07 23:06:18 -07:00
Michael Scire
6c98cd1ce2
os: implement BusyMutex
2021-10-07 23:06:18 -07:00
Michael Scire
7bb3153938
osdbg: implement thread info api
2021-09-19 10:35:27 -07:00
Michael Scire
fe21509991
ams-1.0.0: meso no longer optional, remove conditional logic
2021-09-06 16:32:47 -07:00
Michael Scire
07073a7580
sm: update to excise unnecessary library code
2021-05-12 09:09:41 -07:00
Michael Scire
2fe065b590
tipc/sm: various fixes for issues
2021-04-11 03:59:24 -07:00
Michael Scire
2542f282e0
sm: reimplement using tipc instead of cmif (probably broken, untested)
2021-04-11 03:59:24 -07:00
Michael Scire
9b47aa6e08
ams: prefer construct_at/destroy_at over placement new/explicit destructor
2021-04-11 03:59:04 -07:00
Michael Scire
1861791c1c
ams: remove TYPED_STORAGE() macro in favor of template
2021-04-11 03:59:03 -07:00
Michael Scire
b58f3d9174
ro: reduce memory usage by excising (unused) std::malloc
2021-02-02 12:16:21 -08:00
Michael Scire
5c40e39e27
os: fix missing logic in SdkReplyAndReceive
2021-01-13 10:41:30 -08:00
Michael Scire
f62751fe0f
os: implement 11.x SdkReplyAndReceive
2021-01-13 10:41:29 -08:00
Michael Scire
270766dbd1
strat: avoid using unique_lock in a few places
2021-01-13 10:41:29 -08:00
Michael Scire
803257776c
ams: save 0x11000 of memory in spl via minor tweaks
2021-01-13 10:41:28 -08:00
Michael Scire
159ca97a9d
os: remove completed TODO
2020-12-02 06:53:00 -08:00
Michael Scire
b09571b57e
os: do not use deprecated libnx ::virtmemReserve api
2020-12-02 06:53:00 -08:00
Michael Scire
41bcdc9c1f
gpio: implement more of server library for boot sysmodule client usage
2020-12-02 06:52:43 -08:00
Michael Scire
120c63b612
ddsf: implement namespace
2020-12-02 06:52:42 -08:00
Michael Scire
344a3265c0
os: fix building with new svc defs
2020-08-01 15:31:05 -07:00
Michael Scire
c5e4c7c921
kern: implement SvcWaitSynchronization
2020-08-01 15:31:01 -07:00
Michael Scire
3c7c4d8bff
fs: implement AccessLog, enable for File operations
2020-08-01 15:30:55 -07:00
Michael Scire
a1a68953e0
sysupdater: implement (untested) rest of the api
2020-06-28 19:41:10 -07:00
Michael Scire
f3ae89aa2b
os: use ported libnx mutex impl
2020-05-18 08:22:12 -07:00
SciresM
7d041e853d
Switch atmosphere's build target to C++20. ( #952 )
...
* ams: update to build with gcc10/c++20
* remove mno-outline-atomics
* ams: take care of most TODO C++20s
* fusee/sept: update for gcc10
* whoosh, your code now uses pre-compiled headers
* make: dependency fixes
2020-05-12 15:44:19 -07:00
Michael Scire
ea45d6e146
os: oh geez look at the time
2020-05-12 15:44:16 -07:00
Michael Scire
2e18a27f3a
os: bug fixes after re-review of rwlock code
2020-04-24 17:29:11 -07:00
Michael Scire
b8be9d0031
os: implement ReadWriteLock
2020-04-24 17:29:11 -07:00
Michael Scire
5a52014d1c
hos: change initialization API
...
This was needed to make stratosphere buildable with debugging on.
os:: assertions rely on GetCurrentThread() working, and this requires
the global os resource manager to be constructed. However, __appInit executes
before global constructors. We now require that hos::InitializeForStratosphere()
be called before anything else is done. This initializes the os resource manager,
sets the hos version for libnx, and may do more things in the future.
TODO: Consider replacing __appInit/__appExit with ams:: namespace functions in general,
and wrap them so that we guarantee hos::InitializeForStratosphere is called first, and
generally ensure a consistent stratosphere environment.
2020-04-24 17:29:08 -07:00
SciresM
c1fe12fcbd
pgl: Reimplement the pgl sysmodule ( #896 )
...
* pgl: add skeleton folder to stratosphere
* pgl: Add service interface for IShellInterface
* pgl: begin skeletoning shell service, implement two commands.
* pgl: Implement three more commands.
* pgl: implement bool tracking commands
* pgl: Implement TriggerApplicationSnapShotDumper
* pgl: implement InitializeProcessControlTask
* pgl: Implement pgl::srv::Initialize
* pgl: Implement main()
* pgl: Implement (Get)ShellEventObserver
* pgl: implement LaunchProgramFromHost, GetHostContentMetaInfo
* pgl: Implement ProcessControlTask
* settings: fix duplicate object name
* pgl: fix minor bugs in impl
2020-04-16 20:05:56 -07:00
Michael Scire
c190d46343
hos::Version: rename enum members
2020-04-15 11:55:01 -07:00
Michael Scire
a0cddf7c06
os: refactor/rewrite entire namespace.
2020-04-15 11:54:59 -07:00
SciresM
926d5a55d6
mem: implement most of StandardAllocator ( #860 )
...
This was tested using `https://github.com/node-dot-cpp/alloc-test ` plus a few other by-hand tests.
It seems to work for the case we care about (sysmodules without thread cache-ing).
External users are advised to build with assertions on and contact SciresM if you find issues.
This is a lot of code to have gotten right in one go, and it was written mostly after midnight while sick, so there are probably un-noticed issues.
2020-03-30 20:41:21 -07:00
Michael Scire
07684b2c65
stratosphere: fix building with latest libnx
2020-03-18 00:15:04 -07:00
Michael Scire
0c60930e33
os: add rngmanager
2020-03-18 00:15:02 -07:00
Michael Scire
45b839ec3a
Add architecture-specific guard for get tick
2020-03-18 00:15:02 -07:00
Michael Scire
8bcf34a172
os: implement Tick api, make build with -Werror
2020-03-18 00:15:01 -07:00
Michael Scire
93d4cbef94
libstrat: fix unconverted _WITH_ASSERTs
2020-03-02 19:51:07 -08:00
Michael Scire
1e9368c770
ams: revamp assertion system
2020-03-02 19:51:04 -08:00
Michael Scire
7ee4ae460e
find -exec sed -i'' -e 's/2018-2019 Atmo/2018-2020 Atmo/g' {} +
2020-03-02 19:50:40 -08:00
Michael Scire
58236db55e
util::IntrusiveList: assert member referencing is correct
2020-03-02 19:50:39 -08:00
Michael Scire
5e55beeda0
random: use TinyMT instead of XorShift
2019-12-10 19:17:50 -08:00
Michael Scire
5797d753bf
libstratosphere is now just one lib
2019-12-08 17:01:03 -08:00