diff options
Diffstat (limited to 'Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapHelpers.cs')
-rw-r--r-- | Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapHelpers.cs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapHelpers.cs b/Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapHelpers.cs new file mode 100644 index 00000000..e650de06 --- /dev/null +++ b/Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapHelpers.cs @@ -0,0 +1,20 @@ +using System.Runtime.CompilerServices; + +namespace Ryujinx.Common.Memory.PartialUnmaps +{ + static class PartialUnmapHelpers + { + /// <summary> + /// Calculates a byte offset of a given field within a struct. + /// </summary> + /// <typeparam name="T">Struct type</typeparam> + /// <typeparam name="T2">Field type</typeparam> + /// <param name="storage">Parent struct</param> + /// <param name="target">Field</param> + /// <returns>The byte offset of the given field in the given struct</returns> + public static int OffsetOf<T, T2>(ref T2 storage, ref T target) + { + return (int)Unsafe.ByteOffset(ref Unsafe.As<T2, T>(ref storage), ref target); + } + } +} |