diff options
Diffstat (limited to 'doc/filesystem/mounting.t')
-rw-r--r-- | doc/filesystem/mounting.t | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/doc/filesystem/mounting.t b/doc/filesystem/mounting.t new file mode 100644 index 0000000000..65c4da6995 --- /dev/null +++ b/doc/filesystem/mounting.t @@ -0,0 +1,63 @@ +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 +File System' +? 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 + +struct rtems_filesystem_mount_table_entry_tt +{ + Chain_Node Node; + rtems_filesystem_location_info_t mt_point_node; + rtems_filesystem_location_info_t mt_fs_root; + int options; + void *fs_info; + + rtems_filesystem_limits_and_options_t pathconf_limits_and_options; + + /* + * 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. + */ + char *dev; +}; + +? 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. + + + |