@ -197,8 +197,7 @@ void File::OpenLinkFile(Kernel::HLERequestContext& ctx) {
using Kernel : : ServerSession ;
using Kernel : : ServerSession ;
IPC : : RequestParser rp ( ctx , 0x080C , 0 , 0 ) ;
IPC : : RequestParser rp ( ctx , 0x080C , 0 , 0 ) ;
IPC : : RequestBuilder rb = rp . MakeBuilder ( 1 , 2 ) ;
IPC : : RequestBuilder rb = rp . MakeBuilder ( 1 , 2 ) ;
auto sessions = system . Kernel ( ) . CreateSessionPair ( GetName ( ) ) ;
auto [ server , client ] = system . Kernel ( ) . CreateSessionPair ( GetName ( ) ) ;
auto server = std : : get < std : : shared_ptr < ServerSession > > ( sessions ) ;
ClientConnected ( server ) ;
ClientConnected ( server ) ;
FileSessionSlot * slot = GetSessionData ( server ) ;
FileSessionSlot * slot = GetSessionData ( server ) ;
@ -210,7 +209,7 @@ void File::OpenLinkFile(Kernel::HLERequestContext& ctx) {
slot - > subfile = false ;
slot - > subfile = false ;
rb . Push ( RESULT_SUCCESS ) ;
rb . Push ( RESULT_SUCCESS ) ;
rb . PushMoveObjects ( std: : get < std : : shared_ptr < ClientSession > > ( sessions ) ) ;
rb . PushMoveObjects ( client ) ;
}
}
void File : : OpenSubFile ( Kernel : : HLERequestContext & ctx ) {
void File : : OpenSubFile ( Kernel : : HLERequestContext & ctx ) {
@ -244,8 +243,7 @@ void File::OpenSubFile(Kernel::HLERequestContext& ctx) {
using Kernel : : ClientSession ;
using Kernel : : ClientSession ;
using Kernel : : ServerSession ;
using Kernel : : ServerSession ;
auto sessions = system . Kernel ( ) . CreateSessionPair ( GetName ( ) ) ;
auto [ server , client ] = system . Kernel ( ) . CreateSessionPair ( GetName ( ) ) ;
auto server = std : : get < std : : shared_ptr < ServerSession > > ( sessions ) ;
ClientConnected ( server ) ;
ClientConnected ( server ) ;
FileSessionSlot * slot = GetSessionData ( server ) ;
FileSessionSlot * slot = GetSessionData ( server ) ;
@ -255,12 +253,11 @@ void File::OpenSubFile(Kernel::HLERequestContext& ctx) {
slot - > subfile = true ;
slot - > subfile = true ;
rb . Push ( RESULT_SUCCESS ) ;
rb . Push ( RESULT_SUCCESS ) ;
rb . PushMoveObjects ( std: : get < std : : shared_ptr < ClientSession > > ( sessions ) ) ;
rb . PushMoveObjects ( client ) ;
}
}
std : : shared_ptr < Kernel : : ClientSession > File : : Connect ( ) {
std : : shared_ptr < Kernel : : ClientSession > File : : Connect ( ) {
auto sessions = system . Kernel ( ) . CreateSessionPair ( GetName ( ) ) ;
auto [ server , client ] = system . Kernel ( ) . CreateSessionPair ( GetName ( ) ) ;
auto server = std : : get < std : : shared_ptr < Kernel : : ServerSession > > ( sessions ) ;
ClientConnected ( server ) ;
ClientConnected ( server ) ;
FileSessionSlot * slot = GetSessionData ( server ) ;
FileSessionSlot * slot = GetSessionData ( server ) ;
@ -269,7 +266,7 @@ std::shared_ptr<Kernel::ClientSession> File::Connect() {
slot - > size = backend - > GetSize ( ) ;
slot - > size = backend - > GetSize ( ) ;
slot - > subfile = false ;
slot - > subfile = false ;
return std: : get < std : : shared_ptr < Kernel : : ClientSession > > ( sessions ) ;
return client ;
}
}
std : : size_t File : : GetSessionFileOffset ( std : : shared_ptr < Kernel : : ServerSession > session ) {
std : : size_t File : : GetSessionFileOffset ( std : : shared_ptr < Kernel : : ServerSession > session ) {