[comp.sys.amiga] Disk environment vector, MakeDosNode

BRENNER_%DULRUU51.BITNET@cunyvm.cuny.edu (11/08/88)

My questions to the Amiga auditorium:

- Where are those new mountlist entries "MaxTransfer, dostype, etc."
  located in the disk environment vector (I want to supply the parameters
  via MakeDosNode()) and what exactly do they mean? The last one that is
  documented is "DE_BufMemType".
- How do I tell the system to use another filesystem like FFS (not in
  the mountlist but with AddDosNode())? Should I patch the structure
  returned by MakeDosNode()?

-Martin

  @ @    ----------------------------------------------------------------------
===V===    "This message still Beta testing - don't blame me for bugs!" //
  !^!      -Martin   (BRENNER_M@DULRUU51)    Ulm/W.Germany            \X/AMIGA
  ^ ^    ----------------------------------------------------------------------

steveb@cbmvax.UUCP (Steve Beats) (11/08/88)

In article <5234@louie.udel.EDU> BRENNER_%DULRUU51.BITNET@cunyvm.cuny.edu writes:
>My questions to the Amiga auditorium:
>
>- Where are those new mountlist entries "MaxTransfer, dostype, etc."
>  located in the disk environment vector (I want to supply the parameters
>  via MakeDosNode()) and what exactly do they mean? The last one that is
>  documented is "DE_BufMemType".

The entries after de_BufMemType are :-

	de_MaxTransfer;		/* Maximum BYTES to xfer in one IORequest */
	de_Mask;		/* Mask to apply to destination address.  It's
				   VERY important to always clear bit 0.
				   Normally this would be 0xfffffe */
	de_BootPri;		/* Normally 0 or -5 for hard drives */
	de_DosType;		/* for a filing system to look at.  The ROM
				   filing system expects 0x444f5300 while
				   FFS expects 0x444f5301 */

>- How do I tell the system to use another filesystem like FFS (not in
>  the mountlist but with AddDosNode())? Should I patch the structure
>  returned by MakeDosNode()?
>
Yes, patch the returned DosNode.  You can either stick the name of the file
system you want loaded into dn_Handler (if it's soft loaded) or you can 
LoadSeg the filing system yourself and stick the returned pointer into
dn_Segment.  I prefer the latter method since you can share filing system
code segments between partitions using this method.

	Steve

lphillips@lpami.van-bc.UUCP (Larry Phillips) (11/14/88)

> Where are those new mountlist entries "MaxTransfer, dostype, etc."
> located in the disk environment vector (I want to supply the parameters
> via MakeDosNode()) and what exactly do they mean? The last one that is
> documented is "DE_BufMemType".

 struct DosEnvec {
    ULONG de_TableSize;    /* check this for size of this table */
    ULONG de_SizeBlock;
    ULONG de_SecOrg;
    ULONG de_Surfaces;
    ULONG de_SectorPerBlock;
    ULONG de_BlocksPerTrack;
    ULONG de_Reserved;
    ULONG de_PreAlloc;
    ULONG de_Interleave;
    ULONG de_LowCyl;
    ULONG de_HighCyl;
    ULONG de_NumBuffers;
    ULONG de_BufMemType;
    ULONG de_MaxTransfer;
    ULONG de_Mask;
    LONG de_BootPri;
    ULONG de_DosType;
 };

  As for what they mean, MaxTransfer tells the file system how large a
transfer can be, for those drivers that do not handle transfer larger than
the controller limit. Mask tells the driver where it can transfer to/from
with DMA. BootPri sets the boot priority of a device, and DOSType is
old or new file system.

> How do I tell the system to use another filesystem like FFS (not in
> the mountlist but with AddDosNode())? Should I patch the structure
> returned by MakeDosNode()?

Wish I could help you with this one.

-larry

--
"Intelligent CPU?  I thought you said Intel CPU!" 
        -Anonymous IBM designer-
+----------------------------------------------------------------+ 
|   //   Larry Phillips                                          |
| \X/    lpami.wimsey.bc.ca!lphillips or van-bc!lpami!lphillips  |
|        COMPUSERVE: 76703,4322                                  |
+----------------------------------------------------------------+