[Cram] Use new source generator based big endian marshaller

This commit is contained in:
2025-10-21 02:49:32 +01:00
parent aa75699bf2
commit 1ec199b49e
2 changed files with 14 additions and 12 deletions

View File

@@ -83,7 +83,7 @@ public sealed partial class Cram
break;
case CRAM_CIGAM:
crSb = Marshal.ByteArrayToStructureBigEndian<SuperBlock>(sector);
crSb = Marshal.ByteArrayToStructureBigEndianGenerated<SuperBlock>(sector);
littleEndian = false;
break;

View File

@@ -30,6 +30,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
using Aaru.CommonTypes.Attributes;
namespace Aaru.Filesystems;
@@ -41,20 +42,21 @@ public sealed partial class Cram
#region Nested type: SuperBlock
[StructLayout(LayoutKind.Sequential, Pack = 1)]
readonly struct SuperBlock
[SwapEndian]
partial struct SuperBlock
{
public readonly uint magic;
public readonly uint size;
public readonly uint flags;
public readonly uint future;
public uint magic;
public uint size;
public uint flags;
public uint future;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public readonly byte[] signature;
public readonly uint crc;
public readonly uint edition;
public readonly uint blocks;
public readonly uint files;
public byte[] signature;
public uint crc;
public uint edition;
public uint blocks;
public uint files;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public readonly byte[] name;
public byte[] name;
}
#endregion