diff --git a/Aaru.Partitions/Aaru.Partitions.csproj b/Aaru.Partitions/Aaru.Partitions.csproj
index abd1bce35..e8b484af9 100644
--- a/Aaru.Partitions/Aaru.Partitions.csproj
+++ b/Aaru.Partitions/Aaru.Partitions.csproj
@@ -60,7 +60,7 @@
-
+
diff --git a/Aaru.Partitions/Aaru.Partitions.csproj.DotSettings b/Aaru.Partitions/Aaru.Partitions.csproj.DotSettings
index 29151f92c..50c5847b4 100644
--- a/Aaru.Partitions/Aaru.Partitions.csproj.DotSettings
+++ b/Aaru.Partitions/Aaru.Partitions.csproj.DotSettings
@@ -1,5 +1,6 @@
-
True
\ No newline at end of file
+ x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=localization/@EntryIndexedValue">True
\ No newline at end of file
diff --git a/Aaru.Partitions/Acorn.cs b/Aaru.Partitions/Acorn.cs
index 800ba75de..337cda02d 100644
--- a/Aaru.Partitions/Acorn.cs
+++ b/Aaru.Partitions/Acorn.cs
@@ -57,10 +57,14 @@ public sealed class Acorn : IPartition
const uint TYPE_MASK = 15;
readonly byte[] _linuxIcsMagic = "LinuxPart"u8.ToArray();
+#region IPartition Members
+
///
public string Name => Localization.Acorn_Name;
+
///
public Guid Id => new("A7C8FEBE-8D00-4933-B9F3-42184C8BA808");
+
///
public string Author => Authors.NataliaPortillo;
@@ -77,8 +81,10 @@ public sealed class Acorn : IPartition
return partitions.Count != 0;
}
+#endregion
+
static void GetFileCorePartitions(IMediaImage imagePlugin, List partitions, ulong sectorOffset,
- ref ulong counter)
+ ref ulong counter)
{
// RISC OS always checks for the partition on 0. Afaik no emulator chains it.
if(sectorOffset != 0)
@@ -99,12 +105,12 @@ public sealed class Acorn : IPartition
AcornBootBlock bootBlock = Marshal.ByteArrayToStructureLittleEndian(sector);
- int checksum = 0;
+ var checksum = 0;
- for(int i = 0; i < 0x1FF; i++)
+ for(var i = 0; i < 0x1FF; i++)
checksum = (checksum & 0xFF) + (checksum >> 8) + sector[i];
- int heads = bootBlock.discRecord.heads + ((bootBlock.discRecord.lowsector >> 6) & 1);
+ int heads = bootBlock.discRecord.heads + (bootBlock.discRecord.lowsector >> 6 & 1);
int secCyl = bootBlock.discRecord.spt * heads;
int mapSector = bootBlock.startCylinder * secCyl;
@@ -120,8 +126,8 @@ public sealed class Acorn : IPartition
{
var part = new Partition
{
- Size = ((ulong)bootBlock.discRecord.disc_size_high * 0x100000000) + bootBlock.discRecord.disc_size,
- Length = (((ulong)bootBlock.discRecord.disc_size_high * 0x100000000) + bootBlock.discRecord.disc_size) /
+ Size = (ulong)bootBlock.discRecord.disc_size_high * 0x100000000 + bootBlock.discRecord.disc_size,
+ Length = ((ulong)bootBlock.discRecord.disc_size_high * 0x100000000 + bootBlock.discRecord.disc_size) /
imagePlugin.Info.SectorSize,
Type = Localization.Filecore,
Name = StringHandlers.CToString(bootBlock.discRecord.disc_name, Encoding.GetEncoding("iso-8859-1"))
@@ -150,11 +156,11 @@ public sealed class Acorn : IPartition
Sequence = counter,
Scheme = "Filecore/Linux",
Type = entry.magic switch
- {
- LINUX_MAGIC => Localization.Linux,
- SWAP_MAGIC => Localization.Linux_swap,
- _ => Localization.Unknown_partition_type
- }
+ {
+ LINUX_MAGIC => Localization.Linux,
+ SWAP_MAGIC => Localization.Linux_swap,
+ _ => Localization.Unknown_partition_type
+ }
};
part.Offset = part.Start * (ulong)sector.Length;
@@ -175,6 +181,7 @@ public sealed class Acorn : IPartition
RiscIxTable table = Marshal.ByteArrayToStructureLittleEndian(map);
if(table.magic == RISCIX_MAGIC)
+ {
foreach(RiscIxEntry entry in table.partitions)
{
var part = new Partition
@@ -196,6 +203,7 @@ public sealed class Acorn : IPartition
partitions.Add(part);
counter++;
}
+ }
break;
}
@@ -216,10 +224,10 @@ public sealed class Acorn : IPartition
uint icsSum = 0x50617274;
- for(int i = 0; i < 508; i++)
+ for(var i = 0; i < 508; i++)
icsSum += sector[i];
- uint discCheck = BitConverter.ToUInt32(sector, 508);
+ var discCheck = BitConverter.ToUInt32(sector, 508);
if(icsSum != discCheck)
return;
@@ -281,6 +289,23 @@ public sealed class Acorn : IPartition
}
}
+#region Nested type: AcornBootBlock
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct AcornBootBlock
+ {
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x1C0)]
+ public readonly byte[] spare;
+ public readonly DiscRecord discRecord;
+ public readonly byte flags;
+ public readonly ushort startCylinder;
+ public readonly byte checksum;
+ }
+
+#endregion
+
+#region Nested type: DiscRecord
+
[StructLayout(LayoutKind.Sequential)]
struct DiscRecord
{
@@ -310,17 +335,44 @@ public sealed class Acorn : IPartition
public readonly byte[] reserved;
}
+#endregion
+
+#region Nested type: IcsEntry
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct AcornBootBlock
+ struct IcsEntry
{
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x1C0)]
- public readonly byte[] spare;
- public readonly DiscRecord discRecord;
- public readonly byte flags;
- public readonly ushort startCylinder;
- public readonly byte checksum;
+ public readonly uint start;
+ public readonly int size;
}
+#endregion
+
+#region Nested type: IcsTable
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct IcsTable
+ {
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
+ public readonly IcsEntry[] entries;
+ }
+
+#endregion
+
+#region Nested type: LinuxEntry
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct LinuxEntry
+ {
+ public readonly uint magic;
+ public readonly uint start;
+ public readonly uint size;
+ }
+
+#endregion
+
+#region Nested type: LinuxTable
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct LinuxTable
{
@@ -330,22 +382,9 @@ public sealed class Acorn : IPartition
public readonly byte[] padding;
}
- [StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct LinuxEntry
- {
- public readonly uint magic;
- public readonly uint start;
- public readonly uint size;
- }
+#endregion
- [StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct RiscIxTable
- {
- public readonly uint magic;
- public readonly uint date;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
- public readonly RiscIxEntry[] partitions;
- }
+#region Nested type: RiscIxEntry
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct RiscIxEntry
@@ -357,17 +396,18 @@ public sealed class Acorn : IPartition
public readonly byte[] name;
}
- [StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct IcsTable
- {
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
- public readonly IcsEntry[] entries;
- }
+#endregion
+
+#region Nested type: RiscIxTable
[StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct IcsEntry
+ struct RiscIxTable
{
- public readonly uint start;
- public readonly int size;
+ public readonly uint magic;
+ public readonly uint date;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
+ public readonly RiscIxEntry[] partitions;
}
+
+#endregion
}
\ No newline at end of file
diff --git a/Aaru.Partitions/AppleMap.cs b/Aaru.Partitions/AppleMap.cs
index 21fa9f1b3..823b4ab55 100644
--- a/Aaru.Partitions/AppleMap.cs
+++ b/Aaru.Partitions/AppleMap.cs
@@ -61,10 +61,14 @@ public sealed class AppleMap : IPartition
const uint HFS_MAGIC_OLD = 0x54465331;
const string MODULE_NAME = "Apple Partition Map (APM) Plugin";
+#region IPartition Members
+
///
public string Name => Localization.AppleMap_Name;
+
///
public Guid Id => new("36405F8D-4F1A-07F5-209C-223D735D6D22");
+
///
public string Author => Authors.NataliaPortillo;
@@ -89,37 +93,39 @@ public sealed class AppleMap : IPartition
{
case 256:
{
- byte[] tmp = new byte[512];
+ var tmp = new byte[512];
Array.Copy(ddmSector, 0, tmp, 0, 256);
ddmSector = tmp;
maxDrivers = 29;
break;
}
- case < 256: return false;
+ case < 256:
+ return false;
}
AppleDriverDescriptorMap ddm = Marshal.ByteArrayToStructureBigEndian(ddmSector);
- AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbSig = 0x{0:X4}", ddm.sbSig);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbSig = 0x{0:X4}", ddm.sbSig);
AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbBlockSize = {0}", ddm.sbBlockSize);
- AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbBlocks = {0}", ddm.sbBlocks);
- AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbDevType = {0}", ddm.sbDevType);
- AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbDevId = {0}", ddm.sbDevId);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbBlocks = {0}", ddm.sbBlocks);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbDevType = {0}", ddm.sbDevType);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbDevId = {0}", ddm.sbDevId);
AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbData = 0x{0:X8}", ddm.sbData);
AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbDrvrCount = {0}", ddm.sbDrvrCount);
uint sequence = 0;
if(ddm.sbSig == DDM_MAGIC)
+ {
if(ddm.sbDrvrCount < maxDrivers)
{
ddm.sbMap = new AppleDriverEntry[ddm.sbDrvrCount];
- for(int i = 0; i < ddm.sbDrvrCount; i++)
+ for(var i = 0; i < ddm.sbDrvrCount; i++)
{
- byte[] tmp = new byte[8];
- Array.Copy(ddmSector, 18 + (i * 8), tmp, 0, 8);
+ var tmp = new byte[8];
+ Array.Copy(ddmSector, 18 + i * 8, tmp, 0, 8);
ddm.sbMap[i] = Marshal.ByteArrayToStructureBigEndian(tmp);
AaruConsole.DebugWriteLine(MODULE_NAME, "ddm.sbMap[{1}].ddBlock = {0}", ddm.sbMap[i].ddBlock,
@@ -152,6 +158,7 @@ public sealed class AppleMap : IPartition
sequence++;
}
}
+ }
errno = imagePlugin.ReadSector(1 + sectorOffset, out byte[] partSector);
@@ -164,9 +171,9 @@ public sealed class AppleMap : IPartition
// This is the easy one, no sector size mixing
if(oldMap.pdSig == APM_MAGIC_OLD)
{
- for(int i = 2; i < partSector.Length; i += 12)
+ for(var i = 2; i < partSector.Length; i += 12)
{
- byte[] tmp = new byte[12];
+ var tmp = new byte[12];
Array.Copy(partSector, i, tmp, 0, 12);
AppleMapOldPartitionEntry oldEntry =
@@ -217,7 +224,7 @@ public sealed class AppleMap : IPartition
// If sector is bigger than 512
if(ddmSector.Length > 512)
{
- byte[] tmp = new byte[512];
+ var tmp = new byte[512];
Array.Copy(ddmSector, 512, tmp, 0, 512);
entry = Marshal.ByteArrayToStructureBigEndian(tmp);
@@ -228,7 +235,7 @@ public sealed class AppleMap : IPartition
entrySize = 512;
entryCount = entry.entries;
skipDdm = 512;
- sectorsToRead = ((entryCount + 1) * 512 / sectorSize) + 1;
+ sectorsToRead = (entryCount + 1) * 512 / sectorSize + 1;
}
else
{
@@ -267,18 +274,18 @@ public sealed class AppleMap : IPartition
if(errno != ErrorNumber.NoError)
return false;
- AaruConsole.DebugWriteLine(MODULE_NAME, "entry_size = {0}", entrySize);
- AaruConsole.DebugWriteLine(MODULE_NAME, "entry_count = {0}", entryCount);
- AaruConsole.DebugWriteLine(MODULE_NAME, "skip_ddm = {0}", skipDdm);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "entry_size = {0}", entrySize);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "entry_count = {0}", entryCount);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "skip_ddm = {0}", skipDdm);
AaruConsole.DebugWriteLine(MODULE_NAME, "sectors_to_read = {0}", sectorsToRead);
- byte[] copy = new byte[entries.Length - skipDdm];
+ var copy = new byte[entries.Length - skipDdm];
Array.Copy(entries, skipDdm, copy, 0, copy.Length);
entries = copy;
- for(int i = 0; i < entryCount; i++)
+ for(var i = 0; i < entryCount; i++)
{
- byte[] tmp = new byte[entrySize];
+ var tmp = new byte[entrySize];
Array.Copy(entries, i * entrySize, tmp, 0, entrySize);
entry = Marshal.ByteArrayToStructureBigEndian(tmp);
@@ -287,9 +294,9 @@ public sealed class AppleMap : IPartition
AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].signature = 0x{1:X4}", i, entry.signature);
AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].reserved1 = 0x{1:X4}", i, entry.reserved1);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].entries = {1}", i, entry.entries);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].start = {1}", i, entry.start);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].sectors = {1}", i, entry.sectors);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].entries = {1}", i, entry.entries);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].start = {1}", i, entry.start);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].sectors = {1}", i, entry.sectors);
AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].name = \"{1}\"", i,
StringHandlers.CToString(entry.name));
@@ -301,7 +308,7 @@ public sealed class AppleMap : IPartition
entry.first_data_block);
AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].data_sectors = {1}", i, entry.data_sectors);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].flags = {1}", i, (AppleMapFlags)entry.flags);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].flags = {1}", i, (AppleMapFlags)entry.flags);
AaruConsole.DebugWriteLine(MODULE_NAME, "dpme[{0}].first_boot_block = {1}", i,
entry.first_boot_block);
@@ -338,8 +345,8 @@ public sealed class AppleMap : IPartition
Name = StringHandlers.CToString(entry.name),
Offset = entry.start * entrySize,
Size = entry.sectors * entrySize,
- Start = (entry.start * entrySize / sectorSize) + sectorOffset,
- Length = entry.sectors * entrySize / sectorSize,
+ Start = entry.start * entrySize / sectorSize + sectorOffset,
+ Length = entry.sectors * entrySize / sectorSize,
Scheme = Name
};
@@ -398,14 +405,20 @@ public sealed class AppleMap : IPartition
sequence++;
}
else
+ {
AaruConsole.DebugWriteLine(MODULE_NAME,
Localization.Not_adding_partition_because_start_0_is_outside_media_size_1,
partition.Start, imagePlugin.Info.Sectors - 1);
+ }
}
return partitions.Count > 0;
}
+#endregion
+
+#region Nested type: AppleDriverDescriptorMap
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct AppleDriverDescriptorMap
{
@@ -428,6 +441,10 @@ public sealed class AppleMap : IPartition
public AppleDriverEntry[] sbMap;
}
+#endregion
+
+#region Nested type: AppleDriverEntry
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct AppleDriverEntry
{
@@ -439,26 +456,9 @@ public sealed class AppleMap : IPartition
public readonly ushort ddType;
}
- [StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct AppleOldDevicePartitionMap
- {
- /// Signature
- public readonly ushort pdSig;
- /// Entries of the driver descriptor
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 42)]
- public readonly AppleMapOldPartitionEntry[] pdMap;
- }
+#endregion
- [StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct AppleMapOldPartitionEntry
- {
- /// First sector of the partition
- public readonly uint pdStart;
- /// Number of sectors of the partition
- public readonly uint pdSize;
- /// Partition type
- public readonly uint pdFSID;
- }
+#region Nested type: AppleMapFlags
[Flags]
enum AppleMapFlags : uint
@@ -489,6 +489,25 @@ public sealed class AppleMap : IPartition
Reserved = 0xBFFFFC00
}
+#endregion
+
+#region Nested type: AppleMapOldPartitionEntry
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct AppleMapOldPartitionEntry
+ {
+ /// First sector of the partition
+ public readonly uint pdStart;
+ /// Number of sectors of the partition
+ public readonly uint pdSize;
+ /// Partition type
+ public readonly uint pdFSID;
+ }
+
+#endregion
+
+#region Nested type: AppleMapPartitionEntry
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct AppleMapPartitionEntry
{
@@ -535,4 +554,20 @@ public sealed class AppleMap : IPartition
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public readonly uint[] boot_arguments;
}
+
+#endregion
+
+#region Nested type: AppleOldDevicePartitionMap
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct AppleOldDevicePartitionMap
+ {
+ /// Signature
+ public readonly ushort pdSig;
+ /// Entries of the driver descriptor
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 42)]
+ public readonly AppleMapOldPartitionEntry[] pdMap;
+ }
+
+#endregion
}
\ No newline at end of file
diff --git a/Aaru.Partitions/Apricot.cs b/Aaru.Partitions/Apricot.cs
index 65e4827eb..d34b6cb97 100644
--- a/Aaru.Partitions/Apricot.cs
+++ b/Aaru.Partitions/Apricot.cs
@@ -46,11 +46,8 @@ namespace Aaru.Partitions;
/// Implements decoding of Apricot partitions
public sealed class Apricot : IPartition
{
- const string MODULE_NAME = "Apricot partitions plugin";
- readonly int[] _baudRates =
- {
- 50, 75, 110, 134, 150, 300, 600, 1200, 1800, 2400, 3600, 4800, 7200, 9600, 19200
- };
+ const string MODULE_NAME = "Apricot partitions plugin";
+ readonly int[] _baudRates = { 50, 75, 110, 134, 150, 300, 600, 1200, 1800, 2400, 3600, 4800, 7200, 9600, 19200 };
readonly string[] _bootTypeCodes =
{
Localization.Non_bootable, Localization.Apricot_XI_RAM_BIOS, Localization.Generic_ROM_BIOS,
@@ -60,14 +57,8 @@ public sealed class Apricot : IPartition
{
Localization.MF1DD_70_track, "MF1DD", "MF2DD", "Winchester 5M", "Winchester 10M", "Winchester 20M"
};
- readonly int[] _lineModes =
- {
- 256, 200
- };
- readonly int[] _lineWidths =
- {
- 80, 40
- };
+ readonly int[] _lineModes = { 256, 200 };
+ readonly int[] _lineWidths = { 80, 40 };
readonly string[] _operatingSystemCodes =
{
Localization.Invalid_operating_system, "MS-DOS", "UCSD Pascal", Localization.CPM, "Concurrent CP/M"
@@ -77,19 +68,17 @@ public sealed class Apricot : IPartition
Localization.None_parity, Localization.Odd_parity, Localization.Even_parity, Localization.Mark_parity,
Localization.Space_parity
};
- readonly string[] _printDevices =
- {
- Localization.Parallel_print_device, Localization.Serial_print_device
- };
- readonly double[] _stopBits =
- {
- 1, 1.5, 2
- };
+ readonly string[] _printDevices = { Localization.Parallel_print_device, Localization.Serial_print_device };
+ readonly double[] _stopBits = { 1, 1.5, 2 };
+
+#region IPartition Members
///
public string Name => Localization.Apricot_Name;
+
///
public Guid Id => new("8CBF5864-7B5A-47A0-8CEB-199C74FA22DE");
+
///
public string Author => Authors.NataliaPortillo;
@@ -130,31 +119,32 @@ public sealed class Apricot : IPartition
: Localization.Unknown_operating_system);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.writeProtected = {0}", label.writeProtected);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.copyProtected = {0}", label.copyProtected);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.copyProtected = {0}", label.copyProtected);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.bootType = {0} ({1})", label.bootType,
- label.bootType < _bootTypeCodes.Length ? _bootTypeCodes[label.bootType]
+ label.bootType < _bootTypeCodes.Length
+ ? _bootTypeCodes[label.bootType]
: Localization.Unknown_boot_type);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.partitionCount = {0}", label.partitionCount);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.winchester = {0}", label.winchester);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.sectorSize = {0}", label.sectorSize);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.spt = {0}", label.spt);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.cylinders = {0}", label.cylinders);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.heads = {0}", label.heads);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.interleave = {0}", label.interleave);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.skew = {0}", label.skew);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.bootLocation = {0}", label.bootLocation);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.bootSize = {0}", label.bootSize);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.partitionCount = {0}", label.partitionCount);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.winchester = {0}", label.winchester);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.sectorSize = {0}", label.sectorSize);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.spt = {0}", label.spt);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.cylinders = {0}", label.cylinders);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.heads = {0}", label.heads);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.interleave = {0}", label.interleave);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.skew = {0}", label.skew);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.bootLocation = {0}", label.bootLocation);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.bootSize = {0}", label.bootSize);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.bootAddress = 0x{0:X8}", label.bootAddress);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.bootOffset:label.bootSegment = {0:X4}:{1:X4}",
label.bootOffset, label.bootSegment);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.firstDataBlock = {0}", label.firstDataBlock);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.generation = {0}", label.generation);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.copyCount = {0}", label.copyCount);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.maxCopies = {0}", label.maxCopies);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.generation = {0}", label.generation);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.copyCount = {0}", label.copyCount);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.maxCopies = {0}", label.maxCopies);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.serialNumber = \"{0}\"",
StringHandlers.CToString(label.serialNumber));
@@ -165,18 +155,19 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine(MODULE_NAME, "label.copyright = \"{0}\"",
StringHandlers.CToString(label.copyright));
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.bps = {0}", label.mainBPB.bps);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.spc = {0}", label.mainBPB.spc);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.bps = {0}", label.mainBPB.bps);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.spc = {0}", label.mainBPB.spc);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.rsectors = {0}", label.mainBPB.rsectors);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.fats_no = {0}", label.mainBPB.fats_no);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.fats_no = {0}", label.mainBPB.fats_no);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.root_ent = {0}", label.mainBPB.root_ent);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.sectors = {0}", label.mainBPB.sectors);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.media = {0}", label.mainBPB.media);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.spfat = {0}", label.mainBPB.spfat);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.sectors = {0}", label.mainBPB.sectors);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.media = {0}", label.mainBPB.media);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.spfat = {0}", label.mainBPB.spfat);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.diskType = {0} ({1})", label.mainBPB.diskType,
label.mainBPB.diskType < _diskTypeCodes.Length
- ? _diskTypeCodes[label.mainBPB.diskType] : Localization.Unknown_disk_type);
+ ? _diskTypeCodes[label.mainBPB.diskType]
+ : Localization.Unknown_disk_type);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.mainBPB.startSector = {0}", label.mainBPB.startSector);
@@ -188,23 +179,24 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine(MODULE_NAME, "label.biosMajorVersion = {0}", label.biosMajorVersion);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.biosMinorVersion = {0}", label.biosMinorVersion);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.diagnosticsFlag = {0}", label.diagnosticsFlag);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.diagnosticsFlag = {0}", label.diagnosticsFlag);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.prnDevice = {0} ({1})", label.prnDevice,
- label.prnDevice < _printDevices.Length ? _printDevices[label.prnDevice]
+ label.prnDevice < _printDevices.Length
+ ? _printDevices[label.prnDevice]
: Localization.Unknown_print_device);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.bellVolume = {0}", label.bellVolume);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.enableCache = {0}", label.enableCache);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.enableGraphics = {0}", label.enableGraphics);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.dosLength = {0}", label.dosLength);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.fontLength = {0}", label.fontLength);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.keyboardLength = {0}", label.keyboardLength);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.dosStart = {0}", label.dosStart);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.fontStart = {0}", label.fontStart);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.keyboardStart = {0}", label.keyboardStart);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.keyboardVolume = {0}", label.keyboardVolume);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.autorepeat = {0}", label.autorepeat);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.bellVolume = {0}", label.bellVolume);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.enableCache = {0}", label.enableCache);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.enableGraphics = {0}", label.enableGraphics);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.dosLength = {0}", label.dosLength);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.fontLength = {0}", label.fontLength);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.keyboardLength = {0}", label.keyboardLength);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.dosStart = {0}", label.dosStart);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.fontStart = {0}", label.fontStart);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.keyboardStart = {0}", label.keyboardStart);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.keyboardVolume = {0}", label.keyboardVolume);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.autorepeat = {0}", label.autorepeat);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.autorepeatLeadIn = {0}", label.autorepeatLeadIn);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.autorepeatInterval = {0}", label.autorepeatInterval);
@@ -240,18 +232,19 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine(MODULE_NAME, "label.parityCheck = {0}", label.parityCheck);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.parityType = {0} ({1})", label.parityType,
- label.parityType < _parityTypes.Length ? _parityTypes[label.parityType]
+ label.parityType < _parityTypes.Length
+ ? _parityTypes[label.parityType]
: Localization.Unknown_parity_type);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.txXonXoff = {0}", label.txXonXoff);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.rxXonXoff = {0}", label.rxXonXoff);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.xonCharacter = {0}", label.xonCharacter);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.xoffCharacter = {0}", label.xoffCharacter);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.txXonXoff = {0}", label.txXonXoff);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.rxXonXoff = {0}", label.rxXonXoff);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.xonCharacter = {0}", label.xonCharacter);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.xoffCharacter = {0}", label.xoffCharacter);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.rxXonXoffBuffer = {0}", label.rxXonXoffBuffer);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.dtrDsr = {0}", label.dtrDsr);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.ctsRts = {0}", label.ctsRts);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.nullsAfterCr = {0}", label.nullsAfterCr);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.nullsAfterFF = {0}", label.nullsAfterFF);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.dtrDsr = {0}", label.dtrDsr);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.ctsRts = {0}", label.ctsRts);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.nullsAfterCr = {0}", label.nullsAfterCr);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.nullsAfterFF = {0}", label.nullsAfterFF);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.lfAfterCRSerial = {0}", label.lfAfterCRSerial);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.biosErrorReportSerial = {0}",
@@ -261,9 +254,9 @@ public sealed class Apricot : IPartition
ArrayHelpers.ArrayIsNullOrEmpty(label.spareSerial));
AaruConsole.DebugWriteLine(MODULE_NAME, "label.lfAfterCrParallel = {0}", label.lfAfterCrParallel);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.selectLine = {0}", label.selectLine);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.paperEmpty = {0}", label.paperEmpty);
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.faultLine = {0}", label.faultLine);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.selectLine = {0}", label.selectLine);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.paperEmpty = {0}", label.paperEmpty);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.faultLine = {0}", label.faultLine);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.biosErrorReportParallel = {0}",
label.biosErrorReportParallel);
@@ -274,16 +267,16 @@ public sealed class Apricot : IPartition
AaruConsole.DebugWriteLine(MODULE_NAME, "label.spareWinchester is null? = {0}",
ArrayHelpers.ArrayIsNullOrEmpty(label.spareWinchester));
- AaruConsole.DebugWriteLine(MODULE_NAME, "label.parkingEnabled = {0}", label.parkingEnabled);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "label.parkingEnabled = {0}", label.parkingEnabled);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.formatProtection = {0}", label.formatProtection);
AaruConsole.DebugWriteLine(MODULE_NAME, "label.spareRamDisk is null? = {0}",
ArrayHelpers.ArrayIsNullOrEmpty(label.spareRamDisk));
- for(int i = 0; i < 32; i++)
+ for(var i = 0; i < 32; i++)
AaruConsole.DebugWriteLine(MODULE_NAME, "label.badBlocks[{1}] = {0}", label.badBlocks[i], i);
- for(int i = 0; i < 8; i++)
+ for(var i = 0; i < 8; i++)
{
AaruConsole.DebugWriteLine(MODULE_NAME, "label.partitions[{1}].bps = {0}", label.partitions[i].bps,
i);
@@ -349,6 +342,10 @@ public sealed class Apricot : IPartition
return partitions.Count > 0;
}
+#endregion
+
+#region Nested type: Label
+
/// Apricot Label.
[StructLayout(LayoutKind.Sequential, Pack = 1)]
readonly struct Label
@@ -560,6 +557,10 @@ public sealed class Apricot : IPartition
public readonly bool cpmDoubleSided;
}
+#endregion
+
+#region Nested type: ParameterBlock
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct ParameterBlock
{
@@ -584,4 +585,6 @@ public sealed class Apricot : IPartition
/// Volume starting sector
public readonly ushort startSector;
}
+
+#endregion
}
\ No newline at end of file
diff --git a/Aaru.Partitions/Atari.cs b/Aaru.Partitions/Atari.cs
index 369f9a75d..6f6810293 100644
--- a/Aaru.Partitions/Atari.cs
+++ b/Aaru.Partitions/Atari.cs
@@ -61,10 +61,14 @@ public sealed class AtariPartitions : IPartition
const uint TYPE_MINIX2 = 0x004D4E58;
const string MODULE_NAME = "Atari partitions plugin";
+#region IPartition Members
+
///
public string Name => Localization.AtariPartitions_Name;
+
///
public Guid Id => new("d1dd0f24-ec39-4c4d-9072-be31919a3b5e");
+
///
public string Author => Authors.NataliaPortillo;
@@ -89,22 +93,22 @@ public sealed class AtariPartitions : IPartition
Array.Copy(sector, 0, table.Boot, 0, 342);
- for(int i = 0; i < 8; i++)
+ for(var i = 0; i < 8; i++)
{
- table.IcdEntries[i].Type = BigEndianBitConverter.ToUInt32(sector, 342 + (i * 12) + 0);
- table.IcdEntries[i].Start = BigEndianBitConverter.ToUInt32(sector, 342 + (i * 12) + 4);
- table.IcdEntries[i].Length = BigEndianBitConverter.ToUInt32(sector, 342 + (i * 12) + 8);
+ table.IcdEntries[i].Type = BigEndianBitConverter.ToUInt32(sector, 342 + i * 12 + 0);
+ table.IcdEntries[i].Start = BigEndianBitConverter.ToUInt32(sector, 342 + i * 12 + 4);
+ table.IcdEntries[i].Length = BigEndianBitConverter.ToUInt32(sector, 342 + i * 12 + 8);
}
Array.Copy(sector, 438, table.Unused, 0, 12);
table.Size = BigEndianBitConverter.ToUInt32(sector, 450);
- for(int i = 0; i < 4; i++)
+ for(var i = 0; i < 4; i++)
{
- table.Entries[i].Type = BigEndianBitConverter.ToUInt32(sector, 454 + (i * 12) + 0);
- table.Entries[i].Start = BigEndianBitConverter.ToUInt32(sector, 454 + (i * 12) + 4);
- table.Entries[i].Length = BigEndianBitConverter.ToUInt32(sector, 454 + (i * 12) + 8);
+ table.Entries[i].Type = BigEndianBitConverter.ToUInt32(sector, 454 + i * 12 + 0);
+ table.Entries[i].Start = BigEndianBitConverter.ToUInt32(sector, 454 + i * 12 + 4);
+ table.Entries[i].Length = BigEndianBitConverter.ToUInt32(sector, 454 + i * 12 + 8);
}
table.BadStart = BigEndianBitConverter.ToUInt32(sector, 502);
@@ -115,7 +119,7 @@ public sealed class AtariPartitions : IPartition
sha1Ctx.Update(table.Boot);
AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Boot_code_SHA1_0, sha1Ctx.End());
- for(int i = 0; i < 8; i++)
+ for(var i = 0; i < 8; i++)
{
AaruConsole.DebugWriteLine(MODULE_NAME, Markup.Escape("table.icdEntries[{0}].flag = 0x{1:X2}"),
i, (table.IcdEntries[i].Type & 0xFF000000) >> 24);
@@ -132,7 +136,7 @@ public sealed class AtariPartitions : IPartition
AaruConsole.DebugWriteLine(MODULE_NAME, "table.size = {0}", table.Size);
- for(int i = 0; i < 4; i++)
+ for(var i = 0; i < 4; i++)
{
AaruConsole.DebugWriteLine(MODULE_NAME, Markup.Escape("table.entries[{0}].flag = 0x{1:X2}"), i,
(table.Entries[i].Type & 0xFF000000) >> 24);
@@ -147,14 +151,14 @@ public sealed class AtariPartitions : IPartition
table.Entries[i].Length);
}
- AaruConsole.DebugWriteLine(MODULE_NAME, "table.badStart = {0}", table.BadStart);
- AaruConsole.DebugWriteLine(MODULE_NAME, "table.badLength = {0}", table.BadLength);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "table.badStart = {0}", table.BadStart);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "table.badLength = {0}", table.BadLength);
AaruConsole.DebugWriteLine(MODULE_NAME, "table.checksum = 0x{0:X4}", table.Checksum);
- bool validTable = false;
+ var validTable = false;
ulong partitionSequence = 0;
- for(int i = 0; i < 4; i++)
+ for(var i = 0; i < 4; i++)
{
uint type = table.Entries[i].Type & 0x00FFFFFF;
@@ -176,15 +180,17 @@ public sealed class AtariPartitions : IPartition
if(table.Entries[i].Start <= imagePlugin.Info.Sectors)
{
if(table.Entries[i].Start + table.Entries[i].Length > imagePlugin.Info.Sectors)
+ {
AaruConsole.DebugWriteLine(MODULE_NAME,
Localization.WARNING_End_of_partition_goes_beyond_device_size);
+ }
ulong sectorSize = imagePlugin.Info.SectorSize;
if(sectorSize is 2448 or 2352)
sectorSize = 2048;
- byte[] partType = new byte[3];
+ var partType = new byte[3];
partType[0] = (byte)((type & 0xFF0000) >> 16);
partType[1] = (byte)((type & 0x00FF00) >> 8);
partType[2] = (byte)(type & 0x0000FF);
@@ -266,19 +272,19 @@ public sealed class AtariPartitions : IPartition
Entries = new AtariEntry[4]
};
- for(int j = 0; j < 4; j++)
+ for(var j = 0; j < 4; j++)
{
extendedTable.Entries[j].Type =
- BigEndianBitConverter.ToUInt32(extendedSector, 454 + (j * 12) + 0);
+ BigEndianBitConverter.ToUInt32(extendedSector, 454 + j * 12 + 0);
extendedTable.Entries[j].Start =
- BigEndianBitConverter.ToUInt32(extendedSector, 454 + (j * 12) + 4);
+ BigEndianBitConverter.ToUInt32(extendedSector, 454 + j * 12 + 4);
extendedTable.Entries[j].Length =
- BigEndianBitConverter.ToUInt32(extendedSector, 454 + (j * 12) + 8);
+ BigEndianBitConverter.ToUInt32(extendedSector, 454 + j * 12 + 8);
}
- for(int j = 0; j < 4; j++)
+ for(var j = 0; j < 4; j++)
{
uint extendedType = extendedTable.Entries[j].Type & 0x00FFFFFF;
@@ -301,15 +307,17 @@ public sealed class AtariPartitions : IPartition
continue;
if(extendedTable.Entries[j].Start + extendedTable.Entries[j].Length > imagePlugin.Info.Sectors)
+ {
AaruConsole.DebugWriteLine(MODULE_NAME,
Localization.WARNING_End_of_partition_goes_beyond_device_size);
+ }
ulong sectorSize = imagePlugin.Info.SectorSize;
if(sectorSize is 2448 or 2352)
sectorSize = 2048;
- byte[] partType = new byte[3];
+ var partType = new byte[3];
partType[0] = (byte)((extendedType & 0xFF0000) >> 16);
partType[1] = (byte)((extendedType & 0x00FF00) >> 8);
partType[2] = (byte)(extendedType & 0x0000FF);
@@ -386,7 +394,7 @@ public sealed class AtariPartitions : IPartition
if(!validTable)
return partitions.Count > 0;
- for(int i = 0; i < 8; i++)
+ for(var i = 0; i < 8; i++)
{
uint type = table.IcdEntries[i].Type & 0x00FFFFFF;
@@ -407,15 +415,17 @@ public sealed class AtariPartitions : IPartition
continue;
if(table.IcdEntries[i].Start + table.IcdEntries[i].Length > imagePlugin.Info.Sectors)
+ {
AaruConsole.DebugWriteLine(MODULE_NAME,
Localization.WARNING_End_of_partition_goes_beyond_device_size);
+ }
ulong sectorSize = imagePlugin.Info.SectorSize;
if(sectorSize is 2448 or 2352)
sectorSize = 2048;
- byte[] partType = new byte[3];
+ var partType = new byte[3];
partType[0] = (byte)((type & 0xFF0000) >> 16);
partType[1] = (byte)((type & 0x00FF00) >> 8);
partType[2] = (byte)(type & 0x0000FF);
@@ -488,6 +498,10 @@ public sealed class AtariPartitions : IPartition
return partitions.Count > 0;
}
+#endregion
+
+#region Nested type: AtariEntry
+
/// Atari partition entry
struct AtariEntry
{
@@ -499,6 +513,10 @@ public sealed class AtariPartitions : IPartition
public uint Length;
}
+#endregion
+
+#region Nested type: AtariTable
+
struct AtariTable
{
/// Boot code for 342 bytes
@@ -518,4 +536,6 @@ public sealed class AtariPartitions : IPartition
/// Checksum for bootable disks
public ushort Checksum;
}
+
+#endregion
}
\ No newline at end of file
diff --git a/Aaru.Partitions/BSD.cs b/Aaru.Partitions/BSD.cs
index e3f0d3fa2..e949d9548 100644
--- a/Aaru.Partitions/BSD.cs
+++ b/Aaru.Partitions/BSD.cs
@@ -55,20 +55,18 @@ public sealed class BSD : IPartition
const uint MAX_LABEL_SIZE = 500;
const string MODULE_NAME = "BSD disklabel plugin";
/// Known sector locations for BSD disklabel
- readonly ulong[] _labelLocations =
- {
- 0, 1, 2, 9
- };
+ readonly ulong[] _labelLocations = { 0, 1, 2, 9 };
/// Known byte offsets for BSD disklabel
- readonly uint[] _labelOffsets =
- {
- 0, 9, 64, 128, 516
- };
+ readonly uint[] _labelOffsets = { 0, 9, 64, 128, 516 };
+
+#region IPartition Members
///
public string Name => Localization.BSD_Name;
+
///
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
+
///
public string Author => Authors.NataliaPortillo;
@@ -81,8 +79,8 @@ public sealed class BSD : IPartition
if((MAX_LABEL_SIZE + _labelOffsets.Last()) % imagePlugin.Info.SectorSize > 0)
run++;
- var dl = new DiskLabel();
- bool found = false;
+ var dl = new DiskLabel();
+ var found = false;
foreach(ulong location in _labelLocations)
{
@@ -96,7 +94,7 @@ public sealed class BSD : IPartition
foreach(uint offset in _labelOffsets)
{
- byte[] sector = new byte[MAX_LABEL_SIZE];
+ var sector = new byte[MAX_LABEL_SIZE];
if(offset + MAX_LABEL_SIZE > tmp.Length)
break;
@@ -128,46 +126,46 @@ public sealed class BSD : IPartition
if(dl is { d_magic: DISK_CIGAM, d_magic2: DISK_CIGAM })
dl = SwapDiskLabel(dl);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_type = {0}", dl.d_type);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_subtype = {0}", dl.d_subtype);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_typename = {0}", StringHandlers.CToString(dl.d_typename));
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_packname = {0}", StringHandlers.CToString(dl.d_packname));
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_secsize = {0}", dl.d_secsize);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_nsectors = {0}", dl.d_nsectors);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_ntracks = {0}", dl.d_ntracks);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_ncylinders = {0}", dl.d_ncylinders);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_secpercyl = {0}", dl.d_secpercyl);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_secperunit = {0}", dl.d_secperunit);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_type = {0}", dl.d_type);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_subtype = {0}", dl.d_subtype);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_typename = {0}", StringHandlers.CToString(dl.d_typename));
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_packname = {0}", StringHandlers.CToString(dl.d_packname));
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_secsize = {0}", dl.d_secsize);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_nsectors = {0}", dl.d_nsectors);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_ntracks = {0}", dl.d_ntracks);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_ncylinders = {0}", dl.d_ncylinders);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_secpercyl = {0}", dl.d_secpercyl);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_secperunit = {0}", dl.d_secperunit);
AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_sparespertrack = {0}", dl.d_sparespertrack);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_sparespercyl = {0}", dl.d_sparespercyl);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_acylinders = {0}", dl.d_acylinders);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_rpm = {0}", dl.d_rpm);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_interleave = {0}", dl.d_interleave);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_trackskew = {0}", dl.d_trackskew);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_cylskeew = {0}", dl.d_cylskeew);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_headswitch = {0}", dl.d_headswitch);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_trkseek = {0}", dl.d_trkseek);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_flags = {0}", dl.d_flags);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[0] = {0}", dl.d_drivedata[0]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[1] = {0}", dl.d_drivedata[1]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[2] = {0}", dl.d_drivedata[2]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[3] = {0}", dl.d_drivedata[3]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[4] = {0}", dl.d_drivedata[4]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[0] = {0}", dl.d_spare[0]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[1] = {0}", dl.d_spare[1]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[2] = {0}", dl.d_spare[2]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[3] = {0}", dl.d_spare[3]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[4] = {0}", dl.d_spare[4]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_magic2 = 0x{0:X8}", dl.d_magic2);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_checksum = 0x{0:X8}", dl.d_checksum);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_npartitions = {0}", dl.d_npartitions);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_bbsize = {0}", dl.d_bbsize);
- AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_sbsize = {0}", dl.d_sbsize);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_sparespercyl = {0}", dl.d_sparespercyl);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_acylinders = {0}", dl.d_acylinders);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_rpm = {0}", dl.d_rpm);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_interleave = {0}", dl.d_interleave);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_trackskew = {0}", dl.d_trackskew);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_cylskeew = {0}", dl.d_cylskeew);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_headswitch = {0}", dl.d_headswitch);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_trkseek = {0}", dl.d_trkseek);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_flags = {0}", dl.d_flags);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[0] = {0}", dl.d_drivedata[0]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[1] = {0}", dl.d_drivedata[1]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[2] = {0}", dl.d_drivedata[2]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[3] = {0}", dl.d_drivedata[3]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_drivedata[4] = {0}", dl.d_drivedata[4]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[0] = {0}", dl.d_spare[0]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[1] = {0}", dl.d_spare[1]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[2] = {0}", dl.d_spare[2]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[3] = {0}", dl.d_spare[3]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_spare[4] = {0}", dl.d_spare[4]);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_magic2 = 0x{0:X8}", dl.d_magic2);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_checksum = 0x{0:X8}", dl.d_checksum);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_npartitions = {0}", dl.d_npartitions);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_bbsize = {0}", dl.d_bbsize);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_sbsize = {0}", dl.d_sbsize);
ulong counter = 0;
- bool addSectorOffset = false;
+ var addSectorOffset = false;
- for(int i = 0; i < dl.d_npartitions && i < 22; i++)
+ for(var i = 0; i < dl.d_npartitions && i < 22; i++)
{
AaruConsole.DebugWriteLine(MODULE_NAME, "dl.d_partitions[i].p_offset = {0}", dl.d_partitions[i].p_offset);
@@ -210,40 +208,71 @@ public sealed class BSD : IPartition
return partitions.Count > 0;
}
+#endregion
+
internal static string FSTypeToString(fsType typ)
{
switch(typ)
{
- case fsType.Unused: return Localization.Unused_entry;
- case fsType.Swap: return Localization.Swap_partition;
- case fsType.V6: return Localization.UNIX_6th_Edition;
- case fsType.V7: return Localization.UNIX_7th_Edition;
- case fsType.SystemV: return Localization.UNIX_System_V;
- case fsType.V7_1K: return Localization.UNIX_7th_Edition_with_1K_blocks;
- case fsType.V8: return Localization.UNIX_8th_Edition_with_4K_blocks;
- case fsType.BSDFFS: return Localization._4_2_BSD_Fast_File_System;
- case fsType.BSDLFS: return Localization._4_4_LFS;
- case fsType.HPFS: return Localization.HPFS;
- case fsType.ISO9660: return Localization.ISO9660;
+ case fsType.Unused:
+ return Localization.Unused_entry;
+ case fsType.Swap:
+ return Localization.Swap_partition;
+ case fsType.V6:
+ return Localization.UNIX_6th_Edition;
+ case fsType.V7:
+ return Localization.UNIX_7th_Edition;
+ case fsType.SystemV:
+ return Localization.UNIX_System_V;
+ case fsType.V7_1K:
+ return Localization.UNIX_7th_Edition_with_1K_blocks;
+ case fsType.V8:
+ return Localization.UNIX_8th_Edition_with_4K_blocks;
+ case fsType.BSDFFS:
+ return Localization._4_2_BSD_Fast_File_System;
+ case fsType.BSDLFS:
+ return Localization._4_4_LFS;
+ case fsType.HPFS:
+ return Localization.HPFS;
+ case fsType.ISO9660:
+ return Localization.ISO9660;
case fsType.Boot:
- case fsType.SysVBoot: return Localization.Boot;
- case fsType.AFFS: return Localization.Amiga_FFS;
- case fsType.HFS: return Localization.Apple_HFS;
- case fsType.ADVfs: return Localization.Digital_Advanced_File_System;
- case fsType.LSMpublic: return Localization.Digital_LSM_Public_Region;
- case fsType.LSMprivate: return Localization.Digital_LSM_Private_Region;
- case fsType.LSMsimple: return Localization.Digital_LSM_Simple_Disk;
- case fsType.CCD: return Localization.Concatenated_disk;
- case fsType.JFS2: return Localization.IBM_JFS2;
- case fsType.HAMMER: return Localization.Hammer;
- case fsType.HAMMER2: return Localization.Hammer2;
- case fsType.UDF: return Localization.UDF;
- case fsType.EFS: return Localization.EFS;
- case fsType.ZFS: return Localization.ZFS;
- case fsType.NANDFS: return Localization.FreeBSD_nandfs;
- case fsType.MSDOS: return Localization.FAT;
- case fsType.Other: return Localization.Other_or_unknown;
- default: return Localization.Unknown_partition_type;
+ case fsType.SysVBoot:
+ return Localization.Boot;
+ case fsType.AFFS:
+ return Localization.Amiga_FFS;
+ case fsType.HFS:
+ return Localization.Apple_HFS;
+ case fsType.ADVfs:
+ return Localization.Digital_Advanced_File_System;
+ case fsType.LSMpublic:
+ return Localization.Digital_LSM_Public_Region;
+ case fsType.LSMprivate:
+ return Localization.Digital_LSM_Private_Region;
+ case fsType.LSMsimple:
+ return Localization.Digital_LSM_Simple_Disk;
+ case fsType.CCD:
+ return Localization.Concatenated_disk;
+ case fsType.JFS2:
+ return Localization.IBM_JFS2;
+ case fsType.HAMMER:
+ return Localization.Hammer;
+ case fsType.HAMMER2:
+ return Localization.Hammer2;
+ case fsType.UDF:
+ return Localization.UDF;
+ case fsType.EFS:
+ return Localization.EFS;
+ case fsType.ZFS:
+ return Localization.ZFS;
+ case fsType.NANDFS:
+ return Localization.FreeBSD_nandfs;
+ case fsType.MSDOS:
+ return Localization.FAT;
+ case fsType.Other:
+ return Localization.Other_or_unknown;
+ default:
+ return Localization.Unknown_partition_type;
}
}
@@ -251,18 +280,142 @@ public sealed class BSD : IPartition
{
dl = (DiskLabel)Marshal.SwapStructureMembersEndian(dl);
- for(int i = 0; i < dl.d_drivedata.Length; i++)
+ for(var i = 0; i < dl.d_drivedata.Length; i++)
dl.d_drivedata[i] = Swapping.Swap(dl.d_drivedata[i]);
- for(int i = 0; i < dl.d_spare.Length; i++)
+ for(var i = 0; i < dl.d_spare.Length; i++)
dl.d_spare[i] = Swapping.Swap(dl.d_spare[i]);
- for(int i = 0; i < dl.d_partitions.Length; i++)
+ for(var i = 0; i < dl.d_partitions.Length; i++)
dl.d_partitions[i] = (BSDPartition)Marshal.SwapStructureMembersEndian(dl.d_partitions[i]);
return dl;
}
+#region Nested type: BSDPartition
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct BSDPartition
+ {
+ /// Sectors in partition
+ public readonly uint p_size;
+ /// Starting sector
+ public readonly uint p_offset;
+ /// Fragment size
+ public readonly uint p_fsize;
+ /// Filesystem type,
+ public readonly fsType p_fstype;
+ /// Fragment size
+ public readonly byte p_frag;
+ /// Cylinder per group
+ public readonly ushort p_cpg;
+ }
+
+#endregion
+
+#region Nested type: dFlags
+
+ /// Drive flags
+ [SuppressMessage("ReSharper", "InconsistentNaming")]
+ [Flags]
+ enum dFlags : uint
+ {
+ /// Removable media
+ Removable = 0x01,
+ /// Drive supports ECC
+ ECC = 0x02,
+ /// Drive supports bad sector forwarding
+ BadSectorForward = 0x04,
+ /// Disk emulator
+ RAMDisk = 0x08,
+ /// Can do back to back transfer
+ Chain = 0x10,
+ /// Dynamic geometry device
+ DynamicGeometry = 0x20
+ }
+
+#endregion
+
+#region Nested type: DiskLabel
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ struct DiskLabel
+ {
+ ///
+ ///
+ ///
+ public readonly uint d_magic;
+ ///
+ ///
+ ///
+ public readonly dType d_type;
+ /// Disk subtype
+ public readonly ushort d_subtype;
+ /// Type name
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
+ public readonly byte[] d_typename;
+ /// Pack identifier
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
+ public readonly byte[] d_packname;
+ /// Bytes per sector
+ public readonly uint d_secsize;
+ /// Sectors per track
+ public readonly uint d_nsectors;
+ /// Tracks per cylinder
+ public readonly uint d_ntracks;
+ /// Cylinders per unit
+ public readonly uint d_ncylinders;
+ /// Sectors per cylinder
+ public readonly uint d_secpercyl;
+ /// Sectors per unit
+ public readonly uint d_secperunit;
+ /// Spare sectors per track
+ public readonly ushort d_sparespertrack;
+ /// Spare sectors per cylinder
+ public readonly ushort d_sparespercyl;
+ /// Alternate cylinders
+ public readonly uint d_acylinders;
+ /// Rotational speed
+ public readonly ushort d_rpm;
+ /// Hardware sector interleave
+ public readonly ushort d_interleave;
+ /// Sector 0 skew per track
+ public readonly ushort d_trackskew;
+ /// Sector 0 sker per cylinder
+ public readonly ushort d_cylskeew;
+ /// Head switch time in microseconds
+ public readonly uint d_headswitch;
+ /// Track to track seek in microseconds
+ public readonly uint d_trkseek;
+ ///
+ ///
+ ///
+ public readonly dFlags d_flags;
+ /// Drive-specific information
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
+ public readonly uint[] d_drivedata;
+ /// Reserved
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
+ public readonly uint[] d_spare;
+ /// again
+ public readonly uint d_magic2;
+ /// XOR of data
+ public readonly ushort d_checksum;
+ /// How many partitions
+ public readonly ushort d_npartitions;
+ /// Size of boot area in bytes
+ public readonly uint d_bbsize;
+ /// Maximum size of superblock in bytes
+ public readonly uint d_sbsize;
+ /// Partitions
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 22)]
+ public readonly BSDPartition[] d_partitions;
+ }
+
+#endregion
+
+#region Nested type: dType
+
/// Drive type
[SuppressMessage("ReSharper", "InconsistentNaming")]
enum dType : ushort
@@ -313,6 +466,10 @@ public sealed class BSD : IPartition
MD = 22
}
+#endregion
+
+#region Nested type: fsType
+
/// Filesystem type
[SuppressMessage("ReSharper", "InconsistentNaming")]
internal enum fsType : byte
@@ -393,112 +550,5 @@ public sealed class BSD : IPartition
NANDFS = 30
}
- /// Drive flags
- [SuppressMessage("ReSharper", "InconsistentNaming"), Flags]
- enum dFlags : uint
- {
- /// Removable media
- Removable = 0x01,
- /// Drive supports ECC
- ECC = 0x02,
- /// Drive supports bad sector forwarding
- BadSectorForward = 0x04,
- /// Disk emulator
- RAMDisk = 0x08,
- /// Can do back to back transfer
- Chain = 0x10,
- /// Dynamic geometry device
- DynamicGeometry = 0x20
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct DiskLabel
- {
- ///
- ///
- ///
- public readonly uint d_magic;
- ///
- ///
- ///
- public readonly dType d_type;
- /// Disk subtype
- public readonly ushort d_subtype;
- /// Type name
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
- public readonly byte[] d_typename;
- /// Pack identifier
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
- public readonly byte[] d_packname;
- /// Bytes per sector
- public readonly uint d_secsize;
- /// Sectors per track
- public readonly uint d_nsectors;
- /// Tracks per cylinder
- public readonly uint d_ntracks;
- /// Cylinders per unit
- public readonly uint d_ncylinders;
- /// Sectors per cylinder
- public readonly uint d_secpercyl;
- /// Sectors per unit
- public readonly uint d_secperunit;
- /// Spare sectors per track
- public readonly ushort d_sparespertrack;
- /// Spare sectors per cylinder
- public readonly ushort d_sparespercyl;
- /// Alternate cylinders
- public readonly uint d_acylinders;
- /// Rotational speed
- public readonly ushort d_rpm;
- /// Hardware sector interleave
- public readonly ushort d_interleave;
- /// Sector 0 skew per track
- public readonly ushort d_trackskew;
- /// Sector 0 sker per cylinder
- public readonly ushort d_cylskeew;
- /// Head switch time in microseconds
- public readonly uint d_headswitch;
- /// Track to track seek in microseconds
- public readonly uint d_trkseek;
- ///
- ///
- ///
- public readonly dFlags d_flags;
- /// Drive-specific information
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
- public readonly uint[] d_drivedata;
- /// Reserved
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
- public readonly uint[] d_spare;
- /// again
- public readonly uint d_magic2;
- /// XOR of data
- public readonly ushort d_checksum;
- /// How many partitions
- public readonly ushort d_npartitions;
- /// Size of boot area in bytes
- public readonly uint d_bbsize;
- /// Maximum size of superblock in bytes
- public readonly uint d_sbsize;
- /// Partitions
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 22)]
- public readonly BSDPartition[] d_partitions;
- }
-
- [StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct BSDPartition
- {
- /// Sectors in partition
- public readonly uint p_size;
- /// Starting sector
- public readonly uint p_offset;
- /// Fragment size
- public readonly uint p_fsize;
- /// Filesystem type,
- public readonly fsType p_fstype;
- /// Fragment size
- public readonly byte p_frag;
- /// Cylinder per group
- public readonly ushort p_cpg;
- }
+#endregion
}
\ No newline at end of file
diff --git a/Aaru.Partitions/DEC.cs b/Aaru.Partitions/DEC.cs
index 35c79bfde..34b913246 100644
--- a/Aaru.Partitions/DEC.cs
+++ b/Aaru.Partitions/DEC.cs
@@ -47,10 +47,14 @@ public sealed class DEC : IPartition
const int PT_MAGIC = 0x032957;
const int PT_VALID = 1;
+#region IPartition Members
+
///
public string Name => Localization.DEC_Name;
+
///
public Guid Id => new("58CEC3B7-3B93-4D47-86EE-D6DADE9D444F");
+
///
public string Author => Authors.NataliaPortillo;
@@ -93,6 +97,10 @@ public sealed class DEC : IPartition
return true;
}
+#endregion
+
+#region Nested type: Label
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
readonly struct Label
{
@@ -104,10 +112,16 @@ public sealed class DEC : IPartition
public readonly Partition[] pt_part;
}
+#endregion
+
+#region Nested type: Partition
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
readonly struct Partition
{
public readonly int pi_nblocks;
public readonly uint pi_blkoff;
}
+
+#endregion
}
\ No newline at end of file
diff --git a/Aaru.Partitions/DragonFlyBSD.cs b/Aaru.Partitions/DragonFlyBSD.cs
index 6e1a26016..2a435622a 100644
--- a/Aaru.Partitions/DragonFlyBSD.cs
+++ b/Aaru.Partitions/DragonFlyBSD.cs
@@ -48,10 +48,14 @@ public sealed class DragonFlyBSD : IPartition
{
const uint DISK_MAGIC64 = 0xC4464C59;
+#region IPartition Members
+
///
public string Name => Localization.DragonFlyBSD_Name;
+
///
public Guid Id => new("D49E41A6-D952-4760-9D94-03DAE2450C5F");
+
///
public string Author => Authors.NataliaPortillo;
@@ -84,14 +88,15 @@ public sealed class DragonFlyBSD : IPartition
{
var part = new Partition
{
- Start = (entry.p_boffset / imagePlugin.Info.SectorSize) + sectorOffset,
- Offset = entry.p_boffset + (sectorOffset * imagePlugin.Info.SectorSize),
+ Start = entry.p_boffset / imagePlugin.Info.SectorSize + sectorOffset,
+ Offset = entry.p_boffset + sectorOffset * imagePlugin.Info.SectorSize,
Size = entry.p_bsize,
Length = entry.p_bsize / imagePlugin.Info.SectorSize,
Name = entry.p_stor_uuid.ToString(),
Sequence = counter,
Scheme = Name,
- Type = (BSD.fsType)entry.p_fstype == BSD.fsType.Other ? entry.p_type_uuid.ToString()
+ Type = (BSD.fsType)entry.p_fstype == BSD.fsType.Other
+ ? entry.p_type_uuid.ToString()
: BSD.FSTypeToString((BSD.fsType)entry.p_fstype)
};
@@ -109,6 +114,10 @@ public sealed class DragonFlyBSD : IPartition
return true;
}
+#endregion
+
+#region Nested type: Disklabel64
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
readonly struct Disklabel64
{
@@ -132,6 +141,10 @@ public sealed class DragonFlyBSD : IPartition
public readonly Partition64[] d_partitions;
}
+#endregion
+
+#region Nested type: Partition64
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
readonly struct Partition64
{
@@ -147,4 +160,6 @@ public sealed class DragonFlyBSD : IPartition
public readonly Guid p_type_uuid;
public readonly Guid p_stor_uuid;
}
+
+#endregion
}
\ No newline at end of file
diff --git a/Aaru.Partitions/GPT.cs b/Aaru.Partitions/GPT.cs
index cf35e23fc..8b0a991a6 100644
--- a/Aaru.Partitions/GPT.cs
+++ b/Aaru.Partitions/GPT.cs
@@ -52,10 +52,14 @@ public sealed class GuidPartitionTable : IPartition
const uint GPT_REVISION1 = 0x00010000;
const string MODULE_NAME = "GUID Partition Table (GPT) Plugin";
+#region IPartition Members
+
///
public string Name => Localization.GuidPartitionTable_Name;
+
///
public Guid Id => new("CBC9D281-C1D0-44E8-9038-4D66FD2678AB");
+
///
public string Author => Authors.NataliaPortillo;
@@ -74,12 +78,13 @@ public sealed class GuidPartitionTable : IPartition
Header hdr;
- ulong signature = BitConverter.ToUInt64(hdrBytes, 0);
- bool misaligned = false;
+ var signature = BitConverter.ToUInt64(hdrBytes, 0);
+ var misaligned = false;
AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.signature = 0x{0:X16}", signature);
if(signature != GPT_MAGIC)
+ {
if(imagePlugin.Info.MetadataMediaType == MetadataMediaType.OpticalDisc)
{
errno = imagePlugin.ReadSector(sectorOffset, out hdrBytes);
@@ -93,7 +98,7 @@ public sealed class GuidPartitionTable : IPartition
if(signature == GPT_MAGIC)
{
AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Found_unaligned_signature, signature);
- byte[] real = new byte[512];
+ var real = new byte[512];
Array.Copy(hdrBytes, 512, real, 0, 512);
hdrBytes = real;
misaligned = true;
@@ -103,6 +108,7 @@ public sealed class GuidPartitionTable : IPartition
}
else
return false;
+ }
try
{
@@ -113,18 +119,18 @@ public sealed class GuidPartitionTable : IPartition
return false;
}
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.revision = 0x{0:X8}", hdr.revision);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.headerSize = {0}", hdr.headerSize);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.headerCrc = 0x{0:X8}", hdr.headerCrc);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.reserved = 0x{0:X8}", hdr.reserved);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.myLBA = {0}", hdr.myLBA);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.alternateLBA = {0}", hdr.alternateLBA);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.firstUsableLBA = {0}", hdr.firstUsableLBA);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.lastUsableLBA = {0}", hdr.lastUsableLBA);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.diskGuid = {0}", hdr.diskGuid);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.entryLBA = {0}", hdr.entryLBA);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.entries = {0}", hdr.entries);
- AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.entriesSize = {0}", hdr.entriesSize);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.revision = 0x{0:X8}", hdr.revision);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.headerSize = {0}", hdr.headerSize);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.headerCrc = 0x{0:X8}", hdr.headerCrc);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.reserved = 0x{0:X8}", hdr.reserved);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.myLBA = {0}", hdr.myLBA);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.alternateLBA = {0}", hdr.alternateLBA);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.firstUsableLBA = {0}", hdr.firstUsableLBA);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.lastUsableLBA = {0}", hdr.lastUsableLBA);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.diskGuid = {0}", hdr.diskGuid);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.entryLBA = {0}", hdr.entryLBA);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.entries = {0}", hdr.entries);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.entriesSize = {0}", hdr.entriesSize);
AaruConsole.DebugWriteLine(MODULE_NAME, "hdr.entriesCrc = 0x{0:X8}", hdr.entriesCrc);
if(hdr.signature != GPT_MAGIC)
@@ -158,24 +164,24 @@ public sealed class GuidPartitionTable : IPartition
if(errno != ErrorNumber.NoError)
return false;
- byte[] entriesBytes = new byte[temp.Length - (modulo * 512)];
+ var entriesBytes = new byte[temp.Length - modulo * 512];
Array.Copy(temp, modulo * 512, entriesBytes, 0, entriesBytes.Length);
List entries = new();
- for(int i = 0; i < hdr.entries; i++)
+ for(var i = 0; i < hdr.entries; i++)
{
try
{
- byte[] entryBytes = new byte[hdr.entriesSize];
+ var entryBytes = new byte[hdr.entriesSize];
Array.Copy(entriesBytes, hdr.entriesSize * i, entryBytes, 0, hdr.entriesSize);
entries.Add(Marshal.ByteArrayToStructureLittleEndian(entryBytes));
}
- #pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body
+ #pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body
catch
{
// ignored
}
- #pragma warning restore RECS0022 // A catch clause that catches System.Exception and has an empty body
+ #pragma warning restore RECS0022 // A catch clause that catches System.Exception and has an empty body
}
if(entries.Count == 0)
@@ -186,12 +192,12 @@ public sealed class GuidPartitionTable : IPartition
foreach(Entry entry in entries.Where(entry => entry.partitionType != Guid.Empty &&
entry.partitionId != Guid.Empty))
{
- AaruConsole.DebugWriteLine(MODULE_NAME, "entry.partitionType = {0}", entry.partitionType);
- AaruConsole.DebugWriteLine(MODULE_NAME, "entry.partitionId = {0}", entry.partitionId);
- AaruConsole.DebugWriteLine(MODULE_NAME, "entry.startLBA = {0}", entry.startLBA);
- AaruConsole.DebugWriteLine(MODULE_NAME, "entry.endLBA = {0}", entry.endLBA);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "entry.partitionType = {0}", entry.partitionType);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "entry.partitionId = {0}", entry.partitionId);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "entry.startLBA = {0}", entry.startLBA);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "entry.endLBA = {0}", entry.endLBA);
AaruConsole.DebugWriteLine(MODULE_NAME, "entry.attributes = 0x{0:X16}", entry.attributes);
- AaruConsole.DebugWriteLine(MODULE_NAME, "entry.name = {0}", entry.name);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "entry.name = {0}", entry.name);
if(entry.startLBA / divisor > imagePlugin.Info.Sectors ||
entry.endLBA / divisor > imagePlugin.Info.Sectors)
@@ -217,115 +223,231 @@ public sealed class GuidPartitionTable : IPartition
return true;
}
+#endregion
+
static string GetGuidTypeName(Guid type)
{
string strType = type.ToString().ToUpperInvariant();
switch(strType)
{
- case "024DEE41-33E7-11D3-9D69-0008C781F39F": return Localization.MBR_scheme;
- case "C12A7328-F81F-11D2-BA4B-00A0C93EC93B": return Localization.EFI_System;
- case "21686148-6449-6E6F-744E-656564454649": return Localization.BIOS_Boot;
- case "D3BFE2DE-3DAF-11DF-BA40-E3A556D89593": return Localization.Intel_Fast_Flash_iFFS;
- case "F4019732-066E-4E12-8273-346C5641494F": return Localization.Sony_boot;
- case "BFBFAFE7-A34F-448A-9A5B-6213EB736C22": return Localization.Lenovo_boot;
- case "E3C9E316-0B5C-4DB8-817D-F92DF00215AE": return Localization.Microsoft_Reserved_MSR;
- case "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7": return Localization.Microsoft_Basic_data;
- case "5808C8AA-7E8F-42E0-85D2-E1E90434CFB3": return Localization.Logical_Disk_Manager_LDM_metadata;
- case "AF9B60A0-1431-4F62-BC68-3311714A69AD": return Localization.Logical_Disk_Manager_data;
- case "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC": return Localization.Windows_Recovery_Environment;
- case "37AFFC90-EF7D-4E96-91C3-2D7AE055B174": return Localization.IBM_General_Parallel_File_System_GPFS;
- case "E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D": return Localization.Windows_Storage_Spaces;
- case "75894C1E-3AEB-11D3-B7C1-7B03A0000000": return Localization.HP_UX_Data;
- case "E2A1E728-32E3-11D6-A682-7B03A0000000": return Localization.HP_UX_Service;
- case "0FC63DAF-8483-4772-8E79-3D69D8477DE4": return Localization.Linux_filesystem;
- case "A19D880F-05FC-4D3B-A006-743F0F84911E": return Localization.Linux_RAID;
- case "44479540-F297-41B2-9AF7-D131D5F0458A": return Localization.Linux_Root_x86;
- case "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709": return Localization.Linux_Root_x86_64;
- case "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3": return Localization.Linux_Root_32_bit_ARM;
- case "B921B045-1DF0-41C3-AF44-4C6F280D3FAE": return Localization.Linux_Root_AArch64;
- case "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F": return Localization.Linux_swap;
- case "E6D6D379-F507-44C2-A23C-238F2A3DF928": return Localization.Logical_Volume_Manager_LVM;
- case "933AC7E1-2EB4-4F13-B844-0E14E2AEF915": return Localization.Linux_home;
- case "3B8F8425-20E0-4F3B-907F-1A25A76F98E8": return Localization.Linux_srv;
- case "7FFEC5C9-2D00-49B7-8941-3EA10A5586B7": return Localization.Plain_dm_crypt;
- case "CA7D7CCB-63ED-4C53-861C-1742536059CC": return Localization.LUKS;
- case "8DA63339-0007-60C0-C436-083AC8230908": return Localization.Linux_Reserved;
- case "83BD6B9D-7F41-11DC-BE0B-001560B84F0F": return Localization.FreeBSD_Boot;
- case "516E7CB4-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_Data;
- case "516E7CB5-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_swap;
- case "516E7CB6-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_UFS;
- case "516E7CB7-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_UFS2;
- case "516E7CB8-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_Vinum;
- case "516E7CBA-6ECF-11D6-8FF8-00022D09712B": return Localization.FreeBSD_ZFS;
- case "74BA7DD9-A689-11E1-BD04-00E081286ACF": return Localization.FreeBSD_nandfs;
- case "48465300-0000-11AA-AA11-00306543ECAC": return Localization.Apple_HFS;
- case "55465300-0000-11AA-AA11-00306543ECAC": return Localization.Apple_UFS;
- case "52414944-0000-11AA-AA11-00306543ECAC": return Localization.Apple_RAID;
- case "52414944-5F4F-11AA-AA11-00306543ECAC": return Localization.Apple_RAID_offline;
- case "426F6F74-0000-11AA-AA11-00306543ECAC": return Localization.Apple_Boot;
- case "4C616265-6C00-11AA-AA11-00306543ECAC": return Localization.Apple_Label;
- case "5265636F-7665-11AA-AA11-00306543ECAC": return Localization.Apple_TV_Recovery;
- case "53746F72-6167-11AA-AA11-00306543ECAC": return Localization.Apple_Core_Storage;
- case "6A82CB45-1DD2-11B2-99A6-080020736631": return Localization.Solaris_boot;
- case "6A85CF4D-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Root;
- case "6A87C46F-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Swap;
- case "6A8B642B-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Backup;
- case "6A898CC3-1DD2-11B2-99A6-080020736631": return Localization.Solaris_usr_or_Apple_ZFS;
- case "6A8EF2E9-1DD2-11B2-99A6-080020736631": return Localization.Solaris_var;
- case "6A90BA39-1DD2-11B2-99A6-080020736631": return Localization.Solaris_home;
- case "6A9283A5-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Alternate_sector;
+ case "024DEE41-33E7-11D3-9D69-0008C781F39F":
+ return Localization.MBR_scheme;
+ case "C12A7328-F81F-11D2-BA4B-00A0C93EC93B":
+ return Localization.EFI_System;
+ case "21686148-6449-6E6F-744E-656564454649":
+ return Localization.BIOS_Boot;
+ case "D3BFE2DE-3DAF-11DF-BA40-E3A556D89593":
+ return Localization.Intel_Fast_Flash_iFFS;
+ case "F4019732-066E-4E12-8273-346C5641494F":
+ return Localization.Sony_boot;
+ case "BFBFAFE7-A34F-448A-9A5B-6213EB736C22":
+ return Localization.Lenovo_boot;
+ case "E3C9E316-0B5C-4DB8-817D-F92DF00215AE":
+ return Localization.Microsoft_Reserved_MSR;
+ case "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7":
+ return Localization.Microsoft_Basic_data;
+ case "5808C8AA-7E8F-42E0-85D2-E1E90434CFB3":
+ return Localization.Logical_Disk_Manager_LDM_metadata;
+ case "AF9B60A0-1431-4F62-BC68-3311714A69AD":
+ return Localization.Logical_Disk_Manager_data;
+ case "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC":
+ return Localization.Windows_Recovery_Environment;
+ case "37AFFC90-EF7D-4E96-91C3-2D7AE055B174":
+ return Localization.IBM_General_Parallel_File_System_GPFS;
+ case "E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D":
+ return Localization.Windows_Storage_Spaces;
+ case "75894C1E-3AEB-11D3-B7C1-7B03A0000000":
+ return Localization.HP_UX_Data;
+ case "E2A1E728-32E3-11D6-A682-7B03A0000000":
+ return Localization.HP_UX_Service;
+ case "0FC63DAF-8483-4772-8E79-3D69D8477DE4":
+ return Localization.Linux_filesystem;
+ case "A19D880F-05FC-4D3B-A006-743F0F84911E":
+ return Localization.Linux_RAID;
+ case "44479540-F297-41B2-9AF7-D131D5F0458A":
+ return Localization.Linux_Root_x86;
+ case "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709":
+ return Localization.Linux_Root_x86_64;
+ case "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3":
+ return Localization.Linux_Root_32_bit_ARM;
+ case "B921B045-1DF0-41C3-AF44-4C6F280D3FAE":
+ return Localization.Linux_Root_AArch64;
+ case "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F":
+ return Localization.Linux_swap;
+ case "E6D6D379-F507-44C2-A23C-238F2A3DF928":
+ return Localization.Logical_Volume_Manager_LVM;
+ case "933AC7E1-2EB4-4F13-B844-0E14E2AEF915":
+ return Localization.Linux_home;
+ case "3B8F8425-20E0-4F3B-907F-1A25A76F98E8":
+ return Localization.Linux_srv;
+ case "7FFEC5C9-2D00-49B7-8941-3EA10A5586B7":
+ return Localization.Plain_dm_crypt;
+ case "CA7D7CCB-63ED-4C53-861C-1742536059CC":
+ return Localization.LUKS;
+ case "8DA63339-0007-60C0-C436-083AC8230908":
+ return Localization.Linux_Reserved;
+ case "83BD6B9D-7F41-11DC-BE0B-001560B84F0F":
+ return Localization.FreeBSD_Boot;
+ case "516E7CB4-6ECF-11D6-8FF8-00022D09712B":
+ return Localization.FreeBSD_Data;
+ case "516E7CB5-6ECF-11D6-8FF8-00022D09712B":
+ return Localization.FreeBSD_swap;
+ case "516E7CB6-6ECF-11D6-8FF8-00022D09712B":
+ return Localization.FreeBSD_UFS;
+ case "516E7CB7-6ECF-11D6-8FF8-00022D09712B":
+ return Localization.FreeBSD_UFS2;
+ case "516E7CB8-6ECF-11D6-8FF8-00022D09712B":
+ return Localization.FreeBSD_Vinum;
+ case "516E7CBA-6ECF-11D6-8FF8-00022D09712B":
+ return Localization.FreeBSD_ZFS;
+ case "74BA7DD9-A689-11E1-BD04-00E081286ACF":
+ return Localization.FreeBSD_nandfs;
+ case "48465300-0000-11AA-AA11-00306543ECAC":
+ return Localization.Apple_HFS;
+ case "55465300-0000-11AA-AA11-00306543ECAC":
+ return Localization.Apple_UFS;
+ case "52414944-0000-11AA-AA11-00306543ECAC":
+ return Localization.Apple_RAID;
+ case "52414944-5F4F-11AA-AA11-00306543ECAC":
+ return Localization.Apple_RAID_offline;
+ case "426F6F74-0000-11AA-AA11-00306543ECAC":
+ return Localization.Apple_Boot;
+ case "4C616265-6C00-11AA-AA11-00306543ECAC":
+ return Localization.Apple_Label;
+ case "5265636F-7665-11AA-AA11-00306543ECAC":
+ return Localization.Apple_TV_Recovery;
+ case "53746F72-6167-11AA-AA11-00306543ECAC":
+ return Localization.Apple_Core_Storage;
+ case "6A82CB45-1DD2-11B2-99A6-080020736631":
+ return Localization.Solaris_boot;
+ case "6A85CF4D-1DD2-11B2-99A6-080020736631":
+ return Localization.Solaris_Root;
+ case "6A87C46F-1DD2-11B2-99A6-080020736631":
+ return Localization.Solaris_Swap;
+ case "6A8B642B-1DD2-11B2-99A6-080020736631":
+ return Localization.Solaris_Backup;
+ case "6A898CC3-1DD2-11B2-99A6-080020736631":
+ return Localization.Solaris_usr_or_Apple_ZFS;
+ case "6A8EF2E9-1DD2-11B2-99A6-080020736631":
+ return Localization.Solaris_var;
+ case "6A90BA39-1DD2-11B2-99A6-080020736631":
+ return Localization.Solaris_home;
+ case "6A9283A5-1DD2-11B2-99A6-080020736631":
+ return Localization.Solaris_Alternate_sector;
case "6A945A3B-1DD2-11B2-99A6-080020736631":
case "6A9630D1-1DD2-11B2-99A6-080020736631":
case "6A980767-1DD2-11B2-99A6-080020736631":
case "6A96237F-1DD2-11B2-99A6-080020736631":
- case "6A8D2AC7-1DD2-11B2-99A6-080020736631": return Localization.Solaris_Reserved;
- case "49F48D32-B10E-11DC-B99B-0019D1879648": return Localization.NetBSD_Swap;
- case "49F48D5A-B10E-11DC-B99B-0019D1879648": return Localization.NetBSD_FFS;
- case "49F48D82-B10E-11DC-B99B-0019D1879648": return Localization.NetBSD_LFS;
- case "49F48DAA-B10E-11DC-B99B-0019D1879648": return Localization.NetBSD_RAID;
- case "2DB519C4-B10F-11DC-B99B-0019D1879648": return Localization.NetBSD_Concatenated;
- case "2DB519EC-B10F-11DC-B99B-0019D1879648": return Localization.NetBSD_Encrypted;
- case "FE3A2A5D-4F32-41A7-B725-ACCC3285A309": return Localization.ChromeOS_kernel;
- case "3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC": return Localization.ChromeOS_rootfs;
- case "2E0A753D-9E48-43B0-8337-B15192CB1B5E": return Localization.ChromeOS_future_use;
- case "42465331-3BA3-10F1-802A-4861696B7521": return Localization.Haiku_BFS;
- case "85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_Boot;
- case "85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_Data;
- case "85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_Swap;
- case "0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_UFS;
- case "85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_Vinum;
- case "85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7": return Localization.MidnightBSD_ZFS;
- case "45B0969E-9B03-4F30-B4C6-B4B80CEFF106": return Localization.Ceph_Journal;
- case "45B0969E-9B03-4F30-B4C6-5EC00CEFF106": return Localization.Ceph_dm_crypt_Encrypted_Journal;
- case "4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D": return Localization.Ceph_OSD;
- case "4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D": return Localization.Ceph_dm_crypt_OSD;
- case "89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE": return Localization.Ceph_disk_in_creation;
- case "89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE": return Localization.Ceph_dm_crypt_disk_in_creation;
- case "824CC7A0-36A8-11E3-890A-952519AD3F61": return Localization.OpenBSD_Data;
- case "CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1": return Localization.QNX_Power_safe_QNX6;
- case "C91818F9-8025-47AF-89D2-F030D7000C2C": return Localization.Plan_9;
- case "9D275380-40AD-11DB-BF97-000C2911D1B8": return Localization.VMware_vmkcore_coredump;
- case "AA31E02A-400F-11DB-9590-000C2911D1B8": return Localization.VMware_VMFS;
- case "9198EFFC-31C0-11DB-8F78-000C2911D1B8": return Localization.VMware_Reserved;
- case "7412F7D5-A156-4B13-81DC-867174929325": return Localization.ONIE_boot;
- case "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149": return Localization.ONIE_config;
- case "9E1A2D38-C612-4316-AA26-8B49521E5A8B": return Localization.PowerPC_PReP_boot;
- case "0311FC50-01CA-4725-AD77-9ADBB20ACE98": return Localization.Acronis_Secure_Zone;
- case "7C3457EF-0000-11AA-AA11-00306543ECAC": return Localization.Apple_File_System;
- case "9D087404-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_Label;
- case "9D58FDBD-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_Swap;
- case "9D94CE7C-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_UFS;
- case "9DD4478F-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_Vinum;
- case "DBD5211B-1CA5-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_CCD;
- case "3D48CE54-1D16-11DC-8817-01301BB8A9F5": return Localization.DragonflyBSD_Label;
- case "BD215AB2-1D16-11DC-8696-01301BB8A9F5": return Localization.DragonflyBSD_Legacy;
- case "61DC63AC-6E38-11DC-8513-01301BB8A9F5": return Localization.DragonflyBSD_Hammer;
- case "5CBB9AD1-862D-11DC-A94D-01301BB8A9F5": return Localization.DragonflyBSD_Hammer2;
- default: return "";
+ case "6A8D2AC7-1DD2-11B2-99A6-080020736631":
+ return Localization.Solaris_Reserved;
+ case "49F48D32-B10E-11DC-B99B-0019D1879648":
+ return Localization.NetBSD_Swap;
+ case "49F48D5A-B10E-11DC-B99B-0019D1879648":
+ return Localization.NetBSD_FFS;
+ case "49F48D82-B10E-11DC-B99B-0019D1879648":
+ return Localization.NetBSD_LFS;
+ case "49F48DAA-B10E-11DC-B99B-0019D1879648":
+ return Localization.NetBSD_RAID;
+ case "2DB519C4-B10F-11DC-B99B-0019D1879648":
+ return Localization.NetBSD_Concatenated;
+ case "2DB519EC-B10F-11DC-B99B-0019D1879648":
+ return Localization.NetBSD_Encrypted;
+ case "FE3A2A5D-4F32-41A7-B725-ACCC3285A309":
+ return Localization.ChromeOS_kernel;
+ case "3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC":
+ return Localization.ChromeOS_rootfs;
+ case "2E0A753D-9E48-43B0-8337-B15192CB1B5E":
+ return Localization.ChromeOS_future_use;
+ case "42465331-3BA3-10F1-802A-4861696B7521":
+ return Localization.Haiku_BFS;
+ case "85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7":
+ return Localization.MidnightBSD_Boot;
+ case "85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7":
+ return Localization.MidnightBSD_Data;
+ case "85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7":
+ return Localization.MidnightBSD_Swap;
+ case "0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7":
+ return Localization.MidnightBSD_UFS;
+ case "85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7":
+ return Localization.MidnightBSD_Vinum;
+ case "85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7":
+ return Localization.MidnightBSD_ZFS;
+ case "45B0969E-9B03-4F30-B4C6-B4B80CEFF106":
+ return Localization.Ceph_Journal;
+ case "45B0969E-9B03-4F30-B4C6-5EC00CEFF106":
+ return Localization.Ceph_dm_crypt_Encrypted_Journal;
+ case "4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D":
+ return Localization.Ceph_OSD;
+ case "4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D":
+ return Localization.Ceph_dm_crypt_OSD;
+ case "89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE":
+ return Localization.Ceph_disk_in_creation;
+ case "89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE":
+ return Localization.Ceph_dm_crypt_disk_in_creation;
+ case "824CC7A0-36A8-11E3-890A-952519AD3F61":
+ return Localization.OpenBSD_Data;
+ case "CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1":
+ return Localization.QNX_Power_safe_QNX6;
+ case "C91818F9-8025-47AF-89D2-F030D7000C2C":
+ return Localization.Plan_9;
+ case "9D275380-40AD-11DB-BF97-000C2911D1B8":
+ return Localization.VMware_vmkcore_coredump;
+ case "AA31E02A-400F-11DB-9590-000C2911D1B8":
+ return Localization.VMware_VMFS;
+ case "9198EFFC-31C0-11DB-8F78-000C2911D1B8":
+ return Localization.VMware_Reserved;
+ case "7412F7D5-A156-4B13-81DC-867174929325":
+ return Localization.ONIE_boot;
+ case "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149":
+ return Localization.ONIE_config;
+ case "9E1A2D38-C612-4316-AA26-8B49521E5A8B":
+ return Localization.PowerPC_PReP_boot;
+ case "0311FC50-01CA-4725-AD77-9ADBB20ACE98":
+ return Localization.Acronis_Secure_Zone;
+ case "7C3457EF-0000-11AA-AA11-00306543ECAC":
+ return Localization.Apple_File_System;
+ case "9D087404-1CA5-11DC-8817-01301BB8A9F5":
+ return Localization.DragonflyBSD_Label;
+ case "9D58FDBD-1CA5-11DC-8817-01301BB8A9F5":
+ return Localization.DragonflyBSD_Swap;
+ case "9D94CE7C-1CA5-11DC-8817-01301BB8A9F5":
+ return Localization.DragonflyBSD_UFS;
+ case "9DD4478F-1CA5-11DC-8817-01301BB8A9F5":
+ return Localization.DragonflyBSD_Vinum;
+ case "DBD5211B-1CA5-11DC-8817-01301BB8A9F5":
+ return Localization.DragonflyBSD_CCD;
+ case "3D48CE54-1D16-11DC-8817-01301BB8A9F5":
+ return Localization.DragonflyBSD_Label;
+ case "BD215AB2-1D16-11DC-8696-01301BB8A9F5":
+ return Localization.DragonflyBSD_Legacy;
+ case "61DC63AC-6E38-11DC-8513-01301BB8A9F5":
+ return Localization.DragonflyBSD_Hammer;
+ case "5CBB9AD1-862D-11DC-A94D-01301BB8A9F5":
+ return Localization.DragonflyBSD_Hammer2;
+ default:
+ return "";
}
}
+#region Nested type: Entry
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
+ struct Entry
+ {
+ public readonly Guid partitionType;
+ public readonly Guid partitionId;
+ public readonly ulong startLBA;
+ public readonly ulong endLBA;
+ public readonly ulong attributes;
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 36)]
+ public readonly string name;
+ }
+
+#endregion
+
+#region Nested type: Header
+
[StructLayout(LayoutKind.Sequential)]
struct Header
{
@@ -345,15 +467,5 @@ public sealed class GuidPartitionTable : IPartition
public readonly uint entriesCrc;
}
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- struct Entry
- {
- public readonly Guid partitionType;
- public readonly Guid partitionId;
- public readonly ulong startLBA;
- public readonly ulong endLBA;
- public readonly ulong attributes;
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 36)]
- public readonly string name;
- }
+#endregion
}
\ No newline at end of file
diff --git a/Aaru.Partitions/Human68k.cs b/Aaru.Partitions/Human68k.cs
index 7d356cb3e..cc37131e3 100644
--- a/Aaru.Partitions/Human68k.cs
+++ b/Aaru.Partitions/Human68k.cs
@@ -51,10 +51,14 @@ public sealed class Human68K : IPartition
const uint X68K_MAGIC = 0x5836384B;
const string MODULE_NAME = "Human68k partitions plugin";
+#region IPartition Members
+
///
public string Name => Localization.Human68K_Name;
+
///
public Guid Id => new("246A6D93-4F1A-1F8A-344D-50187A5513A9");
+
///
public string Author => Authors.NataliaPortillo;
@@ -89,7 +93,8 @@ public sealed class Human68K : IPartition
sectsPerUnit = 1;
break;
- default: return false;
+ default:
+ return false;
}
if(errno != ErrorNumber.NoError)
@@ -102,11 +107,11 @@ public sealed class Human68K : IPartition
if(table.magic != X68K_MAGIC)
return false;
- for(int i = 0; i < table.entries.Length; i++)
+ for(var i = 0; i < table.entries.Length; i++)
table.entries[i] = (Entry)Marshal.SwapStructureMembersEndian(table.entries[i]);
- AaruConsole.DebugWriteLine(MODULE_NAME, "table.size = {0:X4}", table.size);
- AaruConsole.DebugWriteLine(MODULE_NAME, "table.size2 = {0:X4}", table.size2);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "table.size = {0:X4}", table.size);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "table.size2 = {0:X4}", table.size2);
AaruConsole.DebugWriteLine(MODULE_NAME, "table.unknown = {0:X4}", table.unknown);
ulong counter = 0;
@@ -117,7 +122,7 @@ public sealed class Human68K : IPartition
StringHandlers.CToString(entry.name, Encoding.GetEncoding(932)));
AaruConsole.DebugWriteLine(MODULE_NAME, "entry.stateStart = {0}", entry.stateStart);
- AaruConsole.DebugWriteLine(MODULE_NAME, "entry.length = {0}", entry.length);
+ AaruConsole.DebugWriteLine(MODULE_NAME, "entry.length = {0}", entry.length);
AaruConsole.DebugWriteLine(MODULE_NAME, "sectsPerUnit = {0} {1}", sectsPerUnit,
imagePlugin.Info.SectorSize);
@@ -144,6 +149,23 @@ public sealed class Human68K : IPartition
return true;
}
+#endregion
+
+#region Nested type: Entry
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ readonly struct Entry
+ {
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
+ public readonly byte[] name;
+ public readonly uint stateStart;
+ public readonly uint length;
+ }
+
+#endregion
+
+#region Nested type: Table
+
[StructLayout(LayoutKind.Sequential, Pack = 1)]
readonly struct Table
{
@@ -155,12 +177,5 @@ public sealed class Human68K : IPartition
public readonly Entry[] entries;
}
- [StructLayout(LayoutKind.Sequential, Pack = 1)]
- readonly struct Entry
- {
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
- public readonly byte[] name;
- public readonly uint stateStart;
- public readonly uint length;
- }
+#endregion
}
\ No newline at end of file
diff --git a/Aaru.Partitions/Localization/Localization.es.resx b/Aaru.Partitions/Localization/Localization.es.resx
index ae666a63a..7f7b317f8 100644
--- a/Aaru.Partitions/Localization/Localization.es.resx
+++ b/Aaru.Partitions/Localization/Localization.es.resx
@@ -1,1411 +1,1411 @@
-
-
- text/microsoft-resx
-
-
- 1.3
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
- PublicKeyToken=b77a5c561934e089
-
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
- PublicKeyToken=b77a5c561934e089
-
-
-
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
+ PublicKeyToken=b77a5c561934e089
+
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
+ PublicKeyToken=b77a5c561934e089
+
+
+
Particiones de Acorn FileCore
-
+
Zona Segura de Acronis
-
+
Arranque de AIX, OS/2 o Commodore DOS
-
+
Datos de AIX, Coherent o QNX
-
+
Sistema de ficheros ligero ALFS/THIN para DOS
-
+
(mapeo alternativo de sectores)
-
+
Espacio alternativo de sectores
-
+
Sector alternativo de pista
-
+
Espacio alternativo de pista
-
+
Bloque de Disco Rígido (RDB) de Amiga
-
+
Sistema de Ficheros Rápido de Amiga
-
+
Sistema de Ficheros Rápido de Amiga con caché de directorio
-
+
Sistema de Ficheros Rápido de Amiga con caché de directorio y parches multi-usuario
-
+
Sistema de Ficheros Rápido de Amiga con caracteres internacionales
-
+
Sistema de Ficheros Rápido de Amiga con caracteres internacionales y parches multi-usuario
-
+
Sistema de Ficheros Rápido de Amiga con nombres de fichero largos
-
+
Sistema de Ficheros Rápido de Amiga con parches multi-usuario
-
+
Amiga FFS
-
+
Sistema de Ficheros Original de Amiga
-
+
Sistema de Ficheros Original de Amiga con caché de directorio
-
+
Sistema de Ficheros Original de Amiga con caché de directorio y parches multi-usuario
-
+
Sistema de Ficheros Original de Amiga con caracteres internacionales
-
+
Sistema de Ficheros Original de Amiga con caracteres internacionales y parches multi-usuario
-
+
Sistema de Ficheros Original de Amiga con parches multi-usuario
-
+
Sistema de Ficheros Original de Amiga con nombres de fichero largos
-
+
Sistema de ficheros de arranque de Amiga UNIX
-
+
Sistema de ficheros BSD de Amiga UNIX
-
+
Partición reservada (intercambio) de Amiga UNIX
-
+
Sistema de ficheros System V de Amiga UNIX
-
+
Bloques dañados de Amoeba
-
+
Amoeba u oculta de Linux
-
+
Mapa de Particiones de Apple (APM)
-
+
Arranque de Apple
-
+
Apple Core Storage
-
+
Sistema de ficheros Apple (APFS)
-
+
Apple HFS
-
+
Etiqueta Apple
-
+
RAID de Apple
-
+
RAID de Apple, fuera de línea
-
+
Recuperación de Apple TV
-
+
Apple UFS
-
+
Apricto F1 ROM BIOS
-
+
Particiones de ACT Apricot
-
+
Apricot Portable ROM BIOS
-
+
Apricot & XI RAM BIOS
-
+
Apricot & XI ROM BIOS
-
+
Intercambio de AST-Windows
-
+
Particiones de Atari
-
+
Partición de Atari GEMDOS
-
+
Partición de Atari GEMDOS de más de 32 MiB
-
+
Partición de Atari UNIX
-
+
dañado
-
+
Bloque dañado en {0} reemplazado por bloque correcto en {1}
-
+
fichero de sectores dañados
-
+
BeOS
-
+
Arranque de BIOS
-
+
Arranque
-
+
EMBRM de BootIt
-
+
BootStar
-
+
Checksum del código de arranque: 0x{0:X8}
-
+
SHA1 del código de arranque: {0}
-
+
Punto de entrada del arranque: 0x{0:X8}
-
+
El arranque ocupa {0} bytes.
-
+
Dirección de carga del arranque: 0x{0:X8}
-
+
BSDi
-
+
BSD 4.2 FFS
-
+
BSD 4.4 LFS
-
+
Añadiéndola...
-
+
dl.magic en el sector {0} posición {1} = 0x{2:X8} (se esperaba 0x{3:X8})
-
+
Etiqueta de disco de BSD
-
+
BSD/OS
-
+
Intercambio de BSD
-
+
Sin usar de BSD
-
+
Caché
-
+
No se pudo encontrar la VTOC.
-
+
Disco Ceph en creación
-
+
Disco dm-crypt de Ceph en creación
-
+
Registro Encriptado dm-crypt de Ceph
-
+
OSD dm-crypt de Ceph
-
+
Registro de Ceph
-
+
OSD de Ceph
-
+
Para uso futuro de ChromeOS
-
+
Núclero de ChromeOS
-
+
Raíz de ChromeOS
-
+
Intercambio de Coheren, OPUS o Gestor de Arranque de OS/2
-
+
Diagnósticos de Compaq, partición de recuperación
-
+
Disco concatenado
-
+
Volumen de contenido
-
+
CP/M
-
+
CP/M, CCP/M o CTOS
-
+
CP/M o Microport UNIX
-
+
creado el {0}
-
+
Recordando el final de la última partición ({0}) al tamaño del medio ({1})
-
+
Volumen de panel
-
+
datos
-
+
Volumen de datos
-
+
Etiqueta de disco de DEC
-
+
Partición de Dell
-
+
Sistema de ficheros avanzado (AFS) de Digital
-
+
Región privada de LSM de Digital
-
+
Región pública de LSM de Digital
-
+
Disco simple de LSM de Digital
-
+
Multi-arranque de DiskSecure
-
+
Secundaria de DOS 3.3 o Unisys DOS
-
+
Sólo lectura de DOS
-
+
DragonFly BSD CCD
-
+
DragonFly BSD Hammer
-
+
DragonFly BSD Hammer2
-
+
Etiqueta de DragonFly BSD
-
+
Antigua de DragonFly BSD
-
+
Etiqueta de 64-bits de DragonFly BSD
-
+
Intercambio de DragonFly BSD
-
+
DragonFly BSD UFS
-
+
DragonFly BSD Vinum
-
+
Reservada de DR-DOS
-
+
Extendida segura (LBA) de DR-DOS
-
+
FAT12 segura de DR-DOS
-
+
FAT16 segura de DR-DOS
-
+
FAT16 menor de 32 MiB segura de DR-DOS
-
+
FAT16 (LBA) segura de DR-DOS
-
+
FAT32 segura de DR-DOS
-
+
FAT32 (LBA) segura de DR-DOS
-
+
volcado
-
+
dvh.magic = 0x{0:X8} (debería ser 0x{1:X8})
-
+
Sistema EFI
-
+
Partición de sistema EFI
-
+
EFS
-
+
Vacía
-
+
registro de errores
-
+
registro de errores
-
+
EUMEL/Elan
-
+
Par
-
+
Extendida
-
+
Extendida (LBA)
-
+
EZ-Drive
-
+
FAT
-
+
FAT12
-
+
FAT16
-
+
FAT16 menor de 32 MiB
-
+
FAT16 (LBA)
-
+
FAT32
-
+
FAT32 (LBA)
-
+
FAT, establecida por CrossDOS
-
+
FileCore
-
+
Datos sin sistema de ficheros
-
+
El sistema de ficheros debería montarse automáticamente
-
+
El sistema de ficheros debería formatearse al inicio
-
+
Primer sector de arranque: {0}
-
+
Se encontró entrada alineada.
-
+
Encontrado bloque BadBlock
-
+
Encontrado bloque FileSystemHeader
-
+
Encontrado bloque LoadSegment
-
+
Se encontró entrada no alineada.
-
+
Encontrado bloque PartitionEntry
-
+
Encontrado mágica de RDB en el bloque {0}
-
+
Encontrada firma no alineada
-
+
FreeBSD
-
+
Arranque de FreeBSD
-
+
Datos de FreeBSD
-
+
FreeBSD nandfs
-
+
Intercambio de FreeBSD
-
+
FreeBSD UFS
-
+
FreeBSD UFS2
-
+
FreeBSD Vinum
-
+
FreeBSD ZFS
-
+
Caché de juegos
-
+
ROM BIOS genérica
-
+
GNU Hurd, System V o 386/ix
-
+
Yendo al bloque {0} en búsqueda del bloque BadBlock
-
+
Yendo al bloque {0} en búsqueda del bloque FileSystemHeader
-
+
Yendo al bloque {0} en búsqueda del bloque LoadSegment
-
+
Yendo al bloque {0} en búsqueda del bloque PartitionEntry
-
+
Yendo a leer {0} sectores desde el {1}, obteniendo VTOC del byte {2}
-
+
Yendo a leer más allá del tamaño del dispositivo, abortando...
-
+
Golden Bow VFeature
-
+
Tabla de particiones GUID (GPT)
-
+
Tabla de particiones GUID (GPT)
-
+
BFS de Haiku
-
+
Hammer
-
+
Hammer2
-
+
HFS, establecida por CrossMac
-
+
Hibernación
-
+
Oculta de OS/2 o hibernación de APM
-
+
FAT12 oculta
-
+
FAT16 oculta
-
+
FAT16 menor de 32 MiB oculta o AST-DOS
-
+
FAT16 (LBA) oculta
-
+
FAT32 oculta
-
+
FAT32 (LBA) oculta
-
+
IFS (HPFS/NTFS) oculto
-
+
Oculta de NetWare
-
+
NTFS oculta
-
+
HPFS
-
+
Datos de HP-UX
-
+
Servicio de HP-US
-
+
Expansión de volumen HP
-
+
Particiones de Human 68k
-
+
Sistema de ficheros general paralelo (GPFS) de IBM
-
+
IBM JFS2
-
+
IBM PC/IX
-
+
IFS (HPFS/NFS)
-
+
Intel Fast Flash (iFFS)
-
+
Inválido
-
+
ISO9660
-
+
JXFS
-
+
Arranque de Lenovo
-
+
Linux
-
+
Arranque de Linux
-
+
Extendida de Linux
-
+
Sistema de ficheros de Linux
-
+
Partición de sistema de ficheros de Linux
-
+
/home de Linux
-
+
LVM de Linux
-
+
Partición de Linux
-
+
Texto de Linux
-
+
RAID de Linux
-
+
RAID de Linux o FreeBSD
-
+
Reservada de Linux
-
+
Raíz de Linux para ARM de 32-bits
-
+
Raíz de Linux para ARM de 64-bits (AArch64)
-
+
Raíz de Linux para x86
-
+
Raíz de Linux para x86-64
-
+
/srv de Linux
-
+
Intercambio de Linux
-
+
Partición de intercambio de Linux
-
+
Intercambio de Linux o Solaris
-
+
SHA1 de los datos de LoadSegment: {0}
-
+
Datos del Gestor de Discos Lógicos (LDM)
-
+
Metadatos del Gestor de Discos Lógicos (LDM)
-
+
Volumen lógico
-
+
Gestor de Volúmenes Lógicos (LVM)
-
+
LUKS
-
+
LVM
-
+
Partición de Macintosh
-
+
mantenimiento
-
+
area de mantenimiento
-
+
Marca
-
+
Registro Maestro de Arranque (MBR)
-
+
Esquema MBR
-
+
MF1DD de 70 pistas
-
+
Datos básicos de Microsoft
-
+