Ryujinx/Ryujinx.Horizon/Sdk/Sf/CommandArg.cs

56 lines
1.4 KiB
C#
Raw Normal View History

using Ryujinx.Horizon.Sdk.Sf.Hipc;
namespace Ryujinx.Horizon.Sdk.Sf
{
enum CommandArgType : byte
{
Invalid,
Buffer,
InArgument,
InCopyHandle,
InMoveHandle,
InObject,
OutArgument,
OutCopyHandle,
OutMoveHandle,
OutObject,
ProcessId
}
struct CommandArg
{
public CommandArgType Type { get; }
public HipcBufferFlags BufferFlags { get; }
public ushort BufferFixedSize { get; }
public int ArgSize { get; }
public int ArgAlignment { get; }
public CommandArg(CommandArgType type)
{
Type = type;
BufferFlags = default;
BufferFixedSize = 0;
ArgSize = 0;
ArgAlignment = 0;
}
public CommandArg(CommandArgType type, int argSize, int argAlignment)
{
Type = type;
BufferFlags = default;
BufferFixedSize = 0;
ArgSize = argSize;
ArgAlignment = argAlignment;
}
public CommandArg(HipcBufferFlags flags, ushort fixedSize = 0)
{
Type = CommandArgType.Buffer;
BufferFlags = flags;
BufferFixedSize = fixedSize;
ArgSize = 0;
ArgAlignment = 0;
}
}
}