mirror of
https://github.com/aaru-dps/Aaru.Server.git
synced 2025-12-16 19:24:27 +00:00
REFACTOR: Fixed MOST name inconsistencies.
This commit is contained in:
@@ -57,7 +57,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.GetEncoding("koi8-r");
|
||||
}
|
||||
|
||||
public AODOS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public AODOS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Alexander Osipov DOS file system";
|
||||
PluginUUID = new Guid("668E5039-9DDD-442A-BE1B-A315D6E38E26");
|
||||
@@ -99,16 +99,16 @@ namespace DiscImageChef.Filesystems
|
||||
|
||||
readonly byte[] AODOSIdentifier = {0x20, 0x41, 0x4F, 0x2D, 0x44, 0x4F, 0x53, 0x20};
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
// Does AO-DOS support hard disks?
|
||||
if(partition.Start > 0) return false;
|
||||
|
||||
// How is it really?
|
||||
if(imagePlugin.ImageInfo.sectorSize != 512) return false;
|
||||
if(imagePlugin.ImageInfo.SectorSize != 512) return false;
|
||||
|
||||
// Does AO-DOS support any other kind of disk?
|
||||
if(imagePlugin.ImageInfo.sectors != 800 && imagePlugin.ImageInfo.sectors != 1600) return false;
|
||||
if(imagePlugin.ImageInfo.Sectors != 800 && imagePlugin.ImageInfo.Sectors != 1600) return false;
|
||||
|
||||
byte[] sector;
|
||||
|
||||
@@ -122,7 +122,7 @@ namespace DiscImageChef.Filesystems
|
||||
return bb.identifier.SequenceEqual(AODOSIdentifier);
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
byte[] sector;
|
||||
@@ -141,11 +141,11 @@ namespace DiscImageChef.Filesystems
|
||||
xmlFSType = new Schemas.FileSystemType
|
||||
{
|
||||
Type = "Alexander Osipov DOS file system",
|
||||
Clusters = (long)imagePlugin.ImageInfo.sectors,
|
||||
ClusterSize = (int)imagePlugin.ImageInfo.sectorSize,
|
||||
Clusters = (long)imagePlugin.ImageInfo.Sectors,
|
||||
ClusterSize = (int)imagePlugin.ImageInfo.SectorSize,
|
||||
Files = bb.files,
|
||||
FilesSpecified = true,
|
||||
FreeClusters = (long)(imagePlugin.ImageInfo.sectors - bb.usedSectors),
|
||||
FreeClusters = (long)(imagePlugin.ImageInfo.Sectors - bb.usedSectors),
|
||||
FreeClustersSpecified = true,
|
||||
VolumeName = StringHandlers.SpacePaddedToString(bb.volumeLabel, CurrentEncoding),
|
||||
Bootable = true
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.UTF8;
|
||||
}
|
||||
|
||||
public APFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public APFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Apple File System";
|
||||
PluginUUID = new Guid("A4060F9D-2909-42E2-9D95-DB31FA7EA797");
|
||||
@@ -76,7 +76,7 @@ namespace DiscImageChef.Filesystems
|
||||
public ulong containerBlocks;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start >= partition.End) return false;
|
||||
|
||||
@@ -97,7 +97,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
StringBuilder sbInformation = new StringBuilder();
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public AcornADFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public AcornADFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Acorn Advanced Disc Filing System";
|
||||
PluginUUID = new Guid("BAFC1E50-9C64-4CD3-8400-80628CC27AFA");
|
||||
@@ -259,14 +259,14 @@ namespace DiscImageChef.Filesystems
|
||||
}
|
||||
|
||||
// TODO: BBC Master hard disks are untested...
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start >= partition.End) return false;
|
||||
|
||||
ulong sbSector;
|
||||
uint sectorsToRead;
|
||||
|
||||
if(imagePlugin.ImageInfo.sectorSize < 256) return false;
|
||||
if(imagePlugin.ImageInfo.SectorSize < 256) return false;
|
||||
|
||||
byte[] sector;
|
||||
GCHandle ptr;
|
||||
@@ -311,9 +311,9 @@ namespace DiscImageChef.Filesystems
|
||||
if(oldMap0.checksum == oldChk0 && oldMap1.checksum == oldChk1 && oldMap0.checksum != 0 &&
|
||||
oldMap1.checksum != 0)
|
||||
{
|
||||
sbSector = oldDirectoryLocation / imagePlugin.ImageInfo.sectorSize;
|
||||
sectorsToRead = oldDirectorySize / imagePlugin.ImageInfo.sectorSize;
|
||||
if(oldDirectorySize % imagePlugin.ImageInfo.sectorSize > 0) sectorsToRead++;
|
||||
sbSector = oldDirectoryLocation / imagePlugin.ImageInfo.SectorSize;
|
||||
sectorsToRead = oldDirectorySize / imagePlugin.ImageInfo.SectorSize;
|
||||
if(oldDirectorySize % imagePlugin.ImageInfo.SectorSize > 0) sectorsToRead++;
|
||||
|
||||
sector = imagePlugin.ReadSectors(sbSector, sectorsToRead);
|
||||
if(sector.Length > oldDirectorySize)
|
||||
@@ -338,9 +338,9 @@ namespace DiscImageChef.Filesystems
|
||||
(oldRoot.header.magic == newDirMagic && oldRoot.tail.magic == newDirMagic)) return true;
|
||||
|
||||
// RISC OS says the old directory can't be in the new location, hard disks created by RISC OS 3.10 do that...
|
||||
sbSector = newDirectoryLocation / imagePlugin.ImageInfo.sectorSize;
|
||||
sectorsToRead = newDirectorySize / imagePlugin.ImageInfo.sectorSize;
|
||||
if(newDirectorySize % imagePlugin.ImageInfo.sectorSize > 0) sectorsToRead++;
|
||||
sbSector = newDirectoryLocation / imagePlugin.ImageInfo.SectorSize;
|
||||
sectorsToRead = newDirectorySize / imagePlugin.ImageInfo.SectorSize;
|
||||
if(newDirectorySize % imagePlugin.ImageInfo.SectorSize > 0) sectorsToRead++;
|
||||
|
||||
sector = imagePlugin.ReadSectors(sbSector, sectorsToRead);
|
||||
if(sector.Length > oldDirectorySize)
|
||||
@@ -374,9 +374,9 @@ namespace DiscImageChef.Filesystems
|
||||
DicConsole.DebugWriteLine("ADFS Plugin", "newChk = {0}", newChk);
|
||||
DicConsole.DebugWriteLine("ADFS Plugin", "map.zoneChecksum = {0}", sector[0]);
|
||||
|
||||
sbSector = bootBlockLocation / imagePlugin.ImageInfo.sectorSize;
|
||||
sectorsToRead = bootBlockSize / imagePlugin.ImageInfo.sectorSize;
|
||||
if(bootBlockSize % imagePlugin.ImageInfo.sectorSize > 0) sectorsToRead++;
|
||||
sbSector = bootBlockLocation / imagePlugin.ImageInfo.SectorSize;
|
||||
sectorsToRead = bootBlockSize / imagePlugin.ImageInfo.SectorSize;
|
||||
if(bootBlockSize % imagePlugin.ImageInfo.SectorSize > 0) sectorsToRead++;
|
||||
|
||||
if(sbSector + partition.Start + sectorsToRead >= partition.End) return false;
|
||||
|
||||
@@ -430,7 +430,7 @@ namespace DiscImageChef.Filesystems
|
||||
// TODO: Find root directory on volumes with DiscRecord
|
||||
// TODO: Support big directories (ADFS-G?)
|
||||
// TODO: Find the real freemap on volumes with DiscRecord, as DiscRecord's discid may be empty but this one isn't
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
StringBuilder sbInformation = new StringBuilder();
|
||||
@@ -489,16 +489,16 @@ namespace DiscImageChef.Filesystems
|
||||
xmlFSType = new Schemas.FileSystemType
|
||||
{
|
||||
Bootable = oldMap1.boot != 0, // Or not?
|
||||
Clusters = (long)(bytes / imagePlugin.ImageInfo.sectorSize),
|
||||
ClusterSize = (int)imagePlugin.ImageInfo.sectorSize,
|
||||
Clusters = (long)(bytes / imagePlugin.ImageInfo.SectorSize),
|
||||
ClusterSize = (int)imagePlugin.ImageInfo.SectorSize,
|
||||
Type = "Acorn Advanced Disc Filing System",
|
||||
};
|
||||
|
||||
if(ArrayHelpers.ArrayIsNullOrEmpty(namebytes))
|
||||
{
|
||||
sbSector = oldDirectoryLocation / imagePlugin.ImageInfo.sectorSize;
|
||||
sectorsToRead = oldDirectorySize / imagePlugin.ImageInfo.sectorSize;
|
||||
if(oldDirectorySize % imagePlugin.ImageInfo.sectorSize > 0) sectorsToRead++;
|
||||
sbSector = oldDirectoryLocation / imagePlugin.ImageInfo.SectorSize;
|
||||
sectorsToRead = oldDirectorySize / imagePlugin.ImageInfo.SectorSize;
|
||||
if(oldDirectorySize % imagePlugin.ImageInfo.SectorSize > 0) sectorsToRead++;
|
||||
|
||||
sector = imagePlugin.ReadSectors(sbSector, sectorsToRead);
|
||||
if(sector.Length > oldDirectorySize)
|
||||
@@ -518,9 +518,9 @@ namespace DiscImageChef.Filesystems
|
||||
else
|
||||
{
|
||||
// RISC OS says the old directory can't be in the new location, hard disks created by RISC OS 3.10 do that...
|
||||
sbSector = newDirectoryLocation / imagePlugin.ImageInfo.sectorSize;
|
||||
sectorsToRead = newDirectorySize / imagePlugin.ImageInfo.sectorSize;
|
||||
if(newDirectorySize % imagePlugin.ImageInfo.sectorSize > 0) sectorsToRead++;
|
||||
sbSector = newDirectoryLocation / imagePlugin.ImageInfo.SectorSize;
|
||||
sectorsToRead = newDirectorySize / imagePlugin.ImageInfo.SectorSize;
|
||||
if(newDirectorySize % imagePlugin.ImageInfo.SectorSize > 0) sectorsToRead++;
|
||||
|
||||
sector = imagePlugin.ReadSectors(sbSector, sectorsToRead);
|
||||
if(sector.Length > oldDirectorySize)
|
||||
@@ -561,7 +561,7 @@ namespace DiscImageChef.Filesystems
|
||||
|
||||
sbInformation.AppendLine("Acorn Advanced Disc Filing System");
|
||||
sbInformation.AppendLine();
|
||||
sbInformation.AppendFormat("{0} bytes per sector", imagePlugin.ImageInfo.sectorSize).AppendLine();
|
||||
sbInformation.AppendFormat("{0} bytes per sector", imagePlugin.ImageInfo.SectorSize).AppendLine();
|
||||
sbInformation.AppendFormat("Volume has {0} bytes", bytes).AppendLine();
|
||||
sbInformation.AppendFormat("Volume name: {0}", StringHandlers.CToString(namebytes, CurrentEncoding))
|
||||
.AppendLine();
|
||||
@@ -587,9 +587,9 @@ namespace DiscImageChef.Filesystems
|
||||
DicConsole.DebugWriteLine("ADFS Plugin", "newChk = {0}", newChk);
|
||||
DicConsole.DebugWriteLine("ADFS Plugin", "map.zoneChecksum = {0}", sector[0]);
|
||||
|
||||
sbSector = bootBlockLocation / imagePlugin.ImageInfo.sectorSize;
|
||||
sectorsToRead = bootBlockSize / imagePlugin.ImageInfo.sectorSize;
|
||||
if(bootBlockSize % imagePlugin.ImageInfo.sectorSize > 0) sectorsToRead++;
|
||||
sbSector = bootBlockLocation / imagePlugin.ImageInfo.SectorSize;
|
||||
sectorsToRead = bootBlockSize / imagePlugin.ImageInfo.SectorSize;
|
||||
if(bootBlockSize % imagePlugin.ImageInfo.SectorSize > 0) sectorsToRead++;
|
||||
|
||||
byte[] bootSector = imagePlugin.ReadSectors(sbSector + partition.Start, sectorsToRead);
|
||||
int bootChk = 0;
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public AmigaDOSPlugin(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public AmigaDOSPlugin(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Amiga DOS filesystem";
|
||||
PluginUUID = new Guid("3c882400-208c-427d-a086-9119852a1bc7");
|
||||
@@ -208,7 +208,7 @@ namespace DiscImageChef.Filesystems
|
||||
public const uint TypeHeader = 2;
|
||||
public const uint SubTypeRoot = 1;
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start >= partition.End) return false;
|
||||
|
||||
@@ -306,7 +306,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
StringBuilder sbInformation = new StringBuilder();
|
||||
@@ -443,7 +443,7 @@ namespace DiscImageChef.Filesystems
|
||||
|
||||
if(bootBlk.checksum == bsum)
|
||||
{
|
||||
Checksums.SHA1Context sha1Ctx = new Checksums.SHA1Context();
|
||||
Checksums.Sha1Context sha1Ctx = new Checksums.Sha1Context();
|
||||
sha1Ctx.Init();
|
||||
sha1Ctx.Update(bootBlk.bootCode);
|
||||
sbInformation.AppendLine("Volume is bootable");
|
||||
@@ -458,7 +458,7 @@ namespace DiscImageChef.Filesystems
|
||||
if((bootBlk.diskType & 0xFF) == 4 || (bootBlk.diskType & 0xFF) == 5)
|
||||
sbInformation.AppendFormat("Directory cache starts at block {0}", rootBlk.extension).AppendLine();
|
||||
|
||||
long blocks = (long)((((partition.End - partition.Start) + 1) * imagePlugin.ImageInfo.sectorSize) /
|
||||
long blocks = (long)((((partition.End - partition.Start) + 1) * imagePlugin.ImageInfo.SectorSize) /
|
||||
blockSize);
|
||||
|
||||
sbInformation.AppendFormat("Volume block size is {0} bytes", blockSize).AppendLine();
|
||||
|
||||
@@ -34,7 +34,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.AppleDOS
|
||||
{
|
||||
@@ -65,7 +65,7 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
List<string> lockedFiles;
|
||||
#endregion Caches
|
||||
|
||||
VTOC vtoc;
|
||||
Vtoc vtoc;
|
||||
ulong start;
|
||||
int sectorsPerTrack;
|
||||
ulong totalFileEntries;
|
||||
|
||||
@@ -87,19 +87,19 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
fileSizeCache = new Dictionary<string, int>();
|
||||
lockedFiles = new List<string>();
|
||||
|
||||
if(lba == 0 || lba > device.ImageInfo.sectors) return Errno.InvalidArgument;
|
||||
if(lba == 0 || lba > device.ImageInfo.Sectors) return Errno.InvalidArgument;
|
||||
|
||||
while(lba != 0)
|
||||
{
|
||||
usedSectors++;
|
||||
byte[] catSector_b = device.ReadSector(lba);
|
||||
byte[] catSectorB = device.ReadSector(lba);
|
||||
totalFileEntries += 7;
|
||||
if(debug) catalogMs.Write(catSector_b, 0, catSector_b.Length);
|
||||
if(debug) catalogMs.Write(catSectorB, 0, catSectorB.Length);
|
||||
|
||||
// Read the catalog sector
|
||||
CatalogSector catSector = new CatalogSector();
|
||||
IntPtr catPtr = Marshal.AllocHGlobal(256);
|
||||
Marshal.Copy(catSector_b, 0, catPtr, 256);
|
||||
Marshal.Copy(catSectorB, 0, catPtr, 256);
|
||||
catSector = (CatalogSector)Marshal.PtrToStructure(catPtr, typeof(CatalogSector));
|
||||
Marshal.FreeHGlobal(catPtr);
|
||||
|
||||
@@ -110,13 +110,13 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
track1UsedByFiles |= entry.extentTrack == 1;
|
||||
track2UsedByFiles |= entry.extentTrack == 2;
|
||||
|
||||
byte[] filename_b = new byte[30];
|
||||
byte[] filenameB = new byte[30];
|
||||
ushort ts = (ushort)((entry.extentTrack << 8) | entry.extentSector);
|
||||
|
||||
// Apple DOS has high byte set over ASCII.
|
||||
for(int i = 0; i < 30; i++) filename_b[i] = (byte)(entry.filename[i] & 0x7F);
|
||||
for(int i = 0; i < 30; i++) filenameB[i] = (byte)(entry.filename[i] & 0x7F);
|
||||
|
||||
string filename = StringHandlers.SpacePaddedToString(filename_b, CurrentEncoding);
|
||||
string filename = StringHandlers.SpacePaddedToString(filenameB, CurrentEncoding);
|
||||
|
||||
if(!catalogCache.ContainsKey(filename)) catalogCache.Add(filename, ts);
|
||||
|
||||
@@ -133,7 +133,7 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
|
||||
lba = (ulong)((catSector.trackOfNext * sectorsPerTrack) + catSector.sectorOfNext);
|
||||
|
||||
if(lba > device.ImageInfo.sectors) break;
|
||||
if(lba > device.ImageInfo.Sectors) break;
|
||||
}
|
||||
|
||||
if(debug) catalogBlocks = catalogMs.ToArray();
|
||||
|
||||
@@ -181,13 +181,13 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
while(lba != 0)
|
||||
{
|
||||
usedSectors++;
|
||||
byte[] tsSector_b = device.ReadSector(lba);
|
||||
if(debug) tsListMs.Write(tsSector_b, 0, tsSector_b.Length);
|
||||
byte[] tsSectorB = device.ReadSector(lba);
|
||||
if(debug) tsListMs.Write(tsSectorB, 0, tsSectorB.Length);
|
||||
|
||||
// Read the track/sector list sector
|
||||
TrackSectorList tsSector = new TrackSectorList();
|
||||
IntPtr tsPtr = Marshal.AllocHGlobal(256);
|
||||
Marshal.Copy(tsSector_b, 0, tsPtr, 256);
|
||||
Marshal.Copy(tsSectorB, 0, tsPtr, 256);
|
||||
tsSector = (TrackSectorList)Marshal.PtrToStructure(tsPtr, typeof(TrackSectorList));
|
||||
Marshal.FreeHGlobal(tsPtr);
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.AppleDOS
|
||||
{
|
||||
@@ -42,19 +42,19 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
{
|
||||
public override bool Identify(ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.ImageInfo.sectors != 455 && imagePlugin.ImageInfo.sectors != 560) return false;
|
||||
if(imagePlugin.ImageInfo.Sectors != 455 && imagePlugin.ImageInfo.Sectors != 560) return false;
|
||||
|
||||
if(partition.Start > 0 || imagePlugin.ImageInfo.sectorSize != 256) return false;
|
||||
if(partition.Start > 0 || imagePlugin.ImageInfo.SectorSize != 256) return false;
|
||||
|
||||
int spt = 0;
|
||||
if(imagePlugin.ImageInfo.sectors == 455) spt = 13;
|
||||
if(imagePlugin.ImageInfo.Sectors == 455) spt = 13;
|
||||
else spt = 16;
|
||||
|
||||
byte[] vtoc_b = imagePlugin.ReadSector((ulong)(17 * spt));
|
||||
vtoc = new VTOC();
|
||||
byte[] vtocB = imagePlugin.ReadSector((ulong)(17 * spt));
|
||||
vtoc = new Vtoc();
|
||||
IntPtr vtocPtr = Marshal.AllocHGlobal(256);
|
||||
Marshal.Copy(vtoc_b, 0, vtocPtr, 256);
|
||||
vtoc = (VTOC)Marshal.PtrToStructure(vtocPtr, typeof(VTOC));
|
||||
Marshal.Copy(vtocB, 0, vtocPtr, 256);
|
||||
vtoc = (Vtoc)Marshal.PtrToStructure(vtocPtr, typeof(Vtoc));
|
||||
Marshal.FreeHGlobal(vtocPtr);
|
||||
|
||||
return vtoc.catalogSector < spt && vtoc.maxTrackSectorPairsPerSector <= 122 &&
|
||||
@@ -67,14 +67,14 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
int spt = 0;
|
||||
if(imagePlugin.ImageInfo.sectors == 455) spt = 13;
|
||||
if(imagePlugin.ImageInfo.Sectors == 455) spt = 13;
|
||||
else spt = 16;
|
||||
|
||||
byte[] vtoc_b = imagePlugin.ReadSector((ulong)(17 * spt));
|
||||
vtoc = new VTOC();
|
||||
byte[] vtocB = imagePlugin.ReadSector((ulong)(17 * spt));
|
||||
vtoc = new Vtoc();
|
||||
IntPtr vtocPtr = Marshal.AllocHGlobal(256);
|
||||
Marshal.Copy(vtoc_b, 0, vtocPtr, 256);
|
||||
vtoc = (VTOC)Marshal.PtrToStructure(vtocPtr, typeof(VTOC));
|
||||
Marshal.Copy(vtocB, 0, vtocPtr, 256);
|
||||
vtoc = (Vtoc)Marshal.PtrToStructure(vtocPtr, typeof(Vtoc));
|
||||
Marshal.FreeHGlobal(vtocPtr);
|
||||
|
||||
sb.AppendLine("Apple DOS File System");
|
||||
@@ -94,8 +94,8 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
|
||||
xmlFSType = new Schemas.FileSystemType();
|
||||
xmlFSType.Bootable = true;
|
||||
xmlFSType.Clusters = (long)imagePlugin.ImageInfo.sectors;
|
||||
xmlFSType.ClusterSize = (int)imagePlugin.ImageInfo.sectorSize;
|
||||
xmlFSType.Clusters = (long)imagePlugin.ImageInfo.Sectors;
|
||||
xmlFSType.ClusterSize = (int)imagePlugin.ImageInfo.SectorSize;
|
||||
xmlFSType.Type = "Apple DOS";
|
||||
|
||||
return;
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
public partial class AppleDOS : Filesystem
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
struct VTOC
|
||||
struct Vtoc
|
||||
{
|
||||
public byte unused1;
|
||||
public byte catalogTrack;
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
/// </summary>
|
||||
public override Errno Mount(bool debug)
|
||||
{
|
||||
if(device.ImageInfo.sectors != 455 && device.ImageInfo.sectors != 560)
|
||||
if(device.ImageInfo.Sectors != 455 && device.ImageInfo.Sectors != 560)
|
||||
{
|
||||
DicConsole.DebugWriteLine("Apple DOS plugin", "Incorrect device size.");
|
||||
return Errno.InOutError;
|
||||
@@ -63,21 +63,21 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
return Errno.InOutError;
|
||||
}
|
||||
|
||||
if(device.ImageInfo.sectorSize != 256)
|
||||
if(device.ImageInfo.SectorSize != 256)
|
||||
{
|
||||
DicConsole.DebugWriteLine("Apple DOS plugin", "Incorrect sector size.");
|
||||
return Errno.InOutError;
|
||||
}
|
||||
|
||||
if(device.ImageInfo.sectors == 455) sectorsPerTrack = 13;
|
||||
if(device.ImageInfo.Sectors == 455) sectorsPerTrack = 13;
|
||||
else sectorsPerTrack = 16;
|
||||
|
||||
// Read the VTOC
|
||||
byte[] vtoc_b = device.ReadSector((ulong)(17 * sectorsPerTrack));
|
||||
vtoc = new VTOC();
|
||||
byte[] vtocB = device.ReadSector((ulong)(17 * sectorsPerTrack));
|
||||
vtoc = new Vtoc();
|
||||
IntPtr vtocPtr = Marshal.AllocHGlobal(256);
|
||||
Marshal.Copy(vtoc_b, 0, vtocPtr, 256);
|
||||
vtoc = (VTOC)Marshal.PtrToStructure(vtocPtr, typeof(VTOC));
|
||||
Marshal.Copy(vtocB, 0, vtocPtr, 256);
|
||||
vtoc = (Vtoc)Marshal.PtrToStructure(vtocPtr, typeof(Vtoc));
|
||||
Marshal.FreeHGlobal(vtocPtr);
|
||||
|
||||
track1UsedByFiles = false;
|
||||
@@ -103,7 +103,7 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
// Create XML metadata for mounted filesystem
|
||||
xmlFSType = new Schemas.FileSystemType();
|
||||
xmlFSType.Bootable = true;
|
||||
xmlFSType.Clusters = (long)device.ImageInfo.sectors;
|
||||
xmlFSType.Clusters = (long)device.ImageInfo.Sectors;
|
||||
xmlFSType.ClusterSize = vtoc.bytesPerSector;
|
||||
xmlFSType.Files = catalogCache.Count;
|
||||
xmlFSType.FilesSpecified = true;
|
||||
@@ -137,7 +137,7 @@ namespace DiscImageChef.Filesystems.AppleDOS
|
||||
public override Errno StatFs(ref FileSystemInfo stat)
|
||||
{
|
||||
stat = new FileSystemInfo();
|
||||
stat.Blocks = (long)device.ImageInfo.sectors;
|
||||
stat.Blocks = (long)device.ImageInfo.Sectors;
|
||||
stat.FilenameLength = 30;
|
||||
stat.Files = (ulong)catalogCache.Count;
|
||||
stat.FreeBlocks = stat.Blocks - usedSectors;
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public AppleHFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public AppleHFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Apple Hierarchical File System";
|
||||
PluginUUID = new Guid("36405F8D-0D26-6ECC-0BBB-1D5225FF404F");
|
||||
@@ -78,7 +78,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -309,7 +309,7 @@ namespace DiscImageChef.Filesystems
|
||||
return;
|
||||
}
|
||||
|
||||
static byte[] Read2048SectorAs512(ImagePlugins.ImagePlugin imagePlugin, ulong LBA)
|
||||
static byte[] Read2048SectorAs512(DiscImages.ImagePlugin imagePlugin, ulong LBA)
|
||||
{
|
||||
ulong LBA2k = LBA / 4;
|
||||
int Remainder = (int)(LBA % 4);
|
||||
|
||||
@@ -68,14 +68,14 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.BigEndianUnicode;
|
||||
}
|
||||
|
||||
public AppleHFSPlus(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public AppleHFSPlus(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Apple HFS+ filesystem";
|
||||
PluginUUID = new Guid("36405F8D-0D26-6EBE-436F-62F0586B4F08");
|
||||
CurrentEncoding = Encoding.BigEndianUnicode;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -87,8 +87,8 @@ namespace DiscImageChef.Filesystems
|
||||
byte[] vh_sector;
|
||||
ulong hfsp_offset;
|
||||
|
||||
uint sectorsToRead = 0x800 / imagePlugin.ImageInfo.sectorSize;
|
||||
if(0x800 % imagePlugin.ImageInfo.sectorSize > 0) sectorsToRead++;
|
||||
uint sectorsToRead = 0x800 / imagePlugin.ImageInfo.SectorSize;
|
||||
if(0x800 % imagePlugin.ImageInfo.SectorSize > 0) sectorsToRead++;
|
||||
|
||||
vh_sector = imagePlugin.ReadSectors(partition.Start,
|
||||
sectorsToRead); // Read volume header, of HFS Wrapper MDB
|
||||
@@ -123,7 +123,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -138,8 +138,8 @@ namespace DiscImageChef.Filesystems
|
||||
bool wrapped;
|
||||
byte[] vh_sector;
|
||||
|
||||
uint sectorsToRead = 0x800 / imagePlugin.ImageInfo.sectorSize;
|
||||
if(0x800 % imagePlugin.ImageInfo.sectorSize > 0) sectorsToRead++;
|
||||
uint sectorsToRead = 0x800 / imagePlugin.ImageInfo.SectorSize;
|
||||
if(0x800 % imagePlugin.ImageInfo.SectorSize > 0) sectorsToRead++;
|
||||
|
||||
vh_sector = imagePlugin.ReadSectors(partition.Start,
|
||||
sectorsToRead); // Read volume header, of HFS Wrapper MDB
|
||||
|
||||
@@ -34,7 +34,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.AppleMFS
|
||||
{
|
||||
|
||||
@@ -279,7 +279,7 @@ namespace DiscImageChef.Filesystems.AppleMFS
|
||||
if(tags)
|
||||
sectors =
|
||||
device.ReadSectorsTag((ulong)((nextBlock - 2) * sectorsPerBlock) + volMDB.drAlBlSt + partitionStart,
|
||||
(uint)sectorsPerBlock, ImagePlugins.SectorTagType.AppleSectorTag);
|
||||
(uint)sectorsPerBlock, DiscImages.SectorTagType.AppleSectorTag);
|
||||
else
|
||||
sectors =
|
||||
device.ReadSectors((ulong)((nextBlock - 2) * sectorsPerBlock) + volMDB.drAlBlSt + partitionStart,
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Filesystems.AppleMFS
|
||||
// Information from Inside Macintosh Volume II
|
||||
public partial class AppleMFS : Filesystem
|
||||
{
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
ushort drSigWord;
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace DiscImageChef.Filesystems.AppleMFS
|
||||
return drSigWord == MFS_MAGIC;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -73,8 +73,8 @@ namespace DiscImageChef.Filesystems.AppleMFS
|
||||
int bytesInBlockMap = ((volMDB.drNmAlBlks * 12) / 8) + ((volMDB.drNmAlBlks * 12) % 8);
|
||||
int bytesBeforeBlockMap = 64;
|
||||
int bytesInWholeMDB = bytesInBlockMap + bytesBeforeBlockMap;
|
||||
int sectorsInWholeMDB = (bytesInWholeMDB / (int)device.ImageInfo.sectorSize) +
|
||||
(bytesInWholeMDB % (int)device.ImageInfo.sectorSize);
|
||||
int sectorsInWholeMDB = (bytesInWholeMDB / (int)device.ImageInfo.SectorSize) +
|
||||
(bytesInWholeMDB % (int)device.ImageInfo.SectorSize);
|
||||
byte[] wholeMDB = device.ReadSectors(partitionStart + 2, (uint)sectorsInWholeMDB);
|
||||
blockMapBytes = new byte[bytesInBlockMap];
|
||||
Array.Copy(wholeMDB, bytesBeforeBlockMap, blockMapBytes, 0, blockMapBytes.Length);
|
||||
@@ -105,17 +105,17 @@ namespace DiscImageChef.Filesystems.AppleMFS
|
||||
offset += 12;
|
||||
}
|
||||
|
||||
if(device.ImageInfo.readableSectorTags.Contains(ImagePlugins.SectorTagType.AppleSectorTag))
|
||||
if(device.ImageInfo.ReadableSectorTags.Contains(DiscImages.SectorTagType.AppleSectorTag))
|
||||
{
|
||||
mdbTags = device.ReadSectorTag(2 + partitionStart, ImagePlugins.SectorTagType.AppleSectorTag);
|
||||
bootTags = device.ReadSectorTag(0 + partitionStart, ImagePlugins.SectorTagType.AppleSectorTag);
|
||||
mdbTags = device.ReadSectorTag(2 + partitionStart, DiscImages.SectorTagType.AppleSectorTag);
|
||||
bootTags = device.ReadSectorTag(0 + partitionStart, DiscImages.SectorTagType.AppleSectorTag);
|
||||
directoryTags = device.ReadSectorsTag(volMDB.drDirSt + partitionStart, volMDB.drBlLen,
|
||||
ImagePlugins.SectorTagType.AppleSectorTag);
|
||||
DiscImages.SectorTagType.AppleSectorTag);
|
||||
bitmapTags = device.ReadSectorsTag(partitionStart + 2, (uint)sectorsInWholeMDB,
|
||||
ImagePlugins.SectorTagType.AppleSectorTag);
|
||||
DiscImages.SectorTagType.AppleSectorTag);
|
||||
}
|
||||
|
||||
sectorsPerBlock = (int)(volMDB.drAlBlkSiz / device.ImageInfo.sectorSize);
|
||||
sectorsPerBlock = (int)(volMDB.drAlBlkSiz / device.ImageInfo.SectorSize);
|
||||
|
||||
if(!FillDirectory()) return Errno.InvalidArgument;
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace DiscImageChef.Filesystems.AppleMFS
|
||||
string.Compare(path, "$Boot", StringComparison.InvariantCulture) == 0 ||
|
||||
string.Compare(path, "$MDB", StringComparison.InvariantCulture) == 0)
|
||||
{
|
||||
if(device.ImageInfo.readableSectorTags.Contains(ImagePlugins.SectorTagType.AppleSectorTag))
|
||||
if(device.ImageInfo.ReadableSectorTags.Contains(DiscImages.SectorTagType.AppleSectorTag))
|
||||
xattrs.Add("com.apple.macintosh.tags");
|
||||
|
||||
return Errno.NoError;
|
||||
@@ -72,13 +72,13 @@ namespace DiscImageChef.Filesystems.AppleMFS
|
||||
if(entry.flRLgLen > 0)
|
||||
{
|
||||
xattrs.Add("com.apple.ResourceFork");
|
||||
if(debug && device.ImageInfo.readableSectorTags.Contains(ImagePlugins.SectorTagType.AppleSectorTag))
|
||||
if(debug && device.ImageInfo.ReadableSectorTags.Contains(DiscImages.SectorTagType.AppleSectorTag))
|
||||
xattrs.Add("com.apple.ResourceFork.tags");
|
||||
}
|
||||
|
||||
if(!ArrayHelpers.ArrayIsNullOrEmpty(entry.flUsrWds)) xattrs.Add("com.apple.FinderInfo");
|
||||
|
||||
if(debug && device.ImageInfo.readableSectorTags.Contains(ImagePlugins.SectorTagType.AppleSectorTag) &&
|
||||
if(debug && device.ImageInfo.ReadableSectorTags.Contains(DiscImages.SectorTagType.AppleSectorTag) &&
|
||||
entry.flLgLen > 0) xattrs.Add("com.apple.macintosh.tags");
|
||||
|
||||
xattrs.Sort();
|
||||
@@ -100,7 +100,7 @@ namespace DiscImageChef.Filesystems.AppleMFS
|
||||
string.Compare(path, "$Boot", StringComparison.InvariantCulture) == 0 ||
|
||||
string.Compare(path, "$MDB", StringComparison.InvariantCulture) == 0)
|
||||
{
|
||||
if(device.ImageInfo.readableSectorTags.Contains(ImagePlugins.SectorTagType.AppleSectorTag) &&
|
||||
if(device.ImageInfo.ReadableSectorTags.Contains(DiscImages.SectorTagType.AppleSectorTag) &&
|
||||
string.Compare(xattr, "com.apple.macintosh.tags", StringComparison.InvariantCulture) == 0)
|
||||
{
|
||||
if(string.Compare(path, "$", StringComparison.InvariantCulture) == 0)
|
||||
@@ -165,7 +165,7 @@ namespace DiscImageChef.Filesystems.AppleMFS
|
||||
return Errno.NoError;
|
||||
}
|
||||
|
||||
if(debug && device.ImageInfo.readableSectorTags.Contains(ImagePlugins.SectorTagType.AppleSectorTag) &&
|
||||
if(debug && device.ImageInfo.ReadableSectorTags.Contains(DiscImages.SectorTagType.AppleSectorTag) &&
|
||||
string.Compare(xattr, "com.apple.macintosh.tags", StringComparison.InvariantCulture) == 0)
|
||||
{
|
||||
error = ReadFile(path, out buf, false, true);
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public AtheOS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public AtheOS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "AtheOS Filesystem";
|
||||
PluginUUID = new Guid("AAB2C4F1-DC07-49EE-A948-576CC51B58C5");
|
||||
@@ -71,7 +71,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
ulong sector = AFS_BOOTBLOCK_SIZE / imagePlugin.GetSectorSize();
|
||||
uint offset = AFS_BOOTBLOCK_SIZE % imagePlugin.GetSectorSize();
|
||||
@@ -93,7 +93,7 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == AFS_MAGIC1;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public BeFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public BeFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Be Filesystem";
|
||||
PluginUUID = new Guid("dc8572b3-b6ad-46e4-8de9-cbe123ff6672");
|
||||
@@ -76,7 +76,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -108,7 +108,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public BTRFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public BTRFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "B-tree file system";
|
||||
PluginUUID = new Guid("C904CF15-5222-446B-B7DB-02EAC5D781B3");
|
||||
@@ -125,7 +125,7 @@ namespace DiscImageChef.Filesystems
|
||||
public Guid uuid;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start >= partition.End) return false;
|
||||
|
||||
@@ -153,7 +153,7 @@ namespace DiscImageChef.Filesystems
|
||||
return btrfsSb.magic == btrfsMagic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
StringBuilder sbInformation = new StringBuilder();
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = new Claunia.Encoding.PETSCII();
|
||||
}
|
||||
|
||||
public CBM(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public CBM(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Commodore file system";
|
||||
PluginUUID = new Guid("D104744E-A376-450C-BAC0-1347C93F983B");
|
||||
@@ -179,18 +179,18 @@ namespace DiscImageChef.Filesystems
|
||||
public short fill3;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start > 0) return false;
|
||||
|
||||
if(imagePlugin.ImageInfo.sectorSize != 256) return false;
|
||||
if(imagePlugin.ImageInfo.SectorSize != 256) return false;
|
||||
|
||||
if(imagePlugin.ImageInfo.sectors != 683 && imagePlugin.ImageInfo.sectors != 768 &&
|
||||
imagePlugin.ImageInfo.sectors != 1366 && imagePlugin.ImageInfo.sectors != 3200) return false;
|
||||
if(imagePlugin.ImageInfo.Sectors != 683 && imagePlugin.ImageInfo.Sectors != 768 &&
|
||||
imagePlugin.ImageInfo.Sectors != 1366 && imagePlugin.ImageInfo.Sectors != 3200) return false;
|
||||
|
||||
byte[] sector;
|
||||
|
||||
if(imagePlugin.ImageInfo.sectors == 3200)
|
||||
if(imagePlugin.ImageInfo.Sectors == 3200)
|
||||
{
|
||||
sector = imagePlugin.ReadSector(1560);
|
||||
CommodoreHeader cbmHdr = new CommodoreHeader();
|
||||
@@ -218,7 +218,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
byte[] sector;
|
||||
@@ -229,10 +229,10 @@ namespace DiscImageChef.Filesystems
|
||||
|
||||
xmlFSType = new Schemas.FileSystemType();
|
||||
xmlFSType.Type = "Commodore file system";
|
||||
xmlFSType.Clusters = (long)imagePlugin.ImageInfo.sectors;
|
||||
xmlFSType.Clusters = (long)imagePlugin.ImageInfo.Sectors;
|
||||
xmlFSType.ClusterSize = 256;
|
||||
|
||||
if(imagePlugin.ImageInfo.sectors == 3200)
|
||||
if(imagePlugin.ImageInfo.Sectors == 3200)
|
||||
{
|
||||
sector = imagePlugin.ReadSector(1560);
|
||||
CommodoreHeader cbmHdr = new CommodoreHeader();
|
||||
|
||||
@@ -34,7 +34,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.CPM
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@ using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.Console;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.CPM
|
||||
{
|
||||
@@ -47,7 +47,7 @@ namespace DiscImageChef.Filesystems.CPM
|
||||
{
|
||||
// This will only continue on devices with a chance to have ever been used by CP/M while failing on all others
|
||||
// It's ugly, but will stop a lot of false positives
|
||||
switch(imagePlugin.ImageInfo.mediaType)
|
||||
switch(imagePlugin.ImageInfo.MediaType)
|
||||
{
|
||||
case MediaType.Unknown:
|
||||
case MediaType.Apple32SS:
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public Cram(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public Cram(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Cram filesystem";
|
||||
PluginUUID = new Guid("F8F6E46F-7A2A-48E3-9C0A-46AF4DC29E09");
|
||||
@@ -93,7 +93,7 @@ namespace DiscImageChef.Filesystems
|
||||
const uint Cram_MAGIC = 0x28CD3D45;
|
||||
const uint Cram_CIGAM = 0x453DCD28;
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start >= partition.End) return false;
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == Cram_MAGIC || magic == Cram_CIGAM;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
byte[] sector = imagePlugin.ReadSector(partition.Start);
|
||||
|
||||
@@ -36,7 +36,7 @@ using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems
|
||||
{
|
||||
|
||||
@@ -106,7 +106,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public EFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public EFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Extent File System Plugin";
|
||||
PluginUUID = new Guid("52A43F90-9AF3-4391-ADFE-65598DEEABAB");
|
||||
@@ -114,12 +114,12 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
// Misaligned
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
EFS_Superblock efs_sb = new EFS_Superblock();
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -170,7 +170,7 @@ namespace DiscImageChef.Filesystems
|
||||
EFS_Superblock efsSb = new EFS_Superblock();
|
||||
|
||||
// Misaligned
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
uint sbSize = (uint)((Marshal.SizeOf(efsSb) + 0x400) / imagePlugin.GetSectorSize());
|
||||
if((Marshal.SizeOf(efsSb) + 0x400) % imagePlugin.GetSectorSize() != 0) sbSize++;
|
||||
|
||||
@@ -110,14 +110,14 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.Unicode;
|
||||
}
|
||||
|
||||
public F2FS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public F2FS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "F2FS Plugin";
|
||||
PluginUUID = new Guid("82B0920F-5F0D-4063-9F57-ADE0AE02ECE5");
|
||||
CurrentEncoding = Encoding.Unicode;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < F2FS_MinSector || imagePlugin.GetSectorSize() > F2FS_MaxSector)
|
||||
return false;
|
||||
@@ -143,7 +143,7 @@ namespace DiscImageChef.Filesystems
|
||||
return f2fsSb.magic == F2FS_Magic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public FAT(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public FAT(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Microsoft File Allocation Table";
|
||||
PluginUUID = new Guid("33513B2C-0D26-0D2D-32C3-79D8611158E0");
|
||||
@@ -67,7 +67,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -111,7 +111,7 @@ namespace DiscImageChef.Filesystems
|
||||
huge_sectors = BitConverter.ToUInt64(bpb_sector, 0x052);
|
||||
fat_id = fat_sector[0];
|
||||
int bits_in_bps = Helpers.CountBits.Count(bps);
|
||||
if(imagePlugin.ImageInfo.sectorSize >= 512) bootable = BitConverter.ToUInt16(bpb_sector, 0x1FE);
|
||||
if(imagePlugin.ImageInfo.SectorSize >= 512) bootable = BitConverter.ToUInt16(bpb_sector, 0x1FE);
|
||||
|
||||
bool correct_spc = spc == 1 || spc == 2 || spc == 4 || spc == 8 || spc == 16 || spc == 32 || spc == 64;
|
||||
string msx_string = Encoding.ASCII.GetString(msx_id);
|
||||
@@ -168,7 +168,7 @@ namespace DiscImageChef.Filesystems
|
||||
DicConsole.DebugWriteLine("FAT plugin", "apricot_fat_sectors = {0}", apricot_fat_sectors);
|
||||
|
||||
// This is to support FAT partitions on hybrid ISO/USB images
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
sectors /= 4;
|
||||
big_sectors /= 4;
|
||||
@@ -285,31 +285,31 @@ namespace DiscImageChef.Filesystems
|
||||
switch(fat_id)
|
||||
{
|
||||
case 0xE5:
|
||||
if(imagePlugin.ImageInfo.sectors == 2002 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
if(imagePlugin.ImageInfo.Sectors == 2002 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
fat2_sector_no = 2;
|
||||
break;
|
||||
case 0xFD:
|
||||
if(imagePlugin.ImageInfo.sectors == 4004 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
if(imagePlugin.ImageInfo.Sectors == 4004 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
fat2_sector_no = 7;
|
||||
else if(imagePlugin.ImageInfo.sectors == 2002 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 2002 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
fat2_sector_no = 7;
|
||||
break;
|
||||
case 0xFE:
|
||||
if(imagePlugin.ImageInfo.sectors == 320 && imagePlugin.ImageInfo.sectorSize == 512)
|
||||
if(imagePlugin.ImageInfo.Sectors == 320 && imagePlugin.ImageInfo.SectorSize == 512)
|
||||
fat2_sector_no = 2;
|
||||
else if(imagePlugin.ImageInfo.sectors == 2002 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 2002 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
fat2_sector_no = 7;
|
||||
else if(imagePlugin.ImageInfo.sectors == 1232 && imagePlugin.ImageInfo.sectorSize == 1024)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 1232 && imagePlugin.ImageInfo.SectorSize == 1024)
|
||||
fat2_sector_no = 3;
|
||||
else if(imagePlugin.ImageInfo.sectors == 616 && imagePlugin.ImageInfo.sectorSize == 1024)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 616 && imagePlugin.ImageInfo.SectorSize == 1024)
|
||||
fat2_sector_no = 2;
|
||||
else if(imagePlugin.ImageInfo.sectors == 720 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 720 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
fat2_sector_no = 5;
|
||||
else if(imagePlugin.ImageInfo.sectors == 640 && imagePlugin.ImageInfo.sectorSize == 512)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 640 && imagePlugin.ImageInfo.SectorSize == 512)
|
||||
fat2_sector_no = 2;
|
||||
break;
|
||||
case 0xFF:
|
||||
if(imagePlugin.ImageInfo.sectors == 640 && imagePlugin.ImageInfo.sectorSize == 512)
|
||||
if(imagePlugin.ImageInfo.Sectors == 640 && imagePlugin.ImageInfo.SectorSize == 512)
|
||||
fat2_sector_no = 2;
|
||||
break;
|
||||
default:
|
||||
@@ -333,7 +333,7 @@ namespace DiscImageChef.Filesystems
|
||||
return fat_id == fat2_sector[0];
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -369,7 +369,7 @@ namespace DiscImageChef.Filesystems
|
||||
|
||||
byte[] bpb_sector = imagePlugin.ReadSectors(partition.Start, 2);
|
||||
|
||||
if(imagePlugin.ImageInfo.sectorSize >= 256)
|
||||
if(imagePlugin.ImageInfo.SectorSize >= 256)
|
||||
{
|
||||
IntPtr bpbPtr = Marshal.AllocHGlobal(512);
|
||||
Marshal.Copy(bpb_sector, 0, bpbPtr, 512);
|
||||
@@ -436,7 +436,7 @@ namespace DiscImageChef.Filesystems
|
||||
ApricotBPB.mainBPB.spc == 64;
|
||||
|
||||
// This is to support FAT partitions on hybrid ISO/USB images
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
atariBPB.sectors /= 4;
|
||||
msxBPB.sectors /= 4;
|
||||
@@ -598,7 +598,7 @@ namespace DiscImageChef.Filesystems
|
||||
ulong root_directory_sector = 0;
|
||||
string extraInfo = null;
|
||||
string bootChk = null;
|
||||
Checksums.SHA1Context sha1Ctx = new Checksums.SHA1Context();
|
||||
Checksums.Sha1Context sha1Ctx = new Checksums.Sha1Context();
|
||||
sha1Ctx.Init();
|
||||
byte[] chkTmp;
|
||||
|
||||
@@ -677,7 +677,7 @@ namespace DiscImageChef.Filesystems
|
||||
switch(fat_sector[0])
|
||||
{
|
||||
case 0xE5:
|
||||
if(imagePlugin.ImageInfo.sectors == 2002 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
if(imagePlugin.ImageInfo.Sectors == 2002 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
|
||||
fakeBPB.bps = 128;
|
||||
@@ -694,7 +694,7 @@ namespace DiscImageChef.Filesystems
|
||||
}
|
||||
break;
|
||||
case 0xFD:
|
||||
if(imagePlugin.ImageInfo.sectors == 4004 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
if(imagePlugin.ImageInfo.Sectors == 4004 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
|
||||
fakeBPB.bps = 128;
|
||||
@@ -709,7 +709,7 @@ namespace DiscImageChef.Filesystems
|
||||
fakeBPB.hsectors = 0;
|
||||
fakeBPB.spfat = 6;
|
||||
}
|
||||
else if(imagePlugin.ImageInfo.sectors == 2002 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 2002 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
|
||||
fakeBPB.bps = 128;
|
||||
@@ -726,7 +726,7 @@ namespace DiscImageChef.Filesystems
|
||||
}
|
||||
break;
|
||||
case 0xFE:
|
||||
if(imagePlugin.ImageInfo.sectors == 320 && imagePlugin.ImageInfo.sectorSize == 512)
|
||||
if(imagePlugin.ImageInfo.Sectors == 320 && imagePlugin.ImageInfo.SectorSize == 512)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB for 5.25\" SSDD.");
|
||||
fakeBPB.bps = 512;
|
||||
@@ -741,7 +741,7 @@ namespace DiscImageChef.Filesystems
|
||||
fakeBPB.hsectors = 0;
|
||||
fakeBPB.spfat = 1;
|
||||
}
|
||||
else if(imagePlugin.ImageInfo.sectors == 2002 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 2002 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
|
||||
fakeBPB.bps = 128;
|
||||
@@ -756,7 +756,7 @@ namespace DiscImageChef.Filesystems
|
||||
fakeBPB.hsectors = 0;
|
||||
fakeBPB.spfat = 6;
|
||||
}
|
||||
else if(imagePlugin.ImageInfo.sectors == 1232 && imagePlugin.ImageInfo.sectorSize == 1024)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 1232 && imagePlugin.ImageInfo.SectorSize == 1024)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
|
||||
fakeBPB.bps = 1024;
|
||||
@@ -771,7 +771,7 @@ namespace DiscImageChef.Filesystems
|
||||
fakeBPB.hsectors = 0;
|
||||
fakeBPB.spfat = 2;
|
||||
}
|
||||
else if(imagePlugin.ImageInfo.sectors == 616 && imagePlugin.ImageInfo.sectorSize == 1024)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 616 && imagePlugin.ImageInfo.SectorSize == 1024)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
|
||||
fakeBPB.bps = 1024;
|
||||
@@ -785,7 +785,7 @@ namespace DiscImageChef.Filesystems
|
||||
fakeBPB.heads = 2;
|
||||
fakeBPB.hsectors = 0;
|
||||
}
|
||||
else if(imagePlugin.ImageInfo.sectors == 720 && imagePlugin.ImageInfo.sectorSize == 128)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 720 && imagePlugin.ImageInfo.SectorSize == 128)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB.");
|
||||
fakeBPB.bps = 128;
|
||||
@@ -800,7 +800,7 @@ namespace DiscImageChef.Filesystems
|
||||
fakeBPB.hsectors = 0;
|
||||
fakeBPB.spfat = 4;
|
||||
}
|
||||
else if(imagePlugin.ImageInfo.sectors == 640 && imagePlugin.ImageInfo.sectorSize == 512)
|
||||
else if(imagePlugin.ImageInfo.Sectors == 640 && imagePlugin.ImageInfo.SectorSize == 512)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB for 5.25\" DSDD.");
|
||||
fakeBPB.bps = 512;
|
||||
@@ -817,7 +817,7 @@ namespace DiscImageChef.Filesystems
|
||||
}
|
||||
break;
|
||||
case 0xFF:
|
||||
if(imagePlugin.ImageInfo.sectors == 640 && imagePlugin.ImageInfo.sectorSize == 512)
|
||||
if(imagePlugin.ImageInfo.Sectors == 640 && imagePlugin.ImageInfo.SectorSize == 512)
|
||||
{
|
||||
DicConsole.DebugWriteLine("FAT plugin", "Using hardcoded BPB for 5.25\" DSDD.");
|
||||
fakeBPB.bps = 512;
|
||||
@@ -844,7 +844,7 @@ namespace DiscImageChef.Filesystems
|
||||
isFAT32 = true;
|
||||
|
||||
// This is to support FAT partitions on hybrid ISO/USB images
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
Fat32BPB.bps *= 4;
|
||||
Fat32BPB.spc /= 4;
|
||||
@@ -934,7 +934,7 @@ namespace DiscImageChef.Filesystems
|
||||
xmlFSType.Bootable |= (Fat32BPB.jump[0] == 0xEB && Fat32BPB.jump[1] > 0x58 && Fat32BPB.jump[1] < 0x80 &&
|
||||
Fat32BPB.boot_signature == 0xAA55);
|
||||
|
||||
sectors_per_real_sector = Fat32BPB.bps / imagePlugin.ImageInfo.sectorSize;
|
||||
sectors_per_real_sector = Fat32BPB.bps / imagePlugin.ImageInfo.SectorSize;
|
||||
// First root directory sector
|
||||
root_directory_sector =
|
||||
(ulong)((Fat32BPB.root_cluster - 2) * Fat32BPB.spc + Fat32BPB.big_spfat * Fat32BPB.fats_no +
|
||||
@@ -1158,7 +1158,7 @@ namespace DiscImageChef.Filesystems
|
||||
if(!isFAT32)
|
||||
{
|
||||
// This is to support FAT partitions on hybrid ISO/USB images
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
fakeBPB.bps *= 4;
|
||||
fakeBPB.spc /= 4;
|
||||
@@ -1311,17 +1311,17 @@ namespace DiscImageChef.Filesystems
|
||||
xmlFSType.Bootable |= (fakeBPB.jump[0] == 0xEB && fakeBPB.jump[1] > 0x58 &&
|
||||
fakeBPB.jump[1] < 0x80 && fakeBPB.boot_signature == 0xAA55);
|
||||
|
||||
sectors_per_real_sector = fakeBPB.bps / imagePlugin.ImageInfo.sectorSize;
|
||||
sectors_per_real_sector = fakeBPB.bps / imagePlugin.ImageInfo.SectorSize;
|
||||
// First root directory sector
|
||||
root_directory_sector =
|
||||
(ulong)(fakeBPB.spfat * fakeBPB.fats_no + fakeBPB.rsectors) * sectors_per_real_sector;
|
||||
sectors_for_root_directory = (uint)((fakeBPB.root_ent * 32) / imagePlugin.ImageInfo.sectorSize);
|
||||
sectors_for_root_directory = (uint)((fakeBPB.root_ent * 32) / imagePlugin.ImageInfo.SectorSize);
|
||||
}
|
||||
|
||||
if(extraInfo != null) sb.Append(extraInfo);
|
||||
|
||||
if(root_directory_sector + partition.Start < partition.End &&
|
||||
imagePlugin.ImageInfo.xmlMediaType != ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
imagePlugin.ImageInfo.XmlMediaType != DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
byte[] root_directory =
|
||||
imagePlugin.ReadSectors(root_directory_sector + partition.Start, sectors_for_root_directory);
|
||||
|
||||
@@ -65,14 +65,14 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.UTF8;
|
||||
}
|
||||
|
||||
public FATX(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public FATX(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "FATX Filesystem Plugin";
|
||||
PluginUUID = new Guid("ED27A721-4A17-4649-89FD-33633B46E228");
|
||||
CurrentEncoding = Encoding.UTF8;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace DiscImageChef.Filesystems
|
||||
return fatxSb.magic == FATX_Magic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -103,15 +103,15 @@ namespace DiscImageChef.Filesystems
|
||||
sb.AppendLine("FATX filesystem");
|
||||
sb.AppendFormat("Filesystem id {0}", fatxSb.id).AppendLine();
|
||||
sb.AppendFormat("{0} sectors ({1} bytes) per cluster", fatxSb.sectorsPerCluster,
|
||||
fatxSb.sectorsPerCluster * imagePlugin.ImageInfo.sectorSize).AppendLine();
|
||||
fatxSb.sectorsPerCluster * imagePlugin.ImageInfo.SectorSize).AppendLine();
|
||||
sb.AppendFormat("Root directory starts on cluster {0}", fatxSb.rootDirectoryCluster).AppendLine();
|
||||
|
||||
information = sb.ToString();
|
||||
|
||||
xmlFSType = new Schemas.FileSystemType();
|
||||
xmlFSType.Type = "FATX filesystem";
|
||||
xmlFSType.ClusterSize = (int)(fatxSb.sectorsPerCluster * imagePlugin.ImageInfo.sectorSize);
|
||||
xmlFSType.Clusters = (long)((partition.End - partition.Start + 1) * imagePlugin.ImageInfo.sectorSize /
|
||||
xmlFSType.ClusterSize = (int)(fatxSb.sectorsPerCluster * imagePlugin.ImageInfo.SectorSize);
|
||||
xmlFSType.Clusters = (long)((partition.End - partition.Start + 1) * imagePlugin.ImageInfo.SectorSize /
|
||||
(ulong)xmlFSType.ClusterSize);
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public FFSPlugin(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public FFSPlugin(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "BSD Fast File System (aka UNIX File System, UFS)";
|
||||
PluginUUID = new Guid("CC90D342-05DB-48A8-988C-C1FE000034A3");
|
||||
@@ -67,7 +67,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -102,7 +102,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -69,7 +69,7 @@ namespace DiscImageChef.Filesystems
|
||||
/// <param name="imagePlugin">Image plugin.</param>
|
||||
/// <param name="partition">Partition.</param>
|
||||
/// <param name="encoding">Which encoding to use for this filesystem.</param>
|
||||
protected Filesystem(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding) { }
|
||||
protected Filesystem(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding) { }
|
||||
|
||||
/// <summary>
|
||||
/// Identifies the filesystem in the specified LBA
|
||||
@@ -77,7 +77,7 @@ namespace DiscImageChef.Filesystems
|
||||
/// <param name="imagePlugin">Disk image.</param>
|
||||
/// <param name="partition">Partition.</param>
|
||||
/// <returns><c>true</c>, if the filesystem is recognized, <c>false</c> otherwise.</returns>
|
||||
public abstract bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition);
|
||||
public abstract bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition);
|
||||
|
||||
/// <summary>
|
||||
/// Gets information about the identified filesystem.
|
||||
@@ -85,7 +85,7 @@ namespace DiscImageChef.Filesystems
|
||||
/// <param name="imagePlugin">Disk image.</param>
|
||||
/// <param name="partition">Partition.</param>
|
||||
/// <param name="information">Filesystem information.</param>
|
||||
public abstract void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public abstract void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information);
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -139,7 +139,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.UTF8;
|
||||
}
|
||||
|
||||
public Fossil(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public Fossil(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Fossil Filesystem Plugin";
|
||||
PluginUUID = new Guid("932BF104-43F6-494F-973C-45EF58A51DA9");
|
||||
@@ -147,7 +147,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.UTF8;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
ulong hdrSector = HeaderPos / imagePlugin.GetSectorSize();
|
||||
|
||||
@@ -164,7 +164,7 @@ namespace DiscImageChef.Filesystems
|
||||
return hdr.magic == Fossil_HdrMagic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public HAMMER(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public HAMMER(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "HAMMER Filesystem";
|
||||
PluginUUID = new Guid("91A188BF-5FD7-4677-BBD3-F59EBA9C864D");
|
||||
@@ -71,7 +71,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
uint run = HAMMER_VOLHDR_SIZE / imagePlugin.GetSectorSize();
|
||||
|
||||
@@ -88,7 +88,7 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == HAMMER_FSBUF_VOLUME || magic == HAMMER_FSBUF_VOLUME_REV;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public HPFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public HPFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "OS/2 High Performance File System";
|
||||
PluginUUID = new Guid("33513B2C-f590-4acb-8bf2-0b1d5e19dec5");
|
||||
@@ -65,7 +65,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((16 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -206,7 +206,7 @@ namespace DiscImageChef.Filesystems
|
||||
hpfs_bpb.signature2 == 0xAA55)
|
||||
{
|
||||
xmlFSType.Bootable = true;
|
||||
SHA1Context sha1Ctx = new SHA1Context();
|
||||
Sha1Context sha1Ctx = new Sha1Context();
|
||||
sha1Ctx.Init();
|
||||
string bootChk = sha1Ctx.Data(hpfs_bpb.boot_code, out byte[] sha1_out);
|
||||
sb.AppendLine("Volume is bootable");
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace DiscImageChef.Filesystems.ISO9660
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public ISO9660(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public ISO9660(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "ISO9660 Filesystem";
|
||||
PluginUUID = new Guid("d812f4d3-c357-400d-90fd-3b22ef786aa8");
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace DiscImageChef.Filesystems.ISO9660
|
||||
{
|
||||
public partial class ISO9660 : Filesystem
|
||||
{
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
byte VDType;
|
||||
|
||||
@@ -75,7 +75,7 @@ namespace DiscImageChef.Filesystems.ISO9660
|
||||
CurrentEncoding.GetString(VDMagic) == CdiMagic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -562,7 +562,7 @@ namespace DiscImageChef.Filesystems.ISO9660
|
||||
if(torito != null)
|
||||
{
|
||||
vd_sector = imagePlugin.ReadSector(torito.Value.catalog_sector + partition.Start);
|
||||
Checksums.SHA1Context sha1Ctx = new Checksums.SHA1Context();
|
||||
Checksums.Sha1Context sha1Ctx = new Checksums.Sha1Context();
|
||||
sha1Ctx.Init();
|
||||
byte[] boot_image;
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public JFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public JFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "JFS Plugin";
|
||||
PluginUUID = new Guid("D3BE2A41-8F28-4055-94DC-BB6C72A0E9C4");
|
||||
@@ -155,7 +155,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
uint bootSectors = JFS_BootBlocksSize / imagePlugin.GetSectorSize();
|
||||
if(partition.Start + bootSectors >= partition.End) return false;
|
||||
@@ -172,7 +172,7 @@ namespace DiscImageChef.Filesystems
|
||||
return jfsSb.s_magic == JFS_Magic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public LIF(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public LIF(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "HP Logical Interchange Format Plugin";
|
||||
PluginUUID = new Guid("41535647-77A5-477B-9206-DA727ACDC704");
|
||||
@@ -84,7 +84,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 256) return false;
|
||||
|
||||
@@ -97,7 +97,7 @@ namespace DiscImageChef.Filesystems
|
||||
return LIFSb.magic == LIF_Magic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using DiscImageChef.Decoders;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.LisaFS
|
||||
{
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
using System;
|
||||
using DiscImageChef.Console;
|
||||
using DiscImageChef.Decoders;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.LisaFS
|
||||
{
|
||||
@@ -78,11 +78,11 @@ namespace DiscImageChef.Filesystems.LisaFS
|
||||
// This happens on some disks.
|
||||
// This is a filesystem corruption that makes LisaOS crash on scavenge.
|
||||
// This code just allow to ignore that corruption by searching the Extents File using sector tags
|
||||
if(ptr >= device.ImageInfo.sectors)
|
||||
if(ptr >= device.ImageInfo.Sectors)
|
||||
{
|
||||
bool found = false;
|
||||
|
||||
for(ulong i = 0; i < device.ImageInfo.sectors; i++)
|
||||
for(ulong i = 0; i < device.ImageInfo.Sectors; i++)
|
||||
{
|
||||
DecodeTag(device.ReadSectorTag(i, SectorTagType.AppleSectorTag), out extTag);
|
||||
if(extTag.fileID == fileId * -1)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
using System;
|
||||
using DiscImageChef.Console;
|
||||
using DiscImageChef.Decoders;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.LisaFS
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@ using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.Console;
|
||||
using DiscImageChef.Decoders;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.LisaFS
|
||||
{
|
||||
@@ -45,9 +45,9 @@ namespace DiscImageChef.Filesystems.LisaFS
|
||||
{
|
||||
try
|
||||
{
|
||||
if(imagePlugin.ImageInfo.readableSectorTags == null) return false;
|
||||
if(imagePlugin.ImageInfo.ReadableSectorTags == null) return false;
|
||||
|
||||
if(!imagePlugin.ImageInfo.readableSectorTags.Contains(SectorTagType.AppleSectorTag)) return false;
|
||||
if(!imagePlugin.ImageInfo.ReadableSectorTags.Contains(SectorTagType.AppleSectorTag)) return false;
|
||||
|
||||
// LisaOS is big-endian
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
@@ -127,9 +127,9 @@ namespace DiscImageChef.Filesystems.LisaFS
|
||||
|
||||
try
|
||||
{
|
||||
if(imagePlugin.ImageInfo.readableSectorTags == null) return;
|
||||
if(imagePlugin.ImageInfo.ReadableSectorTags == null) return;
|
||||
|
||||
if(!imagePlugin.ImageInfo.readableSectorTags.Contains(SectorTagType.AppleSectorTag)) return;
|
||||
if(!imagePlugin.ImageInfo.ReadableSectorTags.Contains(SectorTagType.AppleSectorTag)) return;
|
||||
|
||||
// LisaOS is big-endian
|
||||
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
|
||||
|
||||
@@ -34,7 +34,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.LisaFS
|
||||
{
|
||||
|
||||
@@ -34,7 +34,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using DiscImageChef.Console;
|
||||
using DiscImageChef.Decoders;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.LisaFS
|
||||
{
|
||||
@@ -58,8 +58,8 @@ namespace DiscImageChef.Filesystems.LisaFS
|
||||
// Lisa OS is unable to work on disks without tags.
|
||||
// This code is designed like that.
|
||||
// However with some effort the code may be modified to ignore them.
|
||||
if(device.ImageInfo.readableSectorTags == null ||
|
||||
!device.ImageInfo.readableSectorTags.Contains(SectorTagType.AppleSectorTag))
|
||||
if(device.ImageInfo.ReadableSectorTags == null ||
|
||||
!device.ImageInfo.ReadableSectorTags.Contains(SectorTagType.AppleSectorTag))
|
||||
{
|
||||
DicConsole.DebugWriteLine("LisaFS plugin", "Underlying device does not support Lisa tags");
|
||||
return Errno.InOutError;
|
||||
@@ -76,7 +76,7 @@ namespace DiscImageChef.Filesystems.LisaFS
|
||||
}
|
||||
|
||||
// MDDF cannot be at end of device, of course
|
||||
volumePrefix = device.ImageInfo.sectors;
|
||||
volumePrefix = device.ImageInfo.Sectors;
|
||||
|
||||
// LisaOS searches sectors until tag tells MDDF resides there, so we'll search 100 sectors
|
||||
for(ulong i = 0; i < 100; i++)
|
||||
@@ -86,7 +86,7 @@ namespace DiscImageChef.Filesystems.LisaFS
|
||||
|
||||
DicConsole.DebugWriteLine("LisaFS plugin", "Sector {0}, file ID 0x{1:X4}", i, searchTag.fileID);
|
||||
|
||||
if(volumePrefix == device.ImageInfo.sectors && searchTag.fileID == FILEID_LOADER_SIGNED)
|
||||
if(volumePrefix == device.ImageInfo.Sectors && searchTag.fileID == FILEID_LOADER_SIGNED)
|
||||
volumePrefix = i - 1;
|
||||
|
||||
if(searchTag.fileID == FILEID_MDDF)
|
||||
|
||||
@@ -205,7 +205,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public Locus(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public Locus(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Locus Filesystem Plugin";
|
||||
PluginUUID = new Guid("1A70B30A-437D-479A-88E1-D0C9C1797FF4");
|
||||
@@ -213,7 +213,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
@@ -243,7 +243,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -60,7 +60,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public MicroDOS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public MicroDOS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "MicroDOS file system";
|
||||
PluginUUID = new Guid("9F9A364A-1A27-48A3-B730-7A7122000324");
|
||||
@@ -68,7 +68,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((1 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -85,7 +85,7 @@ namespace DiscImageChef.Filesystems
|
||||
return block0.label == magic && block0.mklabel == magic2;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -78,7 +78,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public MinixFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public MinixFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Minix Filesystem";
|
||||
PluginUUID = new Guid("FE248C3B-B727-4AE5-A39F-79EA9A07D4B3");
|
||||
@@ -86,12 +86,12 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
uint sector = 2;
|
||||
uint offset = 0;
|
||||
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
sector = 0;
|
||||
offset = 0x400;
|
||||
@@ -124,7 +124,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -134,7 +134,7 @@ namespace DiscImageChef.Filesystems
|
||||
uint sector = 2;
|
||||
uint offset = 0;
|
||||
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
sector = 0;
|
||||
offset = 0x400;
|
||||
|
||||
@@ -111,7 +111,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public NILFS2(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public NILFS2(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "NILFS2 Plugin";
|
||||
PluginUUID = new Guid("35224226-C5CC-48B5-8FFD-3781E91E86B6");
|
||||
@@ -119,7 +119,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
@@ -144,7 +144,7 @@ namespace DiscImageChef.Filesystems
|
||||
return nilfsSb.magic == NILFS2_Magic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -56,14 +56,14 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.Unicode;
|
||||
}
|
||||
|
||||
public NTFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public NTFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "New Technology File System (NTFS)";
|
||||
PluginUUID = new Guid("33513B2C-1e6d-4d21-a660-0bbc789c3871");
|
||||
CurrentEncoding = Encoding.Unicode;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace DiscImageChef.Filesystems
|
||||
return signature == 0xAA55;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -147,7 +147,7 @@ namespace DiscImageChef.Filesystems
|
||||
ntfs_bb.signature2 == 0xAA55)
|
||||
{
|
||||
xmlFSType.Bootable = true;
|
||||
SHA1Context sha1Ctx = new SHA1Context();
|
||||
Sha1Context sha1Ctx = new Sha1Context();
|
||||
sha1Ctx.Init();
|
||||
string bootChk = sha1Ctx.Data(ntfs_bb.boot_code, out byte[] sha1_out);
|
||||
sb.AppendLine("Volume is bootable");
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public NintendoPlugin(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public NintendoPlugin(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Nintendo optical filesystems";
|
||||
PluginUUID = new Guid("4675fcb4-4418-4288-9e4a-33d6a4ac1126");
|
||||
@@ -63,7 +63,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start != 0) return false;
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
StringBuilder sbInformation = new StringBuilder();
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public ODS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public ODS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Files-11 On-Disk Structure";
|
||||
PluginUUID = new Guid("de20633c-8021-4384-aeb0-83b0df14491f");
|
||||
@@ -73,7 +73,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace DiscImageChef.Filesystems
|
||||
if(magic == "DECFILE11A " || magic == "DECFILE11B ") return true;
|
||||
|
||||
// Optical disc
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
if(hb_sector.Length < 0x400) return false;
|
||||
|
||||
@@ -108,7 +108,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -126,7 +126,7 @@ namespace DiscImageChef.Filesystems
|
||||
handle.Free();
|
||||
|
||||
// Optical disc
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc &&
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc &&
|
||||
StringHandlers.CToString(homeblock.format) != "DECFILE11A " &&
|
||||
StringHandlers.CToString(homeblock.format) != "DECFILE11B ")
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.ASCII;
|
||||
}
|
||||
|
||||
public OperaFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public OperaFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Opera Filesystem Plugin";
|
||||
PluginUUID = new Guid("0ec84ec7-eae6-4196-83fe-943b3fe46dbd");
|
||||
@@ -63,7 +63,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.ASCII;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace DiscImageChef.Filesystems
|
||||
return Encoding.ASCII.GetString(sync_bytes) == "ZZZZZ";
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public PCEnginePlugin(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public PCEnginePlugin(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "PC Engine CD Plugin";
|
||||
PluginUUID = new Guid("e5ee6d7c-90fa-49bd-ac89-14ef750b8af3");
|
||||
@@ -62,7 +62,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -74,7 +74,7 @@ namespace DiscImageChef.Filesystems
|
||||
return Encoding.ASCII.GetString(system_descriptor) == "PC Engine CD-ROM SYSTEM";
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public PFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public PFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Professional File System";
|
||||
PluginUUID = new Guid("68DE769E-D957-406A-8AE4-3781CA8CDA77");
|
||||
@@ -185,7 +185,7 @@ namespace DiscImageChef.Filesystems
|
||||
/// </summary>
|
||||
const uint MUPFS_DISK = 0x6D755046;
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Length < 3) return false;
|
||||
|
||||
@@ -199,7 +199,7 @@ namespace DiscImageChef.Filesystems
|
||||
magic == MUPFS_DISK;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
byte[] RootBlockSector = imagePlugin.ReadSector(2 + partition.Start);
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = new Claunia.Encoding.LisaRoman();
|
||||
}
|
||||
|
||||
public ProDOSPlugin(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public ProDOSPlugin(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Apple ProDOS filesystem";
|
||||
PluginUUID = new Guid("43874265-7B8A-4739-BCF7-07F80D5932BF");
|
||||
@@ -102,7 +102,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = new Claunia.Encoding.LisaRoman();
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Length < 3) return false;
|
||||
|
||||
@@ -156,7 +156,7 @@ namespace DiscImageChef.Filesystems
|
||||
return total_blocks <= (partition.End - partition.Start + 1);
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
StringBuilder sbInformation = new StringBuilder();
|
||||
@@ -305,7 +305,7 @@ namespace DiscImageChef.Filesystems
|
||||
xmlFSType.Files = rootDirectoryKeyBlock.header.file_count;
|
||||
xmlFSType.FilesSpecified = true;
|
||||
xmlFSType.Clusters = rootDirectoryKeyBlock.header.total_blocks;
|
||||
xmlFSType.ClusterSize = (int)(((partition.End - partition.Start) + 1) * imagePlugin.ImageInfo.sectorSize /
|
||||
xmlFSType.ClusterSize = (int)(((partition.End - partition.Start) + 1) * imagePlugin.ImageInfo.SectorSize /
|
||||
(ulong)xmlFSType.Clusters);
|
||||
xmlFSType.Type = "ProDOS";
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public QNX4(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public QNX4(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "QNX4 Plugin";
|
||||
PluginUUID = new Guid("E73A63FA-B5B0-48BF-BF82-DA5F0A8170D2");
|
||||
@@ -126,7 +126,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start + 1 >= imagePlugin.GetSectors()) return false;
|
||||
|
||||
@@ -160,7 +160,7 @@ namespace DiscImageChef.Filesystems
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public QNX6(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public QNX6(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "QNX6 Plugin";
|
||||
PluginUUID = new Guid("3E610EA2-4D08-4D70-8947-830CD4C74FC0");
|
||||
@@ -121,7 +121,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
uint sectors = QNX6_SuperBlockSize / imagePlugin.GetSectorSize();
|
||||
uint bootSectors = QNX6_BootBlocksSize / imagePlugin.GetSectorSize();
|
||||
@@ -147,7 +147,7 @@ namespace DiscImageChef.Filesystems
|
||||
return qnxSb.magic == QNX6_Magic || audiSb.magic == QNX6_Magic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -165,7 +165,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public RBF(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public RBF(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "OS-9 Random Block File Plugin";
|
||||
PluginUUID = new Guid("E864E45B-0B52-4D29-A858-7BDFA9199FB2");
|
||||
@@ -173,7 +173,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 256) return false;
|
||||
|
||||
@@ -206,7 +206,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public RT11(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public RT11(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "RT-11 file system";
|
||||
PluginUUID = new Guid("DB3E2F98-8F98-463C-8126-E937843DA024");
|
||||
@@ -65,7 +65,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((1 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == "DECRT11A ";
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public Reiser(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public Reiser(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Reiser Filesystem Plugin";
|
||||
PluginUUID = new Guid("1D8CD8B8-27E6-410F-9973-D16409225FBA");
|
||||
@@ -111,7 +111,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
@@ -137,7 +137,7 @@ namespace DiscImageChef.Filesystems
|
||||
ReiserJr_Magic.SequenceEqual(reiserSb.magic);
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public Reiser4(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public Reiser4(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Reiser4 Filesystem Plugin";
|
||||
PluginUUID = new Guid("301F2D00-E8D5-4F04-934E-81DFB21D15BA");
|
||||
@@ -78,7 +78,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace DiscImageChef.Filesystems
|
||||
return Reiser4_Magic.SequenceEqual(reiserSb.magic);
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public SFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public SFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "SmartFileSystem";
|
||||
PluginUUID = new Guid("26550C19-3671-4A2D-BC2F-F20CEB7F48DC");
|
||||
@@ -102,7 +102,7 @@ namespace DiscImageChef.Filesystems
|
||||
/// <summary>Identifier for SFS v2</summary>
|
||||
const uint SFS2_MAGIC = 0x53465302;
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start >= partition.End) return false;
|
||||
|
||||
@@ -115,7 +115,7 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == SFS_MAGIC || magic == SFS2_MAGIC;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
byte[] RootBlockSector = imagePlugin.ReadSector(partition.Start);
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public SolarFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public SolarFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Solar_OS filesystem";
|
||||
PluginUUID = new Guid("EA3101C1-E777-4B4F-B5A3-8C57F50F6E65");
|
||||
@@ -64,7 +64,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public Squash(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public Squash(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Squash filesystem";
|
||||
PluginUUID = new Guid("F8F6E46F-7A2A-48E3-9C0A-46AF4DC29E09");
|
||||
@@ -103,7 +103,7 @@ namespace DiscImageChef.Filesystems
|
||||
const uint Squash_MAGIC = 0x73717368;
|
||||
const uint Squash_CIGAM = 0x68737173;
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start >= partition.End) return false;
|
||||
|
||||
@@ -114,7 +114,7 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == Squash_MAGIC || magic == Squash_CIGAM;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
byte[] sector = imagePlugin.ReadSector(partition.Start);
|
||||
@@ -179,7 +179,7 @@ namespace DiscImageChef.Filesystems
|
||||
xmlFSType.Type = "Squash file system";
|
||||
xmlFSType.CreationDate = DateHandlers.UNIXUnsignedToDateTime(sqSb.mkfs_time);
|
||||
xmlFSType.CreationDateSpecified = true;
|
||||
xmlFSType.Clusters = (long)(((partition.End - partition.Start + 1) * imagePlugin.ImageInfo.sectorSize) /
|
||||
xmlFSType.Clusters = (long)(((partition.End - partition.Start + 1) * imagePlugin.ImageInfo.SectorSize) /
|
||||
sqSb.block_size);
|
||||
xmlFSType.ClusterSize = (int)sqSb.block_size;
|
||||
xmlFSType.Files = sqSb.inodes;
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public SysVfs(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public SysVfs(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "UNIX System V filesystem";
|
||||
PluginUUID = new Guid("9B8D016A-8561-400E-A12A-A198283C211D");
|
||||
@@ -81,7 +81,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -122,7 +122,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
|
||||
// Sectors in a cylinder
|
||||
int spc = (int)(imagePlugin.ImageInfo.heads * imagePlugin.ImageInfo.sectorsPerTrack);
|
||||
int spc = (int)(imagePlugin.ImageInfo.Heads * imagePlugin.ImageInfo.SectorsPerTrack);
|
||||
|
||||
// Superblock can start on 0x000, 0x200, 0x600 and 0x800, not aligned, so we assume 16 (128 bytes/sector) sectors as a safe value
|
||||
int[] locations =
|
||||
@@ -134,7 +134,7 @@ namespace DiscImageChef.Filesystems
|
||||
|
||||
foreach(int i in locations)
|
||||
{
|
||||
if(i + sb_size_in_sectors >= (int)imagePlugin.ImageInfo.sectors) break;
|
||||
if(i + sb_size_in_sectors >= (int)imagePlugin.ImageInfo.Sectors) break;
|
||||
|
||||
byte[] sb_sector = imagePlugin.ReadSectors((ulong)i + partition.Start, sb_size_in_sectors);
|
||||
|
||||
@@ -192,7 +192,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -220,7 +220,7 @@ namespace DiscImageChef.Filesystems
|
||||
sb_size_in_sectors = (byte)(0x400 / imagePlugin.GetSectorSize());
|
||||
else sb_size_in_sectors = 1; // If not a single sector can store it
|
||||
// Sectors in a cylinder
|
||||
int spc = (int)(imagePlugin.ImageInfo.heads * imagePlugin.ImageInfo.sectorsPerTrack);
|
||||
int spc = (int)(imagePlugin.ImageInfo.Heads * imagePlugin.ImageInfo.SectorsPerTrack);
|
||||
|
||||
// Superblock can start on 0x000, 0x200, 0x600 and 0x800, not aligned, so we assume 16 (128 bytes/sector) sectors as a safe value
|
||||
int[] locations =
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace DiscImageChef.Filesystems.UCSDPascal
|
||||
// Information from Call-A.P.P.L.E. Pascal Disk Directory Structure
|
||||
public partial class PascalPlugin : Filesystem
|
||||
{
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Length < 3) return false;
|
||||
|
||||
@@ -83,7 +83,7 @@ namespace DiscImageChef.Filesystems.UCSDPascal
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
StringBuilder sbInformation = new StringBuilder();
|
||||
|
||||
@@ -34,7 +34,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems.UCSDPascal
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@ using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.Console;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems
|
||||
{
|
||||
@@ -231,13 +231,13 @@ namespace DiscImageChef.Filesystems
|
||||
public ushort maximumWriteUDF;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
// UDF needs at least that
|
||||
if(partition.End - partition.Start < 256) return false;
|
||||
|
||||
// UDF needs at least that
|
||||
if(imagePlugin.ImageInfo.sectorSize < 512) return false;
|
||||
if(imagePlugin.ImageInfo.SectorSize < 512) return false;
|
||||
|
||||
byte[] sector;
|
||||
AnchorVolumeDescriptorPointer anchor = new AnchorVolumeDescriptorPointer();
|
||||
@@ -321,7 +321,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
byte[] sector;
|
||||
@@ -457,7 +457,7 @@ namespace DiscImageChef.Filesystems
|
||||
xmlFSType.ApplicationIdentifier = CurrentEncoding
|
||||
.GetString(pvd.implementationIdentifier.identifier).TrimEnd(new char[] {'\u0000'});
|
||||
xmlFSType.ClusterSize = (int)lvd.logicalBlockSize;
|
||||
xmlFSType.Clusters = (long)(((partition.End - partition.Start + 1) * imagePlugin.ImageInfo.sectorSize) /
|
||||
xmlFSType.Clusters = (long)(((partition.End - partition.Start + 1) * imagePlugin.ImageInfo.SectorSize) /
|
||||
(ulong)xmlFSType.ClusterSize);
|
||||
xmlFSType.ModificationDate = ECMAToDateTime(lvid.recordingDateTime);
|
||||
xmlFSType.ModificationDateSpecified = true;
|
||||
|
||||
@@ -147,7 +147,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public UNICOS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public UNICOS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "UNICOS Filesystem Plugin";
|
||||
PluginUUID = new Guid("61712F04-066C-44D5-A2A0-1E44C66B33F0");
|
||||
@@ -155,7 +155,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
@@ -175,7 +175,7 @@ namespace DiscImageChef.Filesystems
|
||||
return unicosSb.s_magic == UNICOS_Magic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public BFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public BFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "UNIX Boot filesystem";
|
||||
PluginUUID = new Guid("1E6E0DA6-F7E4-494C-80C6-CB5929E96155");
|
||||
@@ -66,7 +66,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if((2 + partition.Start) >= partition.End) return false;
|
||||
|
||||
@@ -77,7 +77,7 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == BFS_MAGIC;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public VMfs(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public VMfs(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "VMware filesystem";
|
||||
PluginUUID = new Guid("EE52BDB8-B49C-4122-A3DA-AD21CBE79843");
|
||||
@@ -93,11 +93,11 @@ namespace DiscImageChef.Filesystems
|
||||
const uint VMfs_MAGIC = 0xC001D00D;
|
||||
const uint VMfs_Base = 0x00100000;
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(partition.Start >= partition.End) return false;
|
||||
|
||||
ulong vmfsSuperOff = VMfs_Base / imagePlugin.ImageInfo.sectorSize;
|
||||
ulong vmfsSuperOff = VMfs_Base / imagePlugin.ImageInfo.SectorSize;
|
||||
|
||||
if(partition.Start + vmfsSuperOff > partition.End) return false;
|
||||
|
||||
@@ -108,10 +108,10 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == VMfs_MAGIC;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
ulong vmfsSuperOff = VMfs_Base / imagePlugin.ImageInfo.sectorSize;
|
||||
ulong vmfsSuperOff = VMfs_Base / imagePlugin.ImageInfo.SectorSize;
|
||||
byte[] sector = imagePlugin.ReadSector(partition.Start + vmfsSuperOff);
|
||||
|
||||
VolumeInfo volInfo = new VolumeInfo();
|
||||
@@ -148,8 +148,8 @@ namespace DiscImageChef.Filesystems
|
||||
xmlFSType.CreationDateSpecified = true;
|
||||
xmlFSType.ModificationDate = DateHandlers.UNIXUnsignedToDateTime(mtimeSecs, mtimeNanoSecs);
|
||||
xmlFSType.ModificationDateSpecified = true;
|
||||
xmlFSType.Clusters = volInfo.size * 256 / imagePlugin.ImageInfo.sectorSize;
|
||||
xmlFSType.ClusterSize = (int)imagePlugin.ImageInfo.sectorSize;
|
||||
xmlFSType.Clusters = volInfo.size * 256 / imagePlugin.ImageInfo.SectorSize;
|
||||
xmlFSType.ClusterSize = (int)imagePlugin.ImageInfo.SectorSize;
|
||||
xmlFSType.VolumeSerial = volInfo.uuid.ToString();
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public VxFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public VxFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Veritas filesystem";
|
||||
PluginUUID = new Guid("EC372605-7687-453C-8BEA-7E0DFF79CB03");
|
||||
@@ -212,9 +212,9 @@ namespace DiscImageChef.Filesystems
|
||||
const uint VxFS_MAGIC = 0xA501FCF5;
|
||||
const uint VxFS_Base = 0x400;
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
ulong vmfsSuperOff = VxFS_Base / imagePlugin.ImageInfo.sectorSize;
|
||||
ulong vmfsSuperOff = VxFS_Base / imagePlugin.ImageInfo.SectorSize;
|
||||
|
||||
if(partition.Start + vmfsSuperOff >= partition.End) return false;
|
||||
|
||||
@@ -225,10 +225,10 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == VxFS_MAGIC;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
ulong vmfsSuperOff = VxFS_Base / imagePlugin.ImageInfo.sectorSize;
|
||||
ulong vmfsSuperOff = VxFS_Base / imagePlugin.ImageInfo.SectorSize;
|
||||
byte[] sector = imagePlugin.ReadSector(partition.Start + vmfsSuperOff);
|
||||
|
||||
VxSuperBlock vxSb = new VxSuperBlock();
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public XFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public XFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "XFS Filesystem Plugin";
|
||||
PluginUUID = new Guid("1D8CD8B8-27E6-410F-9973-D16409225FBA");
|
||||
@@ -127,12 +127,12 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
// Misaligned
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
XFS_Superblock xfsSb = new XFS_Superblock();
|
||||
|
||||
@@ -180,7 +180,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -189,7 +189,7 @@ namespace DiscImageChef.Filesystems
|
||||
XFS_Superblock xfsSb = new XFS_Superblock();
|
||||
|
||||
// Misaligned
|
||||
if(imagePlugin.ImageInfo.xmlMediaType == ImagePlugins.XmlMediaType.OpticalDisc)
|
||||
if(imagePlugin.ImageInfo.XmlMediaType == DiscImages.XmlMediaType.OpticalDisc)
|
||||
{
|
||||
uint sbSize = (uint)((Marshal.SizeOf(xfsSb) + 0x400) / imagePlugin.GetSectorSize());
|
||||
if((Marshal.SizeOf(xfsSb) + 0x400) % imagePlugin.GetSectorSize() != 0) sbSize++;
|
||||
|
||||
@@ -237,7 +237,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.UTF8;
|
||||
}
|
||||
|
||||
public ZFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public ZFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "ZFS Filesystem Plugin";
|
||||
PluginUUID = new Guid("0750014F-A714-4692-A369-E23F6EC3659C");
|
||||
@@ -245,7 +245,7 @@ namespace DiscImageChef.Filesystems
|
||||
CurrentEncoding = Encoding.UTF8;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
@@ -269,7 +269,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
@@ -279,7 +279,7 @@ namespace DiscImageChef.Filesystems
|
||||
ulong magic;
|
||||
|
||||
ulong nvlistOff = 32;
|
||||
uint nvlistLen = 114688 / imagePlugin.ImageInfo.sectorSize;
|
||||
uint nvlistLen = 114688 / imagePlugin.ImageInfo.SectorSize;
|
||||
byte[] nvlist;
|
||||
|
||||
if(partition.Start + 31 < partition.End)
|
||||
|
||||
@@ -221,7 +221,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public dump(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public dump(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "dump(8) Plugin";
|
||||
PluginUUID = new Guid("E53B4D28-C858-4800-B092-DDAE80D361B9");
|
||||
@@ -229,7 +229,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
@@ -270,7 +270,7 @@ namespace DiscImageChef.Filesystems
|
||||
newHdr.c_magic == NFS_CIGAM || newHdr.c_magic == UFS2_MAGIC || newHdr.c_magic == UFS2_CIGAM;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -36,7 +36,7 @@ using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using DiscImageChef.CommonTypes;
|
||||
using DiscImageChef.ImagePlugins;
|
||||
using DiscImageChef.DiscImages;
|
||||
|
||||
namespace DiscImageChef.Filesystems
|
||||
{
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public ext2FS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public ext2FS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Linux extended Filesystem 2, 3 and 4";
|
||||
PluginUUID = new Guid("6AA91B88-150B-4A7B-AD56-F84FB2DF4184");
|
||||
@@ -66,7 +66,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
ulong sbSector = sbPos / imagePlugin.GetSectorSize();
|
||||
uint sbOff = sbPos % imagePlugin.GetSectorSize();
|
||||
@@ -88,7 +88,7 @@ namespace DiscImageChef.Filesystems
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public extFS(ImagePlugins.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
public extFS(DiscImages.ImagePlugin imagePlugin, Partition partition, Encoding encoding)
|
||||
{
|
||||
Name = "Linux extended Filesystem";
|
||||
PluginUUID = new Guid("076CB3A2-08C2-4D69-BC8A-FCAA2E502BE2");
|
||||
@@ -65,7 +65,7 @@ namespace DiscImageChef.Filesystems
|
||||
else CurrentEncoding = encoding;
|
||||
}
|
||||
|
||||
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, Partition partition)
|
||||
public override bool Identify(DiscImages.ImagePlugin imagePlugin, Partition partition)
|
||||
{
|
||||
if(imagePlugin.GetSectorSize() < 512) return false;
|
||||
|
||||
@@ -83,7 +83,7 @@ namespace DiscImageChef.Filesystems
|
||||
return magic == extFSMagic;
|
||||
}
|
||||
|
||||
public override void GetInformation(ImagePlugins.ImagePlugin imagePlugin, Partition partition,
|
||||
public override void GetInformation(DiscImages.ImagePlugin imagePlugin, Partition partition,
|
||||
out string information)
|
||||
{
|
||||
information = "";
|
||||
|
||||
Reference in New Issue
Block a user