summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-10-08 18:11:53 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-10-08 18:11:53 +0000
commit9bc1e52a88c7723240bf00f63457cd47d0590a1c (patch)
tree0d5937d29bd612e646a381897aab86feaf67d50b
parentFinished initial conversion to texinfo. (diff)
downloadrtems-9bc1e52a88c7723240bf00f63457cd47d0590a1c.tar.bz2
Base versions cut from old document.
-rw-r--r--doc/filesystem/init.t28
-rw-r--r--doc/filesystem/mounting.t63
-rw-r--r--doc/filesystem/path_eval.t17
3 files changed, 108 insertions, 0 deletions
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
+
+