// /*************************************************************************** // Aaru Data Preservation Suite // ---------------------------------------------------------------------------- // // Filename : Structs.cs // Author(s) : Natalia Portillo // // Component : Linux extended filesystem plugin. // // --[ License ] -------------------------------------------------------------- // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, see . // // ---------------------------------------------------------------------------- // Copyright © 2011-2025 Natalia Portillo // ****************************************************************************/ using System.Diagnostics.CodeAnalysis; namespace Aaru.Filesystems; // Information from the Linux kernel /// /// Implements detection of the Linux extended filesystem // ReSharper disable once InconsistentNaming public sealed partial class extFS { #region Nested type: SuperBlock /// ext superblock #pragma warning disable CS0649 [SuppressMessage("ReSharper", "InconsistentNaming")] struct SuperBlock { /// 0x000, inodes on volume public uint inodes; /// 0x004, zones on volume public uint zones; /// 0x008, first free block public uint firstfreeblk; /// 0x00C, free blocks count public uint freecountblk; /// 0x010, first free inode public uint firstfreeind; /// 0x014, free inodes count public uint freecountind; /// 0x018, first data zone public uint firstdatazone; /// 0x01C, log zone size public uint logzonesize; /// 0x020, max zone size public uint maxsize; /// 0x024, reserved public uint reserved1; /// 0x028, reserved public uint reserved2; /// 0x02C, reserved public uint reserved3; /// 0x030, reserved public uint reserved4; /// 0x034, reserved public uint reserved5; /// 0x038, 0x137D (little endian) public ushort magic; } #pragma warning restore CS0649 #endregion }