IPC refactor part 3+4: New server HIPC message processor (#4188)

* IPC refactor part 3 + 4: New server HIPC message processor with source generator based serialization

* Make types match on calls to AlignUp/AlignDown

* Formatting

* Address some PR feedback

* Move BitfieldExtensions to Ryujinx.Common.Utilities and consolidate implementations

* Rename Reader/Writer to SpanReader/SpanWriter and move to Ryujinx.Common.Memory

* Implement EventType

* Address more PR feedback

* Log request processing errors since they are not normal

* Rename waitable to multiwait and add missing lock

* PR feedback

* Ac_K PR feedback
This commit is contained in:
gdkchan 2023-01-04 19:15:45 -03:00 committed by GitHub
parent c6a139a6e7
commit 08831eecf7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
213 changed files with 9762 additions and 1010 deletions

View file

@ -0,0 +1,19 @@
namespace Ryujinx.Horizon.Sdk.Lm
{
enum LogDataChunkKey
{
Start = 0,
Stop = 1,
Message = 2,
Line = 3,
Filename = 4,
Function = 5,
Module = 6,
Thread = 7,
DropCount = 8,
Time = 9,
ProgramName = 10,
Count
}
}

View file

@ -0,0 +1,14 @@
using System;
namespace Ryujinx.Horizon.Sdk.Lm
{
[Flags]
enum LogDestination
{
TargetManager = 1 << 0,
Uart = 1 << 1,
UartIfSleep = 1 << 2,
All = 0xffff
}
}

View file

@ -0,0 +1,12 @@
using System;
namespace Ryujinx.Horizon.Sdk.Lm
{
[Flags]
enum LogPacketFlags : byte
{
IsHead = 1 << 0,
IsTail = 1 << 1,
IsLittleEndian = 1 << 2
}
}

View file

@ -0,0 +1,15 @@
using Ryujinx.Horizon.Sdk.Diag;
namespace Ryujinx.Horizon.Sdk.Lm
{
struct LogPacketHeader
{
public ulong ProcessId;
public ulong ThreadId;
public LogPacketFlags Flags;
public byte Padding;
public LogSeverity Severity;
public byte Verbosity;
public uint PayloadSize;
}
}