Michael Scire
6538554485
libstratosphere: add ReadOnlySystemEvent helper
2018-11-07 23:25:16 -08:00
Michael Scire
9b1a2451b0
libstratosphere: Add thread primitive, WaitableManager->RequestStop()
2018-11-07 23:25:11 -08:00
Michael Scire
e65bee0d6a
libstratosphere: Implement message queues
2018-11-07 23:25:00 -08:00
Michael Scire
8426a4dc77
libstrat: Use iterators when looping deferred waitables
2018-11-07 22:59:30 -08:00
Michael Scire
147f3c690a
libstrat: Significantly cleanup waitable manager result handling.
2018-11-07 22:40:19 -08:00
Michael Scire
bac81f4ccc
libstrat: fix potential oob deref in WaitableManager ( closes #256 )
2018-11-07 19:10:04 -08:00
Michael Scire
2894989eb7
libstrat: improve waitable manager cancelsync semantics
2018-11-07 12:42:06 -08:00
Michael Scire
952ee4227d
libstrat: update curthreadhandle for libnx 1.5.0
2018-11-05 22:56:04 -08:00
Michael Scire
9142e90a04
libstratosphere: Use intraprocess event signaling for new waitable management
2018-11-05 18:35:21 -08:00
Michael Scire
3ed239296a
libstrat: Allow nullptr buffers if 0 size. ( closes #255 )
2018-11-04 21:52:53 -08:00
Michael Scire
e786bc7e9a
fs.mitm: Only create storage interface when needed.
2018-11-04 12:45:29 -08:00
Michael Scire
be044e691c
libstrat: delete old ipc templating.
2018-10-30 15:57:15 -07:00
TuxSH
536b89efae
Add boost as submodule
2018-10-30 23:49:26 +01:00
Michael Scire
44175058f6
libstrat: mark ServiceObjectHolder functions const
2018-10-31 05:04:00 +09:00
Michael Scire
6336089b63
libstrat: remove unused struct in serializer
2018-10-31 05:04:00 +09:00
Michael Scire
6ef34d80a0
libstrat: automatically detect+format rawdata structs correctly.
2018-10-31 05:04:00 +09:00
Michael Scire
4cdd9aa8f1
libstratosphere: Fix uninitialized memory bug.
2018-10-31 05:04:00 +09:00
Michael Scire
23a85a7c24
fs.mitm: split out set.mitm
2018-10-31 05:04:00 +09:00
Michael Scire
058f735031
libstratosphere: refactor everything
2018-10-31 05:04:00 +09:00
Michael Scire
c0fe4f7af7
fs.mitm: Intercept qlaunch sysver request
2018-10-24 14:16:39 -07:00
Michael Scire
781f2597e5
libstratosphere: Fix receive for multi-static IPC buffers
2018-10-17 03:49:05 -07:00
Michael Scire
6711cd93a8
atmosphere: extract API version management to common folder
2018-10-16 17:54:50 -07:00
Michael Scire
f603dbfc98
fs.mitm: Add domain support ( closes #202 )
2018-10-16 13:33:45 -07:00
Michael Scire
0cad1935dd
libstratosphere: Fix condvar wrapper primitives
2018-09-09 07:04:16 -07:00
Michael Scire
488fc0f119
pm: Support for 6.0.0
2018-09-08 23:47:15 -07:00
hexkyz
28e4d4411d
Add and fix copyright notices for better GPL compliance (thanks @naehrwert and @CTCaer).
2018-09-07 16:00:13 +01:00
Léo Lam
5b3e8e1c5d
stratosphere: Use RAII for locks
...
This renames the Mutex class member functions so that the mutex types
satisfy Lockable.
This makes them usable with standard std::scoped_lock
and std::unique_lock, which lets us use RAII and avoids the need
for a custom RAII wrapper :)
2018-07-10 09:38:18 -07:00
Léo Lam
a28b40866a
stratosphere: Remove an unneeded constructor
...
domain_objects is already an array of empty std::shared_ptrs (since
std::shared_ptr has a sane default constructor).
2018-07-10 09:38:18 -07:00
Michael Scire
8da27723fc
fs.mitm: Fix c++ modernization breaking changes
2018-06-27 23:02:06 -06:00
Michael Scire
284677c486
libstratosphere: Cleanup resources when doing OutSession for domains.
2018-06-24 12:39:09 -06:00
Tony Wasserka
ad636f7216
Modernize C++ usage ( #144 )
...
* Stratosphere: Use modern C++ idioms in some places
* algorithms like std::for_each are used instead of raw loops
* Stratosphere: Replace more raw loops with algorithms
* Stratosphere: Add a utility predicate function to test for equality with a reference element
This can be used to rewrite some common raw loops using algorithms instead
* fs.mitm: Use variant
* fs.mitm: Use enum class
* fs.mitm: Turn RomFSSourceInfo::Cleanup into a destructor
This obsoletes the need for a custom deleter in other places
* fs.mitm: Use enum class some more
* fs.mitm: Use unique_ptr
* fs.mitm: Simplify initialization
* Stratosphere: Simplify initialization
* fs.mitm: Use unique_ptr (fix memory leak along the way)
The previous code was using "delete" rather than "delete[]"
* fs.mitm: Use vector::emplace_back rather than push_back
emplace_back constructs elements in-place, hence avoiding a redundant element copy.
* Stratosphere: Replace more raw loops with algorithms
* Stratosphere: Use unique_ptr
* fs.mitm: Replace more raw loops with algorithms
* Stratosphere: Prefer move-construction over copy-construction when moving sink parameters around
2018-06-19 11:07:31 -07:00
Michael Scire
f41b780c0a
PM: Fix remaining issues, now works properly again.
2018-06-15 00:47:07 -06:00
Michael Scire
4d36697080
Make PM Compile. Note: Currently broken.
2018-06-14 23:32:01 -06:00
Michael Scire
c2d9ac8f5c
fs.mitm: WIP LayeredFS impl (NOTE: UNUSABLE ATM)
...
Also greatly refactors libstratosphere, and does a lot of other things.
There is a lot of code in this one.
2018-06-14 17:51:18 -06:00
Michael Scire
237ff0d1e7
libstratosphere/fs.mitm: Push WIP support for Domains. Not yet fully working.
2018-06-12 16:01:04 -06:00
Michael Scire
5c80016c81
fs.mitm: Add HANS-style redirection for System Data Archives.
2018-06-10 11:11:23 -06:00
Michael Scire
3cbdf0b2b9
fs.mitm: Get Title ID on fsp-srv init, Add worker to handle subinterfaces.
2018-06-10 03:07:15 -06:00
Tony Wasserka
edc099f026
Use "final" and "override" where appropriate ( #117 )
2018-06-02 22:46:27 -07:00
TuxSH
52114760b3
Ignore unused-but-set-variable in ipc_templating.h
2018-05-15 00:44:10 +02:00
Michael Scire
9e558dafee
libstratosphere: Make boolean autoparsing match official semantics.
2018-05-07 07:22:41 -06:00
Michael Scire
700f92162d
ProcessManager: Fix Synchronization. Now works on 1.0.0 hardware.
2018-05-06 23:00:05 -06:00
Léo Lam
a097babe18
Replace std::make_tuple with simpler syntax ( #77 )
...
* boot2: Simplify g_additional_launch_programs
It appears that Stratosphère is targeting C++17. In C++17,
std::make_tuple is not required for initialisating a tuple anymore.
Same thing, but less typing
* Replace std::make_tuple with {}
More readable and less noise. Also fixes two missing return statements.
2018-05-05 11:41:39 -07:00
Léo Lam
cf50bad36c
ipc_templating: Avoid depending on order of evaluation ( #83 )
...
f(x, x++) is unspecified behaviour in C++. An implementation could
evaluate arguments from left to right or from right to left.
`T(r.Buffers[a_index], r.BufferSizes[a_index++])` might
access the wrong buffer if `a_index++` is evaluated before the first
argument.
Fixes -Wsequence-point warnings
2018-05-05 11:41:08 -07:00
Michael Scire
d6cf7c605f
ProcessManager: Implement core process management logic.
2018-05-03 23:58:37 -06:00
Michael Scire
7ab9f507cb
ProcessManager: Fill out ProcessTracking::Initialize()
2018-05-03 16:15:12 -06:00
Michael Scire
b5412df53b
Stratosphere: Add IPC templating for non-member functions.
2018-05-03 03:14:48 -06:00
Michael Scire
9e03852703
Loader: Fix bugs ldr:ro, Loader now works fully on hardware.
2018-05-02 01:39:24 -06:00
Michael Scire
30f975a558
Stratosphere: Fix remaining bugs in sm, which now works as a KIP1 on hardware
2018-04-30 22:27:26 -06:00
Michael Scire
ecf2517bd5
Stratosphere: Fix IServer constructors. SM is fully functional on hardware now.
2018-04-22 05:13:33 -06:00
Michael Scire
674528b246
Stratosphere: Implement support for deferred commands. Finish sm GetService()'s deferred path.
2018-04-22 03:02:19 -06:00
Michael Scire
080816f2b6
Add ExistingPortServer to libstratosphere
2018-04-22 00:33:09 -06:00
Michael Scire
7dc5a5914b
Stratosphere: Move boost/callable_traits into libstratosphere
2018-04-21 21:15:54 -06:00
Michael Scire
044d367eda
Stratosphere: ServiceServer<T> -> IServer<T> as abstract base class.
2018-04-21 20:57:24 -06:00
Michael Scire
4aa93ad354
IPC templating style fix
2018-04-21 20:38:13 -06:00
Michael Scire
b81ceeca21
Stratosphere: extract common code to libstratosphere.
2018-04-21 20:31:06 -06:00