blob: 65c4da69951c423597bec7535f903c622e657893 (plain
Mounting the base file system consists of the following:
? Initialization of mount table chain control structure
? Allocation of a -jnode- structure that will server as the root node of the `In Memory
? Initialization of the allocated -jnode- with the appropriate OPS, directory handlers
and pathconf limits and options.
? Allocation of a memory region for file system specific global management variables
? Creation of first mount table entry for the base file system
? Initialization of the first mount table chain entry to indicate that the mount point is
NULL and the mounted file system is the base file system
After the base file system has been mounted, the following operations are performed
under its directory structure:
? Creation of the /dev directory
? Registration of devices under /dev directory
Mounting and Unmounting File Systems
? Characteristics of a Mount Point
? The mount point must be a directory. It may have files and other directories under
it. These files and directories will be hidden when the file system is mounted.
? The task must have read/write/execute permissions to the mount point or the
mount attempt will be rejected.
? Only one file system can be mounted to a single mount point.
? The Root of the mountable file system will be referenced by the name of the mount
point after the mount is complete.
? Mount table chain
? Content of the mount table chain entry
* When someone adds a mounted filesystem on a real device,
* this will need to be used.
* The best option long term for this is probably an open file descriptor.
? Adding entries to the chain during mount()
When a file system is mounted, its presence and location in the file system
hierarchy is recorded in a dynamic list structure known as a chain. A unique
rtems_filesystem_mount_table_entry_tt structure is logged for each file system that is
mounted. This includes the base file system.
? Removing entries from the chain during unmount()
When a file system is dismounted its entry in the mount table chain is extracted
and the memory for this entry is freed.