libstratosphere/fs.mitm: Push WIP support for Domains. Not yet fully working.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include <switch.h>
|
||||
#include <stratosphere.hpp>
|
||||
#include "sm_manager_service.hpp"
|
||||
#include "sm_registration.hpp"
|
||||
|
||||
|
||||
@@ -7,11 +7,15 @@ enum ManagerServiceCmd {
|
||||
Manager_Cmd_UnregisterProcess = 1
|
||||
};
|
||||
|
||||
class ManagerService final : IServiceObject {
|
||||
class ManagerService final : public IServiceObject {
|
||||
public:
|
||||
Result dispatch(IpcParsedCommand &r, IpcCommand &out_c, u64 cmd_id, u8 *pointer_buffer, size_t pointer_buffer_size) override;
|
||||
Result handle_deferred() override;
|
||||
|
||||
ManagerService *clone() override {
|
||||
return new ManagerService();
|
||||
}
|
||||
|
||||
private:
|
||||
/* Actual commands. */
|
||||
std::tuple<Result> register_process(u64 pid, InBuffer<u8> acid_sac, InBuffer<u8> aci0_sac);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "sm_registration.hpp"
|
||||
|
||||
Result UserService::dispatch(IpcParsedCommand &r, IpcCommand &out_c, u64 cmd_id, u8 *pointer_buffer, size_t pointer_buffer_size) {
|
||||
Result rc = 0xF601;
|
||||
Result rc = 0xF601;
|
||||
switch ((UserServiceCmd)cmd_id) {
|
||||
case User_Cmd_Initialize:
|
||||
rc = WrapIpcCommandImpl<&UserService::initialize>(this, r, out_c, pointer_buffer, pointer_buffer_size);
|
||||
|
||||
@@ -12,7 +12,7 @@ enum UserServiceCmd {
|
||||
User_Cmd_AtmosphereUninstallMitm = 65001
|
||||
};
|
||||
|
||||
class UserService final : IServiceObject {
|
||||
class UserService final : public IServiceObject {
|
||||
u64 pid;
|
||||
bool has_initialized;
|
||||
u64 deferred_service;
|
||||
@@ -22,6 +22,14 @@ class UserService final : IServiceObject {
|
||||
Result dispatch(IpcParsedCommand &r, IpcCommand &out_c, u64 cmd_id, u8 *pointer_buffer, size_t pointer_buffer_size) override;
|
||||
Result handle_deferred() override;
|
||||
|
||||
UserService *clone() override {
|
||||
auto new_srv = new UserService();
|
||||
new_srv->pid = pid;
|
||||
new_srv->has_initialized = has_initialized;
|
||||
new_srv->deferred_service = deferred_service;
|
||||
return new_srv;
|
||||
}
|
||||
|
||||
private:
|
||||
/* Actual commands. */
|
||||
std::tuple<Result> initialize(PidDescriptor pid);
|
||||
|
||||
Reference in New Issue
Block a user