diff --git a/Aaru.Filesystems/Fossil/Info.cs b/Aaru.Filesystems/Fossil/Info.cs index aa3c4f9c8..743239363 100644 --- a/Aaru.Filesystems/Fossil/Info.cs +++ b/Aaru.Filesystems/Fossil/Info.cs @@ -53,7 +53,7 @@ public sealed partial class Fossil if(errno != ErrorNumber.NoError) return false; - Header hdr = Marshal.ByteArrayToStructureBigEndian
(sector); + Header hdr = Marshal.ByteArrayToStructureBigEndianGenerated
(sector); AaruLogging.Debug(MODULE_NAME, Localization.magic_at_0_expected_1, hdr.magic, FOSSIL_HDR_MAGIC); @@ -77,7 +77,7 @@ public sealed partial class Fossil if(errno != ErrorNumber.NoError) return; - Header hdr = Marshal.ByteArrayToStructureBigEndian
(sector); + Header hdr = Marshal.ByteArrayToStructureBigEndianGenerated
(sector); AaruLogging.Debug(MODULE_NAME, Localization.magic_at_0_expected_1, hdr.magic, FOSSIL_HDR_MAGIC); @@ -103,7 +103,7 @@ public sealed partial class Fossil if(sbLocation <= partition.End) { imagePlugin.ReadSector(sbLocation, out sector); - SuperBlock fsb = Marshal.ByteArrayToStructureBigEndian(sector); + SuperBlock fsb = Marshal.ByteArrayToStructureBigEndianGenerated(sector); AaruLogging.Debug(MODULE_NAME, Localization.magic_0_expected_1, fsb.magic, FOSSIL_SB_MAGIC); diff --git a/Aaru.Filesystems/Fossil/Structs.cs b/Aaru.Filesystems/Fossil/Structs.cs index daed6bcc8..b80517cb2 100644 --- a/Aaru.Filesystems/Fossil/Structs.cs +++ b/Aaru.Filesystems/Fossil/Structs.cs @@ -27,6 +27,7 @@ // ****************************************************************************/ using System.Runtime.InteropServices; +using Aaru.CommonTypes.Attributes; namespace Aaru.Filesystems; @@ -37,22 +38,23 @@ public sealed partial class Fossil #region Nested type: Header [StructLayout(LayoutKind.Sequential, Pack = 1)] - readonly struct Header + [SwapEndian] + partial struct Header { /// Magic number - public readonly uint magic; + public uint magic; /// Header version - public readonly ushort version; + public ushort version; /// Block size - public readonly ushort blockSize; + public ushort blockSize; /// Block containing superblock - public readonly uint super; + public uint super; /// Block containing labels - public readonly uint label; + public uint label; /// Where do data blocks start - public readonly uint data; + public uint data; /// How many data blocks does it have - public readonly uint end; + public uint end; } #endregion @@ -60,30 +62,31 @@ public sealed partial class Fossil #region Nested type: SuperBlock [StructLayout(LayoutKind.Sequential, Pack = 1)] - readonly struct SuperBlock + [SwapEndian] + partial struct SuperBlock { /// Magic number - public readonly uint magic; + public uint magic; /// Header version - public readonly ushort version; + public ushort version; /// file system low epoch - public readonly uint epochLow; + public uint epochLow; /// file system high(active) epoch - public readonly uint epochHigh; + public uint epochHigh; /// next qid to allocate - public readonly ulong qid; + public ulong qid; /// data block number: root of active file system - public readonly int active; + public int active; /// data block number: root of next file system to archive - public readonly int next; + public int next; /// data block number: root of file system currently being archived - public readonly int current; + public int current; /// Venti score of last successful archive [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] - public readonly byte[] last; + public byte[] last; /// name of file system(just a comment) [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] - public readonly byte[] name; + public byte[] name; } #endregion