summaryrefslogtreecommitdiffstats
path: root/filesystem/pathname_eval.rst
diff options
context:
space:
mode:
Diffstat (limited to 'filesystem/pathname_eval.rst')
-rw-r--r--filesystem/pathname_eval.rst112
1 files changed, 55 insertions, 57 deletions
diff --git a/filesystem/pathname_eval.rst b/filesystem/pathname_eval.rst
index a7d92c2..4813f86 100644
--- a/filesystem/pathname_eval.rst
+++ b/filesystem/pathname_eval.rst
@@ -1,40 +1,44 @@
.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+.. COMMENT: COPYRIGHT (c) 1988-2002.
+.. COMMENT: On-Line Applications Research Corporation (OAR).
+.. COMMENT: All rights reserved.
+
Pathname Evaluation
###################
-This chapter describes the pathname evaluation process for the
-RTEMS Filesystem Infrastructure.
-.. code:: c
+This chapter describes the pathname evaluation process for the RTEMS Filesystem
+Infrastructure.
+
+.. code-block:: shell
XXX Include graphic of the path evaluation process
Pathname Evaluation Handlers
============================
-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.
+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 filesystem.
-Each filesystem is required to provide both a patheval() and an evalformake()
-routine. Both of these routines gets a name to evaluate and a node indicating
-where to start the evaluation.
+Pathname evaluation is specific to a filesystem. Each filesystem is required
+to provide both a ``patheval()`` and an ``evalformake()`` routine. Both of
+these routines gets a name to evaluate and a node indicating where to start the
+evaluation.
Crossing a Mount Point During Path Evaluation
=============================================
-If the filesystem supports the mount command, the evaluate routines
-must handle crossing the mountpoint. The evaluate routine should evaluate
-the name upto the first directory node where the new filesystem is mounted.
-The filesystem may process terminator characters prior to calling the
-evaluate routine for the new filesystem. A pointer to the portion of the
-name which has not been evaluated along with the root node of the new
-file system ( gotten from the mount table entry ) is passed to the correct
-mounted filesystem evaluate routine.
+If the filesystem supports the mount command, the evaluate routines must handle
+crossing the mountpoint. The evaluate routine should evaluate the name upto
+the first directory node where the new filesystem is mounted. The filesystem
+may process terminator characters prior to calling the evaluate routine for the
+new filesystem. A pointer to the portion of the name which has not been
+evaluated along with the root node of the new file system (gotten from the
+mount table entry) is passed to the correct mounted filesystem evaluate
+routine.
The rtems_filesystem_location_info_t Structure
==============================================
@@ -43,55 +47,49 @@ The ``rtems_filesystem_location_info_t`` structure contains all information
necessary for identification of a node.
The generic rtems filesystem code defines two global
-rtems_filesystem_location_info_t structures, the``rtems_filesystem_root`` and the ``rtems_filesystem_current``.
-Both are initially defined to be the root node of the base filesystem.
-Once the chdir command is correctly used the ``rtems_filesystem_current``
-is set to the location specified by the command.
+rtems_filesystem_location_info_t structures, the``rtems_filesystem_root`` and
+the ``rtems_filesystem_current``. Both are initially defined to be the root
+node of the base filesystem. Once the chdir command is correctly used the
+``rtems_filesystem_current`` is set to the location specified by the command.
The filesystem generic code peeks at the first character in the name to be
-evaluated. If this character is a valid seperator, the``rtems_filesystem_root`` is used as the node to start the evaluation
-with. Otherwise, the ``rtems_filesystem_current`` node is used as the
-node to start evaluating with. Therefore, a valid
-rtems_filesystem_location_info_t is given to the evaluate routine to start
-evaluation with. The evaluate routines are then responsible for making
-any changes necessary to this structure to correspond to the name being
-parsed.
-.. code:: c
+evaluated. If this character is a valid seperator,
+the``rtems_filesystem_root`` is used as the node to start the evaluation with.
+Otherwise, the ``rtems_filesystem_current`` node is used as the node to start
+evaluating with. Therefore, a valid rtems_filesystem_location_info_t is given
+to the evaluate routine to start evaluation with. The evaluate routines are
+then responsible for making any changes necessary to this structure to
+correspond to the name being parsed.
+
+.. code-block:: c
struct rtems_filesystem_location_info_tt {
- void \*node_access;
- rtems_filesystem_file_handlers_r \*handlers;
- rtems_filesystem_operations_table \*ops;
- rtems_filesystem_mount_table_entry_t \*mt_entry;
+ void *node_access;
+ rtems_filesystem_file_handlers_r *handlers;
+ rtems_filesystem_operations_table *ops;
+ rtems_filesystem_mount_table_entry_t *mt_entry;
};
*node_access*
- This element is filesystem specific. A filesystem can define and store
- any information necessary to identify a node at this location. This element
- is normally filled in by the filesystem's evaluate routine. For the
- filesystem's root node, the filesystem's initilization routine should
- fill this in, and it should remain valid until the instance of the
- filesystem is unmounted.
+ This element is filesystem specific. A filesystem can define and store any
+ information necessary to identify a node at this location. This element is
+ normally filled in by the filesystem's evaluate routine. For the
+ filesystem's root node, the filesystem's initilization routine should fill
+ this in, and it should remain valid until the instance of the filesystem is
+ unmounted.
*handlers*
- This element is defined as a set of routines that may change within a
- given filesystem based upon node type. For example a directory and a
- memory file may have to completely different read routines. This element
- is set to an initialization state defined by the mount table, and may
- be set to the desired state by the evaluation routines.
+ This element is defined as a set of routines that may change within a given
+ filesystem based upon node type. For example a directory and a memory file
+ may have to completely different read routines. This element is set to an
+ initialization state defined by the mount table, and may be set to the
+ desired state by the evaluation routines.
*ops*
This element is defined as a set of routines that remain static for the
- filesystem. This element identifies entry points into the filesystem
- to the generic code.
+ filesystem. This element identifies entry points into the filesystem to
+ the generic code.
*mt_entry*
This element identifies the mount table entry for this instance of the
filesystem.
-
-.. COMMENT: COPYRIGHT (c) 1988-2002.
-
-.. COMMENT: On-Line Applications Research Corporation (OAR).
-
-.. COMMENT: All rights reserved.
-