When a filing system other than the ROM filing system is to be used, the
following steps take place.
1. First, open filesystem.resource in preparation for finding the
filesystem segment we want. If filesystem.resource doesn't exist
then create it and add it via AddResource(). Under 2.0 the resource
is created by the system early on in the initialization sequence.
Under pre-V36 Kickstart, it is the responsibility of the first RDB
driver to create it.
2. Scan filesystem.resource looking for a filesystem that matches the
DosType and version that we want. If it exists go to step 4.
3. Since the driver couldn't find the filesystem it needed, it will have
to load it from the RDB area. The list of FileSysHeaderBlocks
(pointed to by the "RDSK" block) is scanned for a filesystem of the
required DosType and version. If none is found then the driver will
give up and abort the mounting of the partition. If the required
filesystem is found, then it is LoadSeg()'ed from the "LSEG" blocks
and added as a new entry to the filesystem.resource.
4. The SegList pointer of the found or loaded filesystem is held in the
FileSysEntry structure (which is basically an environment vector for
this filing system). Using the patch flags, the driver now patches
the newly created environment vector (pointed to by the new DosNode)
using the values in the FileSysEntry being used. This ensures that
the partition will have the correct filing system set up with the
correct mount variables using a shared SegList.
The eb_Mountlist will now be set up with prioritized bootnodes and maybe
some non-bootable, but mounted partitions. The system bootstrap will now
take over.