mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2025-09-16 08:57:54 -05:00
IPC - Refactor Bcat service to use new ipc - Revisit (#4803)
* bcat ipc * fix hipc buffer flags * add buffer fixed size flag on generator
This commit is contained in:
10
src/Ryujinx.Horizon/Sdk/Bcat/IBcatService.cs
Normal file
10
src/Ryujinx.Horizon/Sdk/Bcat/IBcatService.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Bcat
|
||||
{
|
||||
internal interface IBcatService : IServiceObject
|
||||
{
|
||||
Result RequestSyncDeliveryCache(out IDeliveryCacheProgressService deliveryCacheProgressService);
|
||||
}
|
||||
}
|
@@ -0,0 +1,14 @@
|
||||
using LibHac.Bcat;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Bcat
|
||||
{
|
||||
internal interface IDeliveryCacheDirectoryService : IServiceObject
|
||||
{
|
||||
Result GetCount(out int count);
|
||||
Result Open(DirectoryName directoryName);
|
||||
Result Read(out int entriesRead, Span<DeliveryCacheDirectoryEntry> entriesBuffer);
|
||||
}
|
||||
}
|
15
src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheFileService.cs
Normal file
15
src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheFileService.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using LibHac.Bcat;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Bcat
|
||||
{
|
||||
internal interface IDeliveryCacheFileService : IServiceObject
|
||||
{
|
||||
Result GetDigest(out Digest digest);
|
||||
Result GetSize(out long size);
|
||||
Result Open(DirectoryName directoryName, FileName fileName);
|
||||
Result Read(long offset, out long bytesRead, Span<byte> data);
|
||||
}
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
using Ryujinx.Horizon.Bcat.Ipc.Types;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Bcat
|
||||
{
|
||||
internal interface IDeliveryCacheProgressService : IServiceObject
|
||||
{
|
||||
Result GetEvent(out int handle);
|
||||
Result GetImpl(out DeliveryCacheProgressImpl deliveryCacheProgressImpl);
|
||||
}
|
||||
}
|
14
src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheStorageService.cs
Normal file
14
src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheStorageService.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using LibHac.Bcat;
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Bcat
|
||||
{
|
||||
internal interface IDeliveryCacheStorageService : IServiceObject
|
||||
{
|
||||
Result CreateDirectoryService(out IDeliveryCacheDirectoryService service);
|
||||
Result CreateFileService(out IDeliveryCacheFileService service);
|
||||
Result EnumerateDeliveryCacheDirectory(out int count, Span<DirectoryName> directoryNames);
|
||||
}
|
||||
}
|
12
src/Ryujinx.Horizon/Sdk/Bcat/IServiceCreator.cs
Normal file
12
src/Ryujinx.Horizon/Sdk/Bcat/IServiceCreator.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf;
|
||||
|
||||
namespace Ryujinx.Horizon.Sdk.Bcat
|
||||
{
|
||||
internal interface IServiceCreator : IServiceObject
|
||||
{
|
||||
Result CreateBcatService(out IBcatService service, ulong pid);
|
||||
Result CreateDeliveryCacheStorageService(out IDeliveryCacheStorageService service, ulong pid);
|
||||
Result CreateDeliveryCacheStorageServiceWithApplicationId(out IDeliveryCacheStorageService service, Ncm.ApplicationId applicationId);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user