Added preliminar early-API for filesystem read-only access.

This commit is contained in:
2016-07-21 17:16:08 +01:00
parent 66a58e3351
commit 826afbac0c
27 changed files with 1542 additions and 3 deletions

View File

@@ -39,6 +39,7 @@ using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text; using System.Text;
using DiscImageChef.Console; using DiscImageChef.Console;
using System.Collections.Generic;
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
{ {
@@ -129,6 +130,61 @@ namespace DiscImageChef.Filesystems
xmlFSType.ClusterSize = (int)nxSb.blockSize; xmlFSType.ClusterSize = (int)nxSb.blockSize;
xmlFSType.Type = "Apple File System"; xmlFSType.Type = "Apple File System";
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -36,6 +36,7 @@
// ****************************************************************************/ // ****************************************************************************/
// //$Id$ // //$Id$
using System; using System;
using System.Collections.Generic;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text; using System.Text;
using DiscImageChef.Console; using DiscImageChef.Console;
@@ -222,6 +223,61 @@ namespace DiscImageChef.Filesystems
xmlFSType.VolumeName = discname; xmlFSType.VolumeName = discname;
xmlFSType.VolumeSerial = string.Format("{0}", drSb.disc_id); xmlFSType.VolumeSerial = string.Format("{0}", drSb.disc_id);
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -373,5 +373,60 @@ namespace DiscImageChef.Filesystems
return sum; return sum;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -37,6 +37,7 @@ Copyright (C) 2011-2014 Claunia.com
//$Id$ //$Id$
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
@@ -540,5 +541,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x086, Heap size on a Mac with 512KiB of RAM or more</summary> /// <summary>0x086, Heap size on a Mac with 512KiB of RAM or more</summary>
public UInt32 heap_512k; public UInt32 heap_512k;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from Apple TechNote 1150: https://developer.apple.com/legacy/library/technotes/tn/tn1150.html // Information from Apple TechNote 1150: https://developer.apple.com/legacy/library/technotes/tn/tn1150.html
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
@@ -570,5 +571,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x210</summary> /// <summary>0x210</summary>
public UInt32 startupFile_extents_blockCount7; public UInt32 startupFile_extents_blockCount7;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from Inside Macintosh // Information from Inside Macintosh
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
@@ -297,5 +298,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x086, Heap size on a Mac with 512KiB of RAM or more</summary> /// <summary>0x086, Heap size on a Mac with 512KiB of RAM or more</summary>
public UInt32 heap_512k; public UInt32 heap_512k;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from Practical Filesystem Design, ISBN 1-55860-497-9 // Information from Practical Filesystem Design, ISBN 1-55860-497-9
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
@@ -286,5 +287,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x082, As this is part of inode_addr, this is 1</summary> /// <summary>0x082, As this is part of inode_addr, this is 1</summary>
public UInt16 indices_len; public UInt16 indices_len;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text; using System.Text;
using DiscImageChef.Console; using DiscImageChef.Console;
using System.Collections.Generic;
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
{ {
@@ -240,6 +241,61 @@ namespace DiscImageChef.Filesystems
xmlFSType.VolumeSetIdentifier = string.Format("{0}", btrfsSb.dev_item.device_uuid); xmlFSType.VolumeSetIdentifier = string.Format("{0}", btrfsSb.dev_item.device_uuid);
xmlFSType.Type = Name; xmlFSType.Type = Name;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// TODO: Implement detecting DOS bootable disks // TODO: Implement detecting DOS bootable disks
// TODO: Implement detecting Atari TOS bootable disks and printing corresponding fields // TODO: Implement detecting Atari TOS bootable disks and printing corresponding fields
@@ -483,5 +484,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x52, Filesystem type, 8 bytes, space-padded, must be "FAT32 "</summary> /// <summary>0x52, Filesystem type, 8 bytes, space-padded, must be "FAT32 "</summary>
public string fs_type; public string fs_type;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Using information from Linux kernel headers // Using information from Linux kernel headers
using DiscImageChef.Console; using DiscImageChef.Console;
@@ -1139,5 +1140,60 @@ namespace DiscImageChef.Filesystems
public byte fs_space; public byte fs_space;
// 0x0561 // 0x0561
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -95,6 +95,86 @@ namespace DiscImageChef.Filesystems
/// <param name="partitionEnd">Partition end sector (LBA).</param> /// <param name="partitionEnd">Partition end sector (LBA).</param>
/// <param name="information">Filesystem information.</param> /// <param name="information">Filesystem information.</param>
public abstract void GetInformation(ImagePlugins.ImagePlugin imagePlugin, ulong partitionStart, ulong partitionEnd, out string information); public abstract void GetInformation(ImagePlugins.ImagePlugin imagePlugin, ulong partitionStart, ulong partitionEnd, out string information);
/// <summary>
/// Initializates whatever internal structures the filesystem plugin needs to be able to read files and directories from the filesystem.
/// </summary>
public abstract Errno Mount();
/// <summary>
/// Frees all internal structures created by <see cref="Mount"/>
/// </summary>
public abstract Errno Unmount();
/// <summary>
/// Maps a filesystem block from a file to a block from the underlying device.
/// </summary>
/// <returns>Error number.</returns>
/// <param name="path">File path.</param>
/// <param name="fileBlock">File block.</param>
/// <param name="deviceBlock">Device block.</param>
public abstract Errno MapBlock(string path, long fileBlock, ref long deviceBlock);
/// <summary>
/// Gets the attributes of a file or directory
/// </summary>
/// <returns>Error number.</returns>
/// <param name="path">File path.</param>
/// <param name="attributes">File attributes.</param>
public abstract Errno GetAttributes(string path, ref FileAttributes attributes);
/// <summary>
/// Lists all extended attributes, alternate data streams and forks of the given file.
/// </summary>
/// <returns>Error number.</returns>
/// <param name="path">Path.</param>
/// <param name="xattrs">List of extended attributes, alternate data streams and forks.</param>
public abstract Errno ListXAttr(string path, ref List<string> xattrs);
/// <summary>
/// Reads an extended attribute, alternate data stream or fork from the given file.
/// </summary>
/// <returns>The extended attribute, alternate data stream or fork name.</returns>
/// <param name="path">File path.</param>
/// <param name="xattr">Extendad attribute, alternate data stream or fork name.</param>
/// <param name="buf">Buffer.</param>
public abstract Errno GetXattr(string path, string xattr, ref byte[] buf);
/// <summary>
/// Reads data from a file (main/only data stream or data fork).
/// </summary>
/// <param name="path">File path.</param>
/// <param name="offset">Offset.</param>
/// <param name="size">Bytes to read.</param>
/// <param name="buf">Buffer.</param>
public abstract Errno Read(string path, long offset, long size, ref byte[] buf);
/// <summary>
/// Lists contents from a directory.
/// </summary>
/// <param name="path">Directory path.</param>
/// <param name="contents">Directory contents.</param>
public abstract Errno ReadDir(string path, ref List<string> contents);
/// <summary>
/// Gets information about the mounted volume.
/// </summary>
/// <param name="stat">Information about the mounted volume.</param>
public abstract Errno StatFs(ref FileSystemInfo stat);
/// <summary>
/// Gets information about a file or directory.
/// </summary>
/// <param name="path">File path.</param>
/// <param name="stat">File information.</param>
public abstract Errno Stat(string path, ref FileEntryInfo stat);
/// <summary>
/// Solves a symbolic link.
/// </summary>
/// <param name="path">Link path.</param>
/// <param name="dest">Link destination.</param>
public abstract Errno ReadLink(string path, ref string dest);
} }
} }

View File

@@ -40,6 +40,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from an old unnamed document // Information from an old unnamed document
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
@@ -395,5 +396,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x02C, SpareBlock CRC32 (only HPFS386)</summary> /// <summary>0x02C, SpareBlock CRC32 (only HPFS386)</summary>
public UInt32 sp_crc32; public UInt32 sp_crc32;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -40,6 +40,7 @@ using System;
using System.Globalization; using System.Globalization;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// This is coded following ECMA-119. // This is coded following ECMA-119.
// TODO: Differentiate ISO Level 1, 2, 3 and ISO 9660:1999 // TODO: Differentiate ISO Level 1, 2, 3 and ISO 9660:1999
@@ -1082,5 +1083,60 @@ namespace DiscImageChef.Filesystems
return decodedVD; return decodedVD;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -40,6 +40,7 @@ using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using DiscImageChef.ImagePlugins; using DiscImageChef.ImagePlugins;
using System.Collections.Generic;
// All information by Natalia Portillo // All information by Natalia Portillo
// Variable names from Lisa API // Variable names from Lisa API
@@ -421,6 +422,61 @@ namespace DiscImageChef.Filesystems
} }
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
struct Lisa_MDDF struct Lisa_MDDF
{ {
/// <summary>0x00, Filesystem version</summary> /// <summary>0x00, Filesystem version</summary>

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from the Linux kernel // Information from the Linux kernel
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
@@ -304,6 +305,61 @@ namespace DiscImageChef.Filesystems
/// <summary>0x1E, on-disk structures version</summary> /// <summary>0x1E, on-disk structures version</summary>
public byte s_disk_version; public byte s_disk_version;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from Inside Windows NT // Information from Inside Windows NT
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
@@ -242,5 +243,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x1FE, 0xAA55</summary> /// <summary>0x1FE, 0xAA55</summary>
public UInt16 signature2; public UInt16 signature2;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -43,6 +43,7 @@ using DiscImageChef.PartPlugins;
using System.Collections.Generic; using System.Collections.Generic;
using DiscImageChef.Console; using DiscImageChef.Console;
using System.Runtime.Remoting.Messaging; using System.Runtime.Remoting.Messaging;
using System.Collections.Generic;
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
{ {
@@ -490,6 +491,61 @@ namespace DiscImageChef.Filesystems
return string.Format("unknown type {0}", type); return string.Format("unknown type {0}", type);
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -38,6 +38,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from VMS File System Internals by Kirby McCoy // Information from VMS File System Internals by Kirby McCoy
// ISBN: 1-55558-056-4 // ISBN: 1-55558-056-4
@@ -372,5 +373,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x1FE, Checksum of preceding 255 words (16 bit units)</summary> /// <summary>0x1FE, Checksum of preceding 255 words (16 bit units)</summary>
public UInt16 checksum2; public UInt16 checksum2;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,7 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
{ {
@@ -168,5 +168,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x060, Last root directory copy</summary> /// <summary>0x060, Last root directory copy</summary>
public Int32 last_root_copy; public Int32 last_root_copy;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
{ {
@@ -71,5 +72,60 @@ namespace DiscImageChef.Filesystems
xmlFSType.Clusters = (long)((partitionEnd - partitionStart + 1) / imagePlugin.GetSectorSize() * 2048); xmlFSType.Clusters = (long)((partitionEnd - partitionStart + 1) / imagePlugin.GetSectorSize() * 2048);
xmlFSType.ClusterSize = 2048; xmlFSType.ClusterSize = 2048;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2015 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from Apple ProDOS 8 Technical Reference // Information from Apple ProDOS 8 Technical Reference
using DiscImageChef.Console; using DiscImageChef.Console;
@@ -233,6 +234,61 @@ namespace DiscImageChef.Filesystems
return; return;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
/// <summary> /// <summary>
/// ProDOS directory entry, decoded structure /// ProDOS directory entry, decoded structure
/// </summary> /// </summary>

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Based on FAT's BPB, cannot find a FAT or directory // Based on FAT's BPB, cannot find a FAT or directory
using DiscImageChef.Console; using DiscImageChef.Console;
@@ -193,5 +194,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x35, 8 bytes, "SOL_FS "</summary> /// <summary>0x35, 8 bytes, "SOL_FS "</summary>
public string fs_type; public string fs_type;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -145,7 +145,7 @@ namespace DiscImageChef.Filesystems
/// <summary> /// <summary>
/// Information about a file entry /// Information about a file entry
/// </summary> /// </summary>
public struct FileEntryInfo public class FileEntryInfo
{ {
DateTime crtimeUtc; DateTime crtimeUtc;
DateTime atimeUtc; DateTime atimeUtc;
@@ -200,7 +200,7 @@ namespace DiscImageChef.Filesystems
public long Blocks; public long Blocks;
} }
public struct FileSystemInfo public class FileSystemInfo
{ {
/// <summary>Filesystem type</summary> /// <summary>Filesystem type</summary>
public string Type; public string Type;
@@ -219,4 +219,65 @@ namespace DiscImageChef.Filesystems
/// <summary>Filesystem ID</summary> /// <summary>Filesystem ID</summary>
public Guid Id; public Guid Id;
} }
/// <summary>
/// Errors
/// </summary>
public enum Errno
{
/// <summary>No error happened</summary>
NoError = 0,
/// <summary>Access denied</summary>
AccessDenied = -13,
/// <summary>Busy, cannot complete</summary>
Busy = -16,
/// <summary>File is too large</summary>
FileTooLarge = -27,
/// <summary>Invalid argument</summary>
InvalidArgument = -22,
/// <summary>I/O error</summary>
InOutError = -5,
/// <summary>Is a directory (e.g.: trying to Read() a dir)</summary>
IsDirectory = -21,
/// <summary>Name is too long</summary>
NameTooLong = -36,
/// <summary>No such device</summary>
NoSuchDevice = -19,
/// <summary>No such file or directory</summary>
NoSuchFile = -2,
/// <summary>Is not a directory (e.g.: trying to ReadDir() a file)</summary>
NotDirectory = -20,
/// <summary>Not implemented</summary>
NotImplemented = -38,
/// <summary>Not supported</summary>
NotSupported = -252,
/// <summary>Link is severed</summary>
SeveredLink = -67,
/// <summary>Access denied</summary>
EACCES = AccessDenied,
/// <summary>Busy, cannot complete</summary>
EBUSY = Busy,
/// <summary>File is too large</summary>
EFBIG = FileTooLarge,
/// <summary>Invalid argument</summary>
EINVAL = InvalidArgument,
/// <summary>I/O error</summary>
EIO = InOutError,
/// <summary>Is a directory (e.g.: trying to Read() a dir)</summary>
EISDIR = IsDirectory,
/// <summary>Name is too long</summary>
ENAMETOOLONG = NameTooLong,
/// <summary>No such device</summary>
ENODEV = NoSuchDevice,
/// <summary>No such file or directory</summary>
ENOENT = NoSuchFile,
/// <summary>Link is severed</summary>
ENOLINK = SeveredLink,
/// <summary>Not implemented</summary>
ENOSYS = NotImplemented,
/// <summary>Is not a directory (e.g.: trying to ReadDir() a file)</summary>
ENOTDIR = NotDirectory,
/// <summary>Not supported</summary>
ENOTSUP = NotSupported
}
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from the Linux kernel // Information from the Linux kernel
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
@@ -858,5 +859,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x1F4, zero-filled</summary> /// <summary>0x1F4, zero-filled</summary>
public UInt32 s_unique; public UInt32 s_unique;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -37,6 +37,7 @@ Copyright (C) 2011-2014 Claunia.com
//$Id$ //$Id$
using System; using System;
using System.Collections.Generic;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
@@ -135,5 +136,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x22, 6 bytes, volume name</summary> /// <summary>0x22, 6 bytes, volume name</summary>
public string s_volume; public string s_volume;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from the Linux kernel // Information from the Linux kernel
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
@@ -927,5 +928,60 @@ namespace DiscImageChef.Filesystems
public const UInt32 EXT2_FLAGS_UNSIGNED_HASH = 0x00000002; public const UInt32 EXT2_FLAGS_UNSIGNED_HASH = 0x00000002;
/// <summary>Testing development code</summary> /// <summary>Testing development code</summary>
public const UInt32 EXT2_FLAGS_TEST_FILESYS = 0x00000004; public const UInt32 EXT2_FLAGS_TEST_FILESYS = 0x00000004;
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }

View File

@@ -39,6 +39,7 @@ Copyright (C) 2011-2014 Claunia.com
using System; using System;
using System.Text; using System.Text;
using DiscImageChef; using DiscImageChef;
using System.Collections.Generic;
// Information from the Linux kernel // Information from the Linux kernel
namespace DiscImageChef.Filesystems namespace DiscImageChef.Filesystems
@@ -143,5 +144,60 @@ namespace DiscImageChef.Filesystems
/// <summary>0x038, 0x137D (little endian)</summary> /// <summary>0x038, 0x137D (little endian)</summary>
public UInt16 magic; public UInt16 magic;
} }
public override Errno Mount()
{
return Errno.NotImplemented;
}
public override Errno Unmount()
{
return Errno.NotImplemented;
}
public override Errno MapBlock(string path, long fileBlock, ref long deviceBlock)
{
return Errno.NotImplemented;
}
public override Errno GetAttributes(string path, ref FileAttributes attributes)
{
return Errno.NotImplemented;
}
public override Errno ListXAttr(string path, ref List<string> xattrs)
{
return Errno.NotImplemented;
}
public override Errno GetXattr(string path, string xattr, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno Read(string path, long offset, long size, ref byte[] buf)
{
return Errno.NotImplemented;
}
public override Errno ReadDir(string path, ref List<string> contents)
{
return Errno.NotImplemented;
}
public override Errno StatFs(ref FileSystemInfo stat)
{
return Errno.NotImplemented;
}
public override Errno Stat(string path, ref FileEntryInfo stat)
{
return Errno.NotImplemented;
}
public override Errno ReadLink(string path, ref string dest)
{
return Errno.NotImplemented;
}
} }
} }