Base versions cut from old document.

This commit is contained in:
Joel Sherrill
1999-10-08 18:11:53 +00:00
parent 0fa66f2af6
commit 9bc1e52a88
3 changed files with 108 additions and 0 deletions

28
doc/filesystem/init.t Normal file
View File

@@ -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

63
doc/filesystem/mounting.t Normal file
View File

@@ -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.

View File

@@ -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