diff --git a/DiscImageChef.Filesystems/DiscImageChef.Filesystems.csproj b/DiscImageChef.Filesystems/DiscImageChef.Filesystems.csproj index 6aeb9d3fd..b7b9fc676 100644 --- a/DiscImageChef.Filesystems/DiscImageChef.Filesystems.csproj +++ b/DiscImageChef.Filesystems/DiscImageChef.Filesystems.csproj @@ -71,6 +71,10 @@ + + + + diff --git a/DiscImageChef.Filesystems/ISO9660/Dir.cs b/DiscImageChef.Filesystems/ISO9660/Dir.cs new file mode 100644 index 000000000..cfcf074be --- /dev/null +++ b/DiscImageChef.Filesystems/ISO9660/Dir.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using DiscImageChef.CommonTypes.Structs; + +namespace DiscImageChef.Filesystems.ISO9660 +{ + public partial class ISO9660 + { + public Errno ReadDir(string path, out List contents) => throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/DiscImageChef.Filesystems/ISO9660/File.cs b/DiscImageChef.Filesystems/ISO9660/File.cs new file mode 100644 index 000000000..ce79d9156 --- /dev/null +++ b/DiscImageChef.Filesystems/ISO9660/File.cs @@ -0,0 +1,16 @@ +using System; +using DiscImageChef.CommonTypes.Structs; + +namespace DiscImageChef.Filesystems.ISO9660 +{ + public partial class ISO9660 + { + public Errno MapBlock(string path, long fileBlock, out long deviceBlock) => throw new NotImplementedException(); + + public Errno GetAttributes(string path, out FileAttributes attributes) => throw new NotImplementedException(); + + public Errno Read(string path, long offset, long size, ref byte[] buf) => throw new NotImplementedException(); + + public Errno Stat(string path, out FileEntryInfo stat) => throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/DiscImageChef.Filesystems/ISO9660/ISO9660.cs b/DiscImageChef.Filesystems/ISO9660/ISO9660.cs index 75836d5d5..860b23dc8 100644 --- a/DiscImageChef.Filesystems/ISO9660/ISO9660.cs +++ b/DiscImageChef.Filesystems/ISO9660/ISO9660.cs @@ -31,19 +31,43 @@ // ****************************************************************************/ using System; +using System.Collections.Generic; using System.Text; using DiscImageChef.CommonTypes.Interfaces; +using DiscImageChef.CommonTypes.Structs; using Schemas; namespace DiscImageChef.Filesystems.ISO9660 { // This is coded following ECMA-119. - public partial class ISO9660 : IFilesystem + public partial class ISO9660 : IReadOnlyFilesystem { public FileSystemType XmlFsType { get; private set; } public Encoding Encoding { get; private set; } public string Name => "ISO9660 Filesystem"; public Guid Id => new Guid("d812f4d3-c357-400d-90fd-3b22ef786aa8"); public string Author => "Natalia Portillo"; + + public IEnumerable<(string name, Type type, string description)> SupportedOptions => + new (string name, Type type, string description)[] { }; + + public Dictionary Namespaces => + new Dictionary + { + {"normal", "Primary Volume Descriptor, ignoring ;1 suffixes"}, + {"vms", "Primary Volume Descriptor, showing version suffixes"}, + {"joliet", "Joliet Volume Descriptor"}, + {"joliet+normal", "Joliet with fallback to normal"} + }; + + public Errno ReadLink(string path, out string dest) + { + dest = null; + + return Errno.NotSupported; + } + + static Dictionary GetDefaultOptions() => + new Dictionary {{"debug", false.ToString()}}; } } \ No newline at end of file diff --git a/DiscImageChef.Filesystems/ISO9660/Super.cs b/DiscImageChef.Filesystems/ISO9660/Super.cs new file mode 100644 index 000000000..5adf9c052 --- /dev/null +++ b/DiscImageChef.Filesystems/ISO9660/Super.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; +using DiscImageChef.CommonTypes; +using DiscImageChef.CommonTypes.Interfaces; +using DiscImageChef.CommonTypes.Structs; + +namespace DiscImageChef.Filesystems.ISO9660 +{ + public partial class ISO9660 + { + public Errno Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding, + Dictionary options, string @namespace) => + throw new NotImplementedException(); + + public Errno Unmount() => throw new NotImplementedException(); + + public Errno StatFs(out FileSystemInfo stat) => throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/DiscImageChef.Filesystems/ISO9660/Xattr.cs b/DiscImageChef.Filesystems/ISO9660/Xattr.cs new file mode 100644 index 000000000..b0bffaece --- /dev/null +++ b/DiscImageChef.Filesystems/ISO9660/Xattr.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using DiscImageChef.CommonTypes.Structs; + +namespace DiscImageChef.Filesystems.ISO9660 +{ + public partial class ISO9660 + { + public Errno ListXAttr(string path, out List xattrs) => throw new NotImplementedException(); + + public Errno GetXattr(string path, string xattr, ref byte[] buf) => throw new NotImplementedException(); + } +} \ No newline at end of file