aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Horizon/Sdk/Sf/Hipc/HipcBufferDescriptor.cs
blob: 03ef6d3fc1b9225ea12f79f1e040d99dc7ca6ed5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace Ryujinx.Horizon.Sdk.Sf.Hipc
{
    readonly struct HipcBufferDescriptor
    {
#pragma warning disable CS0649 // Field is never assigned to
        private readonly uint _sizeLow;
        private readonly uint _addressLow;
        private readonly uint _word2;
#pragma warning restore CS0649

        public ulong Address => _addressLow | (((ulong)_word2 << 4) & 0xf00000000UL) | (((ulong)_word2 << 34) & 0x7000000000UL);
        public ulong Size => _sizeLow | ((ulong)_word2 << 8) & 0xf00000000UL;
        public HipcBufferMode Mode => (HipcBufferMode)(_word2 & 3);
    }
}