From cc3c1418e4b2592623b3158c2f63e8dcb4bba694 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 21 Oct 2025 03:29:13 +0100 Subject: [PATCH] [LIF] Use new source generator based big endian marshaller --- Aaru.Filesystems/LIF/Info.cs | 4 ++-- Aaru.Filesystems/LIF/Structs.cs | 28 +++++++++++++++------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/Aaru.Filesystems/LIF/Info.cs b/Aaru.Filesystems/LIF/Info.cs index d9ef826d2..e470da253 100644 --- a/Aaru.Filesystems/LIF/Info.cs +++ b/Aaru.Filesystems/LIF/Info.cs @@ -52,7 +52,7 @@ public sealed partial class LIF if(errno != ErrorNumber.NoError) return false; - SystemBlock lifSb = Marshal.ByteArrayToStructureBigEndian(sector); + SystemBlock lifSb = Marshal.ByteArrayToStructureBigEndianGenerated(sector); AaruLogging.Debug(MODULE_NAME, Localization.magic_0_expected_1, lifSb.magic, LIF_MAGIC); return lifSb.magic == LIF_MAGIC; @@ -72,7 +72,7 @@ public sealed partial class LIF if(errno != ErrorNumber.NoError) return; - SystemBlock lifSb = Marshal.ByteArrayToStructureBigEndian(sector); + SystemBlock lifSb = Marshal.ByteArrayToStructureBigEndianGenerated(sector); if(lifSb.magic != LIF_MAGIC) return; diff --git a/Aaru.Filesystems/LIF/Structs.cs b/Aaru.Filesystems/LIF/Structs.cs index 2603d2684..b65674447 100644 --- a/Aaru.Filesystems/LIF/Structs.cs +++ b/Aaru.Filesystems/LIF/Structs.cs @@ -27,6 +27,7 @@ // ****************************************************************************/ using System.Runtime.InteropServices; +using Aaru.CommonTypes.Attributes; namespace Aaru.Filesystems; @@ -38,22 +39,23 @@ public sealed partial class LIF #region Nested type: SystemBlock [StructLayout(LayoutKind.Sequential, Pack = 1)] - readonly struct SystemBlock + [SwapEndian] + partial struct SystemBlock { - public readonly ushort magic; + public ushort magic; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] - public readonly byte[] volumeLabel; - public readonly uint directoryStart; - public readonly ushort lifId; - public readonly ushort unused; - public readonly uint directorySize; - public readonly ushort lifVersion; - public readonly ushort unused2; - public readonly uint tracks; - public readonly uint heads; - public readonly uint sectors; + public byte[] volumeLabel; + public uint directoryStart; + public ushort lifId; + public ushort unused; + public uint directorySize; + public ushort lifVersion; + public ushort unused2; + public uint tracks; + public uint heads; + public uint sectors; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] - public readonly byte[] creationDate; + public byte[] creationDate; } #endregion