dwww Home | Show directory contents | Find package

2007-06-29  Jonathan Pryor  <jonpryor@vt.edu>

        * configure.in: My sh-fu needs work.  Properly check the return value of
          `gmcs' so I can determine whether it compiled successfully.

2007-06-29  Jonathan Pryor  <jonpryor@vt.edu>

        * configure.in: Use a better check for the
          Mono.Unix.Native.NativeConvert.TryCopy() methods, as relying on
          libMonoPosixHelper.so is inadequate.
        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: Use NativeConvert.TryCopy(), not
          NativeConvert.Copy().  (NativeConvert.Copy() was only proposed, but never
          made it into an official Mono.Posix release, while .TryCopy did.)

2007-04-17  Jonathan Pryor  <jonpryor@vt.edu>

        * example/HelloFS/hellofs.in, example/RedirectFS/redirectfs.in,
          example/RedirectFS/redirects-fh.in: Define DYLD_LIBRARY_PATH so that
          example programs work seamlessly on OS X as well as Linux.
        * lib/mono-fuse/Mono.Fuse.dll.config: Added; Mono dllmap config file so that
          MonoFuseHelper is redirected to libMonoFuseHelper.dylib on Mac OS X.
        * src/Mono.Fuse/Makefile.am: Install the Mono.Fuse.dll.mdb and
          Mono.Fuse.dll.config files.

2007-04-17  Jonathan Pryor  <jonpryor@vt.edu>

        * src/MonoFuseHelper/Makefile.am: Define HAVE_STRUCT_FUSE_ARGS so that
          map.c's Mono_Fuse_ToArgs() and Mono_Fuse_FromArgs() will be compiled.
          Otherwise, we get an unsatisfied link error when loading MonoFuseHelper.

2007-04-17  Jonathan Pryor  <jonpryor@vt.edu>

        * src/Mono.Fuse/create-native-map.exe, src/Mono.Fuse/MapAttribute.cs: Update
          to latest versions (fixes buggy overflow checking in MonoFuseHelper).
        * lib/Mono.Fuse/Makefile.am: FUSE_USE_VERSION should be in the .c file, not
          the .h file.  Also fixes Mac OS X compilation, as FUSE_USE_VERSION needs
          to be defined *before* including <fuse.h>, but <fuse.h> is inserted before
          the include of lib/map.h -- bad order.

2007-01-17  Jonathan Pryor  <jonpryor@vt.edu>

        * src/MonoFuseHelper/Makefile.am: Use $(LIBTOOL), not `libtool', as the
          libtool program may go by different names on different platforms (e.g.
          glibtool on OS X).

2006-10-31  Jonathan Pryor  <jonpryor@vt.edu>

        * example/HelloFS/HelloFS.cs: Add extra Trace statements; remove unused code.

2006-10-23  Jonathan Pryor  <jonpryor@vt.edu>

        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: Add [In,Out] to the
          FileSystmeOperationContext parameter in mfh_fuse_get_context().
          Otherwise, the data is never marshaled back into managed memory, so all
          fields are zero'd out (making the method useless).  Oops!

2006-10-12  Jonathan Pryor  <jonpryor@vt.edu>

        * doc/mono-fuse-docs.source: Update @basefile to contain the actual
          basefile.  Allows installed monodoc documentation to work.

2006-10-12  Jonathan Pryor  <jonpryor@vt.edu>

        * doc/Makefile.am: Add `-pretty' so monodocer produces nicely indented XML.
        * doc/en/Mono.Fuse/DirectoryEntry.xml, doc/en/Mono.Fuse/FileSystem.xml,
          doc/en/Mono.Fuse/FileSystemOperationContext.xml,
          doc/en/Mono.Fuse/OpenedPathInfo.xml: Flush documentation (largest change
          was due to reformatting of XML).  Also used svn version of monodocer to
          get proper Generics-formatted method declarations, so
          FileSystem.OnReadDirectory now lists a parameter of
          System.Collections.Generic.IEnumerable<Mono.Fuse.DirectoryEntry> instead
          of System.Collections.Generic.IEnumerable`1[[Mono.Fuse.DirectoryEntry,
          Mono.Fuse, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]].
        * src/Mono.Fuse/create-native-map.exe: Commit latest version; fixes #ifndef
          name formatting so that SYMBOL in "#ifndef SYMBOL" doesn't contain `/'.

2006-09-21  Jonathan Pryor  <jonpryor@vt.edu>

        * configure.in: Remove checks for mint.  Mint is dead.

2006-09-21  Jonathan Pryor  <jonpryor@vt.edu>

        * doc/en/Mono.Fuse/FileSystem.xml, doc/en/Mono.Fuse/OpenedPathInfo.xml:
          Minor doc updates.

2006-09-20  Jonathan Pryor  <jonpryor@vt.edu>

        * doc/Makefile.am: Create mono-fuse-docs.* files, not mono-fuse.* files.
          This matches Gtk#, and allows for clarity if we ever have
          mono-fuse-docs.zip and mono-fuse-VERSION.tar.gz in the same directory.
        * doc/en/index.xml, doc/en/Mono.Fuse.xml, doc/en/Mono.Fuse/DirectoryEntry.xml,
          doc/en/Mono.Fuse/FileSystem.xml, 
          doc/en/Mono.Fuse/FileSystemOperationContext.xml, 
          doc/en/Mono.Fuse/OpenedPathInfo.xml: Add documentation.
        * doc/en/Mono.Fuse/FileSystemEntry.xml: Renamed to DirectoryEntry.xml.
        * example/HelloFS/HelloFS.cs: Use DirectoryEntry instead of FileSystemEntry;
          use OpenedPathInfo.OpenAccess instead of OpenedPathInfo.OpenReadOnly.
        * example/RedirectFS/RedirectFS.cs, example/RedirectFS/RedirectFS-FH.cs: Use
          DirectoryEntry instead of FileSystemEntry; 
          s/OnCloseDirectory/OnReleaseDirectory/.
        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: Changes by type:
          - FileSystemOperationContext:
            - Make sealed (this should only be created internally).
            - Constructor is now internal.
          - FileSystemEntry: 
            - Renamed to DirectoryEntry.
            - Renamed Path property to Name.
            - Add argument checking to DirectoryEntry constructor. 
            - Remove implicit conversion to string (as constructor may generate
              exceptions).
          - OpenedPathInfo:
            - Make seaeled (this should only be created internally).
            - Constructor now internal.
            - Remove OpenReadOnly, OpenWriteOnly, OpenReadWrite properties 
            - Add OpenAccess property.
          - FileSystem:
            - Now `abstract'.  There are no abstract methods, but it's pointless 
              to create instances of this type, as it wouldn't do anything.
            - Make constructors protected (to emphasize the above).
            - Rename FileSystemName property to Name.
            - Rename ImmediateRemoval property to ImmediatePathRemoval.
            - Rename DirectIO property to EnableDirectIO.
            - Rename Umask property to DefaultUmask.
            - Add EnableKernelCache property.
            - Rename UserId property to DefaultUserId.
            - Rename GroupId property to DefaultGroupId.
            - Rename EntryTimeout property to PathTimeout.
            - Rename DeletedNameTimeout property to DeletedPathTimeout.
            - Change types of Timeout properties to `double' from `int'; changes
              PathTimeout, DeletedPathTimeout, AttributeTimeout.
            - Rename OnCloseDirectory() method to OnReleaseDirectory() (for 
              consistency with OnReleaseHandle).
            - Rename Exit() method to Stop().
            - Rename parameters of many methods to match the method names -- e.g.
              OnReadSymbolicLink() takes a `link' parameter instead of `path',
              OnOpenDirectory() takes a `directory' parameter instead of `path', etc.

2006-09-12  Jonathan Pryor  <jonpryor@vt.edu>

        * src/Mono.Fuse/Makefile.am: Add FileNameMarshaler to the build.
        * src/Mono.Fuse/Mono.Fuse/FileNameMarshaler.cs: Added; marshals filenames
          with any encoding to/from managed code (from
          Mono.Unix.Native.FileNameMarshaler).
        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: 
          - Use the FileNameMarshaler custom marshaler to manipulate filenames 
            entering/leaving managed code.  This allows manipulation of filenames 
            with non-UTF8 encodings.
          - Reimplement FillEntries().  When mfh_invoke_filler() returns 1, it means
            that the current entry was not inserted, and needs to be inserted during
            the next call.  Previously, if a directory had many files (i.e.
            _OnReadDirectory() was called > 2 times), it would "drop" the file that
            was passed to mfh_invoke_filler() when it returned 1.  Now, when
            mfh_invoke_filler() return 1, we remember this and return the current
            entry a 2nd time so that nothing is lost.

2006-09-11  Jonathan Pryor  <jonpryor@vt.edu>

        * configure.in: Fix test for HAVE_MONO_UNIX_NATIVE_COPY_FUNCS; Add check for
          `mdassembler' and `monodocer' (from monodoc module); create doc/Makefile.
        * Makefile.am: Add `doc' directory to the build.
        * doc/Makefile.am: Added; build the Monodoc documentation.
        * doc/README: Added; short overview for adding docs to monodoc.
        * doc/mono-fuse.source: Added; monodoc source file (where in the tree the
          Mono.Fuse sources should be placed).
        * doc/en/index.xml, doc/en/Mono.Fuse.xml, doc/en/Mono.Fuse/FileSystem.xml,
          doc/en/Mono.Fuse/FileSystemEntry.xml, 
          doc/en/Mono.Fuse/FileSystemOperationContext.xml, 
          doc/en/Mono.Fuse/OpenedPathInfo.xml: Added; API documentation stubs.
        * src/MonoFuseHelper/Makefile.am: Remove automake warning message.

2006-09-11  Jonathan Pryor  <jonpryor@vt.edu>

        * example/HelloFS/HelloFS.cs: Add extended attribute support for the 
          `hello' file.

2006-09-11  Jonathan Pryor  <jonpryor@vt.edu>

        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: 
          - Property renaming: s/Options/FuseOptions/g.
          - Method renaming:
            s/OnSetPathExtendedAttributes/OnSetPathExtendedAttribute/g;
            s/OnGetPathExtendedAttributes/OnGetPathExtendedAttribute/g;
          - Method argument changing:
            s/OnListPathExtendedAttributes(string, byte[], out int)/
              OnListPathExtendedAttributes(string, out string[])/
        * example/HelloFS/HelloFS.cs: s/\.Options/.FuseOptions/g.
        * example/HelloFS/Makefile.am: Add `-debug+' to compile line for
          HelloFS.exe; add Mono.Fuse.dll.mdb for line numbers in stack traces.
        * example/RedirectFS/RedirectFS.cs, example/RedirectFS/RedirectFS-FH.cs:
          Update to latest OnSetPathExtendedAttribute(),
          OnGetPathExtendedAttribute(), OnListPathExtendedAttributes() methods.

2006-09-09  Jonathan Pryor  <jonpryor@vt.edu>

        * src/Mono.Fuse/Mono.Fuse.FileSystem.cs: 
          - Add new public type FileSystemEntry, which provides both a Path string
            and a Mono.Unix.Native.Stat instance that can be passed to FUSE.  The
            Stat instance will _only_ be used if Stat.st_ino is non-zero.
          - Change FileSystemOperationContext to use read-only properties instead of
            fields, as this information can't be changed.  Change ProcessId to `int'
            instead of `long', for consistency with Mono.Posix.
          - Change FileSystem.OnReadDirectory() to use IEnumerable<FileSystemEntry>
            instead of IEnumerable<string>.  This allows sub-classes to (optionally) 
            provide Stat information to FUSE.  (Currently FUSE will only use the 
            st_ino & st_mode fields of the Stat, though I imagine this may be 
            expanded in the future.)
        * src/MonoFuseHelper/mfh.c: Use current field names in
          FileSystemOperationContext.
        * example/HelloFS/HelloFS.cs:
          s/IEnumerable<string>/IEnumerable<FileSystemEntry>/g (migrate to latest
          Mono.Fuse.FileSystem.OnReadDirectory() prototype).
        * example/RedirectFS/RedirectFS.cs, example/RedirectFS/RedirectFS-FH.cs: 
          s/IEnumerable<string>/IEnumerable<FileSystemEntry>/g (migrate to latest
          Mono.Fuse.FileSystem.OnReadDirectory() prototype); Fill in
          FileSystemEntry.Stat for use by FUSE.

2006-09-08  Jonathan Pryor  <jonpryor@vt.edu>

        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: 
          - Redo OnReadDirectory() implementation to use a IEnumerator instead of a
            string[].  The previous approach required reading in the entire
            directory all at once, which would slow things down for large
            directories.  The new approach allows FUSE to invoke _OnReadDirectory()
            multiple times to read from the same enumerator, allowing directory
            entries to be returned in "chunks" instead of all at once.
            Plus, it's damn cool to use a C# iterator to implement 
            OnReadDirectory() (see HelloFS.cs & RedirectFS-FH.cs).
          - Remove check for OnCreateHandle()/OnOpenHandle() & OnReleaseHandle()
            consistency -- this broke the build (HelloFS has OnOpenHandle() but not
            OnReleaseHandle(), and it doesn't need OnReleaseHandle() either).
        * src/MonoFuseHelper/mfh.c: Help implement new OnReadDirectory() interface;
          add mfh_invoke_filler() helper method.
        * example/HelloFS/HelloFS.cs, example/RedirectFS/RedirectFS.cs,
        * example/RedirectFS/RedirectFS-FH.cs: Implement updated OnReadDirectory() 
          interface.  (Using iterators for OnReadDirectory is cool; especially
          check out the new RedirectFS-FH.cs implementation.)

2006-09-07  Jonathan Pryor  <jonpryor@vt.edu>

        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: 
          - Add initial validation for method overriding -- some methods come in 
            sets.  For example, if OnOpenDirectory is overridden, OnCloseDirectory() 
            should be as well (to ensure that any handles are closed if desired).  
            Perform such sanity checking.  
          - Correct GetOperations() so that the methods it finds via Reflection 
            actually override the methods it thinks are being overridden.

2006-09-07  Jonathan Pryor  <jonpryor@vt.edu>

        * example/HelloFS/HelloFS.cs: Update help text to show FUSE options.
        * example/RedirectFS/RedirectFS.cs, example/RedirectFS/RedirectFS-FH.cs: 
          Update help text to show FUSE options.  Alter command line arguments to be
          "program mountpoint basedir" (instead of "program basedir mountpoint") so
          that it matches the FUSE-generated help text.
        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: Add ShowFuseHelp static method to
          display FUSE help options to stderr.
        * src/MonoFuseHelper/mfh.c: Add mfh_show_fuse_help() helper.

2006-09-07  Jonathan Pryor  <jonpryor@vt.edu>

        * configure.in: Generate Makefile for new directory example/RedirectFS.
        * src/Mono.Fuse/MapAttribute.cs: Update to latest mono-tools version.
        * src/Mono.Fuse/create-native-map.exe: Update to latest mono-tools version
          (removes support for MapAttribute.NativeSymbolPrefix, as this is no longer
          useful since MonoPosixHelper doesn't have a public API).
        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: 
          - Rename OpenedPathInfo.FileHandle to OpenedPathInfo.Handle (as the 
            handle can be used by both files & directories).  
          - Change ReadSymbolicLinkCb/OnReadSymbolicLink() as Mono can't pass a 
            StringBuilder from native to managed code (it's a managed->native 
            construct), so use a workable alternative.  The new
            ``OnReadSymbolicLink(string path, out string target)'' prototype is also
            simpler for subclasses.
          - Native code can't pass an OpenedPathInfo into managed code via the
            delegates, as the delegates need to modify OpenedPathInfo.Handle and
            have this change propogate back to native code.  Ideally, this would be 
            fixed by making the delegates have an "[In, Out] OpenedPathInfo info"
            parameter (instead of the current "IntPtr" + manual marshal approach),
            but this causes Mono to die -- bugzilla 79298.  This is now fixed, but
            only in HEAD, so we need the ugly workaround for 1.1.13.x support.
          - Add support for parsing the `-f' FUSE argument (use foreground
            operation; ignored, as we can only support foreground operation).
          - Don't throw Exception if MountPoint can't be mounted or mfh_fuse_new
            fails, throw a NotSupportedException.  (Perhaps I should use a 
            different type?)
          - Remove some Console.WriteLine()s.
        * src/MonoFuseHelper/Makefile.am: $(buildlibdir)/libMonoFuseHelper.so should
          be updated when its sources are updated.
        * src/MonoFuseHelper/mfh.c: 
          - Add Mono_Fuse_FromOpenedPathInfo and Mono_Fuse_ToOpenedPathInfo (for 
            struct fuse_file_info conversion), so it can be invoked by Mono.Fuse.dll.  
          - Remove support for fuse_file_info->OpenedPathInfo conversion from 
            MonoFuseHelper, this must now be done in managed code (see #79298).
          - mfh_readdir: Check return value of `filler' method to check for errors.
        * example/Makefile.am: Add new directory RedirectFS.
        * example/RedirectFS/Makefile.am: Added; build RedirectFS programs.
        * example/RedirectFS/RedirectFS.cs: Added; FS which forwards ("redirects") 
          all FileSystem operations to the underlying filesystem.
        * example/RedirectFS/redirectfs.in: Added; runs RedirectFS.exe.
          Syntax: redirectfs BASEDIR MOUNT-POINT
          e.g. ./redirects /tmp t
        * example/RedirectFS/RedirectFS-FH.cs: Added; FS which forwards ("redirects") 
          all FileSystem operations to the underlying filesystem.
          This uses OpenedPathInfo.Handle to track file & directory handles instead
          of re-opening files & directories all the time (compare to RedirectFS.cs).
        * example/RedirectFS/redirectfs-fh.in: Added; runs RedirectFS-FH.exe.
          Syntax: redirectfs-fh BASEDIR MOUNT-POINT
          e.g. ./redirects-fh /tmp t

2006-09-05  Jonathan Pryor  <jonpryor@vt.edu>

        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: Mass API renaming for consistency.
          - s/OpenedFileInfo/OpenedPathInfo/g (for consistency with method naming
            convention, below, as it's used with both files & directories).
          - Remove FileSystemOperationContext.PrivateData (it's used internally).
          - Rename properties: s/EnableDebugOutput/EnableFuseDebugOutput/.
          - Add MultiThreaded property (default true), remove StartMultithreaded()
            method.  Start() checks the MultiThreaded property and calls the
            appropriate FUSE method for (non-) multithreaded use.
          - Make OpenedPathInfo parameter 2nd parameter instead of the (variable) 
            last parameter (so that `out' parameters can consistently be the last 
            parameter and paramater placement is consistent).
          - Change method names for consistency, ease understanding, and help the 
            impending documentation effort to include one of the following words:
            - Directory: Method deals with directories and not files.
              - OnCreateDirectory(), OnRemoveDirectory(), OnOpenDirectory(),
                OnReadDirectory(), OnCloseDirectory(), OnSynchronizeDirectory().
            - File: Method deals with files and not directories.
              - OnCreateSpecialFile(), OnRemoveFile(), OnTruncateFile().
            - FileSystem: Method deals with the file system as a whole.
              - OnGetFileSystemStatus().
            - Link: Method deals with actual links (symbolic & hard links)
              - OnCreateHardLink(), OnCreateSymbolicLink(), OnReadSymbolicLink().
            - Handle: Method deals with a "handle" to an opened file.
              - OnCreateHandle(), OnOpenHandle(), OnReadHandle(), OnWriteHandle(),
                OnFlushHandle(), OnReleaseHandle(), OnSynchronizeHandle(),
                OnTruncateHandle(), OnGetHandleStatus().
            - Path: Method works on files and directories.
              - OnAccessPath(), OnGetPathStatus(), OnRenamePath(), 
                OnChangePathPermissions(), OnChangePathOwner(), OnChangePathTimes(),
                OnGetPathExtendedAttributes(), OnListPathExtendedAttributes(),
                OnSetPathExtendedAttributes(), OnRemovePathExtendedAttribute().
        * src/MonoFuseHelper/mfh.c: Deal with s/OpenedFileInfo/OpenedPathInfo/g.
        * example/HelloFS/HelloFS.cs: Deal with FileSystem method name changes.

2006-09-03  Jonathan Pryor  <jonpryor@vt.edu>

        * COPYING: Specify license as MIT/X11.
        * example/HelloFS/HelloFS.cs, src/Mono.Fuse/FileSystem.cs,
          src/MonoFuseHelper/mfh.c, src/MonoFuseHelper/mph.c: Add license.

2006-09-01  Jonathan Pryor  <jonpryor@vt.edu>

        * README: Add note about using fusermount to unmount FUSE filesystems.

2006-09-01  Jonathan Pryor  <jonpryor@vt.edu>

        * configure.in: Set required Mono version is 1.1.13 (maybe could be 
          lowered?  No idea); add check for presence of Mono_Posix_ToStat in
          MonoPosixHelper -- if found, then we should have the new
          Mono.Unix.Native.NativeConvert.Copy methods, otherwise we need to roll our
          own equivalents.  This allows portability to "down-level" mono versions.
        * src/Mono.Fuse/create-native-map.exe: Update; this version doesn't skip
          prototypes for structs within a different assembly, it generates struct
          declarations for all structs referenced (needed to get struct decls for
          Stat, Statvfs, etc.)
        * src/Mono.Fuse/Makefile.am: Add --rename-member arguments to
          create-native-map call so Stat can be used properly.
        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: Only use NativeConvert.Copy methods
          if HAVE_MONO_UNIX_NATIVE_COPY_FUNCS is defined, otherwise use the
          MonoFuseHelper internal methods.
        * src/MonoFuseHelper/Makefile.am: Add mph.c to the build.
        * src/MonoFuseHelper/mph.c: Added; structure copy functions from
          MonoPosixHelper for copying Stat, Statvfs, & Utimbuf between managed &
          native code.

2006-09-01  Jonathan Pryor  <jonpryor@vt.edu>

        * README: Add comments about hellofs command-line arguments, capturing trace
          messages, and FUSE performance timing.
        * example/HelloFS/hellofs.in: Modify setting of LD_LIBRARY_PATH so that it
          retains the existing $LD_LIBRARY_PATH value.  Remove -odebug parameter.
          If you want "full" trace output, set MONO_TRACE_LISTENER for the managed
          trace output, and add -odebug for FUSE trace output, e.g.
            MONO_TRACE_LISTENER=Console.Out:### ./hellofs -odebug mount-point

2006-08-31  Jonathan Pryor  <jonpryor@vt.edu>

        * src/Mono.Fuse/Makefile.am: Remove dependency on external
          create-native-map.exe and a public Mono.Unix.Native.MapAttribute (as the
          latter will no longer be public).  Add `update-map-source' target which
          uses pkg-config to copy the "reference" MapAttribute.cs & 
          create-native-map.exe programs from their installed locations.
        * src/Mono.Fuse/create-native-map.exe, src/Mono.Fuse/MapAttribute.cs: Added;
          cached versions of create-native-map.exe & MapAttribute.cs as provided by
          pkg-config and the create-native-map.pc file.

2006-08-31  Jonathan Pryor  <jonpryor@vt.edu>

        * configure.in: Remove use of mono-posix-helper.pc, and use glib-2.0
          instead.
        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: Change the delegates so that they
          use only native types, not managed types.  Change all of the _On*
          methods to do the native->managed conversion for parameters and the return
          value (depends upon addition of Mono.Unix.Native.NativConvert.Copy()
          methods to perform structure conversion).  Make OpenedFileInfo.flags
          internal, so that FileSystem can convert the value when necessary, 
          as MonoFuseHelper can't do the enum convert.
        * src/MonoFuseHelper/Makefile.am: Remove use of MPH, and add GLIB flags.
        * src/MonoFuseHelper/mfh.c: Remove use of MonoPosixHelper functions (as
          Mono.Fuse.FileSystem does the type conversions now).  Don't copy-out
          OpenedFileInfo.flags, as this enum must be converted in managed, and I
          don't see much point in having another conversion on exit when I can just
          skip the copy-out (thus preserving the original value).

2006-08-31  Jonathan Pryor  <jonpryor@vt.edu>

        * example/HelloFS/HelloFS.cs: Make creation of data_im_str thread-safe, so
          that it's only created once and reading threads don't see an intermediate
          state.

2006-08-28  Jonathan Pryor  <jonpryor@vt.edu>

        * example/HelloFS/HelloFS.cs: Rename the ``data'' file to ``data.im'' (this
          is a text file with 100MB of data), and replace ``data'' with a file which
          computes its content at runtime (a time/space tradeoff).  The ``data.im''
          file isn't available by default; pass --data.im-in-memory to make it
          available (note that this file will be created in-memory the first time
          its content is accessed).  Add command-line argument parsing.  Use
          Trace.WriteLine instead of Console.WriteLine.
        * lib/pkgconfig/mono-fuse.pc.in: Use @libdir@ instead of
          ${prefix}/@reloc_libdir@.  I'm not sure what @reloc_libdir@ is supposed to
          be, and it isn't currently expanded anyway.
        * src/Mono.Fuse/Makefile.am: Add the -d:TRACE define.  Add --public-macro
          and --impl-header to the create-native-map call (create-native-map no
          longer supports MapHeaderAttribute).
        * src/Mono.Fuse/Mono.Fuse/FileSystem.cs: Remove use of
          Mono.Unix.Native.MapHeaderAttribute (use create-native-map arguments
          instead).  Add public argument parsing support (so that HelloFS can have
          its own command-line args in addition to the FUSE args).  Use Trace
          instead of Console for trace messages.  Add a `catch(Exception)' handler
          so we can trace exception messages (helps debugging).

2006-08-25  Jonathan Pryor  <jonpryor@vt.edu>

        * src/MonoFuseHelper/mfh.c: Remove debug printf statements.

2006-08-24  Jonathan Pryor  <jonpryor@vt.edu>

        * Makefile.am: Build the `lib' directory.
        * lib/mono-fuse/Makefile.am: Don't install anything;
          src/Mono.Fuse/Makefile.am already handles Mono.Fuse.dll installation.

2006-08-24  Jonathan Pryor  <jonpryor@vt.edu>

        * configure.in: Don't forget to generate lib/mono-fuse/Makefile!

2006-08-24  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/Makefile.am: Build the mono-fuse directory as well
        * lib/mono-fuse/Makefile.am: Added; installs Mono.Fuse.dll.

2006-08-24  Jonathan Pryor  <jonpryor@vt.edu>

        * NEWS: Added
        * configure.in: Use AM_PROG_LIBTOOL, not AC_PROG_LIBTOOL, to satisfy
          autogen.sh's checking.

2006-08-24  Jonathan Pryor  <jonpryor@vt.edu>

        * AUTHORS, COPYING, README: Added (for autoconf)
        * autogen.sh, configure.in, Makefile.am, example/Makefile.am,
          example/HelloFS/Makefile.am, lib/Makefile.am, lib/pkgconfig/Makefile.am,
          src/Makefile.am, src/Mono.Fuse/Makefile.am,
          src/MonoFuseHelper/Makefile.am: Added (auto* build system files).
        * lib/map.c, lib/map.h: Removed (generated by the build; no need to keep
          these under version control).
        * lib/mfh.c: Renamed to src/MonoFuseHelper/mfh.c
        * lib/mph.c: Removed.  (Functions added to MonoPosixHelper library.)
        * lib/mono-fuse/HelloFS.cs: Renamed to example/HelloFS/HelloFS.cs
        * example/HelloFS/hellofs.in: Added; template for `hellofs' program.
        * lib/mono-fuse/MakeMap.Test.cs, lib/mono-fuse/make-map.cs,
          lib/mono-fuse/test.c.ref, lib/mono-fuse/test.cs.ref,
          lib/mono-fuse/test.h.ref, lib/mono-fuse/test.xml.ref: Removed.
          make-map.exe renamed to create-native-map.exe, moved into
          mcs svn module under mcs/tools/create-native-map.
        * lib/pkgconfig/mono-fuse.pc.in: Remove Requires line (managed code doesn't
          depend on glib-2.0 or mono), add Mono.Posix.dll to Libs: line.
        * lib/mono-fuse/FileSystem.cs: renamed to
          src/Mono.Fuse/Mono.Fuse/FileSystem.cs

2006-08-21  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/map.c, lib/map.h: Flush (current make-map output for Mono.Fuse.dll).
        * lib/mono-fuse/MakeMap.Test.cs: Add additional tests for copying nested
          structures.
        * lib/mono-fuse/make-map.cs: Add support for copying nested structures.
        * lib/mono-fuse/test.c.ref, lib/mono-fuse/test.h.ref: Flush.

2006-08-21  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/MakeMap.Test.cs: Add enum (to test enum conversion code),
          class w/o namespace (generated NRE within make-map).
        * lib/mono-fuse/make-map.cs:
          - s/ExportPrefix/NativeSymbolPrefix/g (current Mono.Posix.dll naming);
          - check for t.Namespace==null before looking using
            Configuration.NamespaceRenames (Dictionary`2 doesn't like null keys);
          - HeaderFileGenerator needs to know about member renames (so it uses the
            renamed member in conversion code);
          - Clean up enumeration generation for readablility.
          - Remove dependency on <mono/posix/limits.h> (include macros within file
            with a _cnm prefix).
        * lib/mono-fuse/test.c.ref, lib/mono-fuse/test.cs.ref,
          lib/mono-fuse/test.h.ref, lib/mono-fuse/test.xml.ref: Flush.

2006-08-21  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/make-map.cs: Remove debug statements.

2006-08-21  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/Makefile: Add --library when generating ../map.c, ../map.h.
        * lib/mono-fuse/make-map.cs: Use Mono.Unix.Native.MapAttribute.ExportPrefix
          to get the namespace of a member, in addition to --rename-namespace.  This
          is necessary for easier cross-assembly namespace renames -- Mono.Posix.dll
          uses a Mono_Posix C namespace, but the default algorithm would be a
          Mono_Unix_Native prefix.  Thus, two choices for correct behavior: use
          MapAttribute.ExportPrefix within Mono.Posix.dll, allowing all consumers to
          get the correct prefix By Default (It Just Works), or require that all
          consumers add --rename-namespace arguments (more clunky, more difficult to
          diagnose, not as "version proof").

2006-08-20  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/make-map.cs: Add new arguments: --autoconf-member,
          --exclude-native-symbol, --library, --rename-member, --rename-namespace.
          These are to remove the necessity of
          Mono.Unix.Native.MapAttribute.Optional (--autoconf-member) and
          MapAttribute.ExportPrefix (--rename-namespace), while adding much needed
          support for the DllImport libraries to generate prototypes for
          (--library), symbol exclusion (to remove Mono_Posix_Stdlib_snprintf;
          --exclude-native-symbol), and member renaming (curse you glibc making
          st_atime a macro! See --rename-member).
        * lib/mono-fuse/Makefile: Use new make-map.exe arguments to test their
          behavior when building test.c/test.h.
        * lib/mono-fuse/MakeMap.Test.cs: Add types/members to test new make-map.cs
          arguments.
        * lib/mono-fuse/test.c.ref, lib/mono-fuse/test.h.ref: Flush (new expected

2006-08-20  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/map.c, lib/map.h: Flush.
        * lib/mono-fuse/FileSystem.cs: Use Mono.Unix.Native.MapHeaderAttribute
          instead of Mono.Unix.Native.HeaderAttribute.

2006-08-17  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/make-map.cs: Add a newline after the implementation macro section.

2006-08-17  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/MakeMap.Test.cs: Use of
          MapHeaderAttribute.ImplementationMacro and
          MapHeaderAttribute.ImplementationIncludeFile.
        * lib/mono-fuse/make-map.cs: Add support for
          MapHeaderAttribute.Implementation* properties within the .c file.
        * lib/mono-fuse/test.c.ref, lib/mono-fuse/test.h.ref: Sync with current
          make-map.exe output.

2006-08-16  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/map.c, lib.map.h: Flush (new formatting due to make-map changes
        * lib/mono-fuse/MakeMap.Test.cs: Use MapHeaderAttribute; remove
          [Map("struct qux")] from Qux (can't compile this).
        * lib/mono-fuse/Makefile: Improve dependencies to ensure things are rebuilt
          when needed; add libtest.so target (to make sure test.c is valid C).
        * lib/mono-fuse/make-map.cs: Add support for Mono.Unix.Native.MapHeaderAttribute;
          formatting improvements.
        * lib/mono-fuse/test.c.ref, lib/mono-fuse/test.h.ref: Flush.

2006-08-14  Jonathan Pryor  <jonpryor@vt.edu>

        API Cleanup -- return values should only be for reporting errors, not for
        reporting additional information (e.g. read(2) & write(2) overload the return
        value; we don't want to do that, as it's inconsistent).

        * lib/map.h: Sync with mono-fuse/FileSystem.cs
        * lib/mfh.c (mfh_read, mfh_write, mfh_setxattr, mfh_listxattr): Add
          additional argument to get number bytes read/written from buffer.
        * lib/mono-fuse/FileSystem.cs: Change ReadCb(), WriteCb(),
          GetExtendedAttributesCb(), ListExtendedAttributesCb() so that return type
          is Errno (consistency) and an extra `out' parameter is added to hold the
          number of bytes read/written from the buffer.
        * lib/mono-fuse/HelloFS.cs: Sync with latest API.

2006-08-14  Jonathan Pryor  <jonpryor@vt.edu>

        Re-enable bounds checking in struct/class conversion functions; API cleanup.

        * lib/map.h: Sync with FileSystem.cs
        * lib/mph.c: Add more conversion functions.
        * lib/mfh.c: Fully implement all forwarding functions; remove some warnings;
          fix segfault in _free_argv().
        * lib/mono-fuse/FileSystem.cs: Use properties, not public fields; add
          OpenReadOnly, OpenWriteOnly, OpenReadWrite helpers (to remove ugly
          ((OpenFlags) ((int) fi.Flags & 3)) == OpenFlags.O_RDONLY sillyness).  Stat
          and Statvfs are `out', not `ref'.  Correct marshaling of byte[]s within
          delegates, as some are `const' and some aren't (so no need to copy-in or
          copy-out if not appropriate).  Use mfh_fuse_ prefix instead of mfh_.
        * lib/mono-fuse/HelloFS.cs: Use latest API.

2006-08-09  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/FileSystem.cs:
          - Remove DestroyCb() delegate, OnDestroy() method.  It's not needed, as
            FileSystem.Dispose() cleans up opsp, and OnDestroy() was only called
            from fuse_destroy(), which is also invoked from Dispose().
          - Add wrappers for all protected virtual methods to act as a "backstop"
            for exceptions.  We cannot allow exceptions to enter native code from
            managed code (as this would likely kill the process, with Mono's
            exception handler "cleaning up" the native callstack, which can't make
            FUSE happy).  If an exception is emitted, EIO is returned to FUSE.
            These methods can also be used to remove unnecessary parameters, such as
            the `WriteCb' `size' parameter (which becomes buf.Length).
        * lib/mono-fuse/HelloFS.cs: Add a `data' file, which contains 96MB of plain
          text data (useful for timing analysis to see the overhead from
          various forms of marshaling).  Update to use new OnRead() parameters.

2006-08-08  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/FileSystem.cs: Correct FUSE argument parsing (bad regex used).  
          GetFuseArgs() needs to prepend the executable name for proper FUSE operation.  
          We're now able to start an app and pass `-d' to get FUSE debugging messages.

2006-08-08  Jonathan Pryor  <jonpryor@vt.edu>

        Flush.

2006-08-08  Jonathan Pryor  <jonpryor@vt.edu>

        Get things (somewhat) working -- we're now able to read a file contents
        through FUSE, but we're not able to opendir/readdir. :-/

        * lib/Makefile: Add -g, and libMonoFuseHelper.so should link to
          libMonoPosixHelper.so.
        * lib/map.h: Synchronize with FileSystem.cs
        * lib/mfh.c: Disable some functions so that I don't need to write as many
          stub functions in lib/mph.c; fix mfh_read, mfh_write (return value
          nonsense; this needs to be fixed later).
        * lib/mono-fuse/FileSystem.cs: Fix prototypes of ReadCb and WriteCb
          delegates, as we need [MarshalAs] declarations on the byte[] arrays so
          that the marshaler knows what to do with them.  Update all byte[] usage
          within delegates.  Mono doesn't like ``[Out] out string[] paths'' (as used
          in ReadDirectoryCb()), so replace with `out IntPtr paths' and manually
          marshal the string[].
        * lib/mono-fuse/Makefile: Use global Mono.Posix.dll file, not local copy;
        * add `hellofs' target to run HelloFS.exe with LD_LIBRARY_PATH set.
        * lib/mono-fuse/HelloFS.cs: Add C.WL helpers (for tracing); fix OnOpen() so
          that we can read a file (it's O_RDONLY check was wrong); print out parsed
          command line arguments (showing that FileSystem.Parse() is broken --
          that's next to fix).
        * lib/mono-fuse/make-map.cs: Don't insert types into `structs' table when a
          type with [Map] is found, use RecordTypes() instead (so that we record all
          nested types as well).  Warnings should be prefixed with "warning: ".
          Don't always generate Namespace_ToType/Namespace_FromType declarations,
          but only if MapAttribute.NativeType was specified.  Allows for [Map] on
          structures that need to be exported from an assembly but aren't used
          within shared methods.
        * lib/mph.c: Let this compile.

2006-08-05  Jonathan Pryor  <jonpryor@vt.edu>

        Include all correct .o files into libMonoFuseHelper.so

        Use correct return types in fuse_* methods.

2006-08-05  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/FileSystem.cs: Remove [Map] from Mono.Fuse.Operations, as it 
          cannot be assigned to `struct fuse_operations'.  Add necessary DllImport's.
        * lib/mono-fuse/HelloFS.cs: Fix to match new OnReadDirectory() prototype.

2006-08-05  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mfh.c: Add implementation of mfh_readdir().

2006-08-05  Jonathan Pryor  <jonpryor@vt.edu>

        * lib/mono-fuse/FileSystem.cs: Add necessary Header attribute so that map.c/map.h are
          generated sanely.

2006-08-05  Jonathan Pryor  <jonpryor@vt.edu>

        Add unit test for make-map.exe, check & check-update targets to Makefile, and
        expected output for unit tests.

2006-08-02  Jonathan Pryor  <jonpryor@vt.edu>

        Provide implementations for most of the mfh_* functions.
        Remove backup files.

2006-08-02  Jonathan Pryor  <jonpryor@vt.edu>

        Build libMonoFuseHelper.so.

2006-08-01  Jonathan Pryor  <jonpryor@vt.edu>

        Add files for libMonoFuseHelper.so and Makefile to build libMonoFuseHelper.so.

2006-08-01  Jonathan Pryor  <jonpryor@vt.edu>

        Current Mono.Fuse managed code implementation.

2006-07-22  Jonathan Pryor  <jonpryor@vt.edu>

        Initial Import.

Generated by dwww version 1.15 on Wed Jun 26 20:37:54 CEST 2024.