From 9bc1e52a88c7723240bf00f63457cd47d0590a1c Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 8 Oct 1999 18:11:53 +0000 Subject: Base versions cut from old document. --- doc/filesystem/init.t | 28 +++++++++++++++++++++ doc/filesystem/mounting.t | 63 ++++++++++++++++++++++++++++++++++++++++++++++ doc/filesystem/path_eval.t | 17 +++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 doc/filesystem/init.t create mode 100644 doc/filesystem/mounting.t create mode 100644 doc/filesystem/path_eval.t diff --git a/doc/filesystem/init.t b/doc/filesystem/init.t new file mode 100644 index 0000000000..e2a6f063d6 --- /dev/null +++ b/doc/filesystem/init.t @@ -0,0 +1,28 @@ + + +System Initialization + + + After the RTEMS initialization is performed, the application's initialization will +be performed. Part of initialization is a call to rtems_filesystem_initialize(). This routine +will mount the `In Memory File System' as the base file system. + +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 + 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. + + + diff --git a/doc/filesystem/path_eval.t b/doc/filesystem/path_eval.t new file mode 100644 index 0000000000..4868ea0dbb --- /dev/null +++ b/doc/filesystem/path_eval.t @@ -0,0 +1,17 @@ +Pathname Evaluation + +? Include graphic of the path evaluation process with Jennifer's explanations ???XXX +? There are two pathname evaluation routines. The handler patheval() is called to find, +verify privlages on and return information on a node that exists. The handler +evalformake() is called to find, verify permissions, and return information on a node +that is to become a parent. Additionally, evalformake() returns a pointer to the start +of the name of the new node to be created. +? Pathname evaluation is specific to a file system +? Mechanics of crossing a mount point during the evaluation of a path name +? Role of rtems_filesystem_location_info_t structure +? Finding file system node information +? Finding file system node handlers +? Finding file system node operations table +? Finding mount table entry for the file system that this node is part of + + -- cgit v1.2.3