Hi Bart,

> Yes, that has been in the kernel since the initial implementation by
> Ron Cemer. It used to work on fnodes but now updates the SFTs.

> These routines (mainly merge_file_changes() in fatfs.c) could be moved
> to share.c if the hooks from RBIL table 01636 were implemented.

Given the number of hooks, some of which are not even documented,
I would say that the current implementation of SHARE is smoother.

This "format of share exe hooks" table about MS SHARE lists:

- a routine of unknown purpose, probably not called

- something called on open and something called on close

- routines called by DOS when int 21.5d02/03/04 are requested
  (so share implements those close-all-matching things for dos)

- routines to lock/unlock regions and check for locking

- a get open file list access thing
- something possibly about updating FCB from SFT and knowing clusters
- a routine to "close file if duplicate for process"
- something to close the most recently opened files?
- a routine to update directory info from SFT entries (size, time)

Most of those MS SHARE hooks use DOS SS and DS and manipulate
kernel data structures instead of having normal call parameters.

Certainly not a nice API either, compared to FreeDOS SHARE
which uses custom extensions to the int 2f SHARE API for
open, close, check, lock and unlock. Note that I do think
it might be nice to support int 21.5d02/03/04, but you can
also put that bit into the kernel instead of into SHARE.

> share exe as part of the kernel is of course a trade-off: it's natural
> for an OS, but for DOS you'd like the base kernel small and only
> include things that most people use (and most people don't need
> SHARE).

Good question - what apart from Windows uses SHARE? Maybe MSCLIENT?
I also wonder how big, roughly, a kernel built-in SHARE would be.

Eric


------------------------------------------------------------------------------
_______________________________________________
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to