mirror of
https://github.com/yuzu-emu/yuzu-android.git
synced 2025-06-16 03:18:14 -05:00
Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSession
This allows attaching a HLE handle to a ServerPort at any point after it is created, allowing port/session creation to be generic between HLE and regular services.
This commit is contained in:
@ -84,6 +84,10 @@ File::File(std::unique_ptr<FileSys::FileBackend>&& backend, const FileSys::Path&
|
||||
File::~File() {}
|
||||
|
||||
void File::HandleSyncRequest(Kernel::SharedPtr<Kernel::ServerSession> server_session) {
|
||||
using Kernel::ClientSession;
|
||||
using Kernel::ServerSession;
|
||||
using Kernel::SharedPtr;
|
||||
|
||||
u32* cmd_buff = Kernel::GetCommandBuffer();
|
||||
FileCommand cmd = static_cast<FileCommand>(cmd_buff[0]);
|
||||
switch (cmd) {
|
||||
@ -162,10 +166,9 @@ void File::HandleSyncRequest(Kernel::SharedPtr<Kernel::ServerSession> server_ses
|
||||
|
||||
case FileCommand::OpenLinkFile: {
|
||||
LOG_WARNING(Service_FS, "(STUBBED) File command OpenLinkFile %s", GetName().c_str());
|
||||
auto sessions = Kernel::ServerSession::CreateSessionPair(GetName(), shared_from_this());
|
||||
ClientConnected(std::get<Kernel::SharedPtr<Kernel::ServerSession>>(sessions));
|
||||
cmd_buff[3] = Kernel::g_handle_table
|
||||
.Create(std::get<Kernel::SharedPtr<Kernel::ClientSession>>(sessions))
|
||||
auto sessions = ServerSession::CreateSessionPair(GetName());
|
||||
ClientConnected(std::get<SharedPtr<ServerSession>>(sessions));
|
||||
cmd_buff[3] = Kernel::g_handle_table.Create(std::get<SharedPtr<ClientSession>>(sessions))
|
||||
.ValueOr(INVALID_HANDLE);
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user