RTEMS CPU Kit with SuperCore  4.10.99.0
Data Structures | Modules | Typedefs | Enumerations | Functions | Variables
File System Types and Mount
IO Library

File system types and mount. More...

Collaboration diagram for File System Types and Mount:

Data Structures

struct  rtems_filesystem_mount_table_entry_tt
 Mount table entry. More...
struct  rtems_filesystem_table_t
 File system table entry. More...
struct  rtems_filesystem_mount_configuration

Modules

 Device Only File System
 

This structure defines the type of device table.


 FAT Filesystem Support
 

FAT file system configuration support, format and mount options.


 File System Mount Support
 

File System Mount Functions.


 In-Memory File System Support
 

In-Memory File System Support.


 Journalling Flash File System Version 2 (JFFS2) Support
 

Mount options for the Journalling Flash File System, Version 2 (JFFS2).


 FIFO/Pipe File System Support
 

Interface to the POSIX FIFO/Pipe File System.


 RTEMS File System Group Management

Typedefs

typedef struct
rtems_filesystem_table_t 
rtems_filesystem_table_t
 File system table entry.
typedef bool(* rtems_per_filesystem_routine )(const rtems_filesystem_table_t *fs_entry, void *arg)
 Per file system type routine.
typedef bool(* rtems_filesystem_mt_entry_visitor )(const rtems_filesystem_mount_table_entry_t *mt_entry, void *arg)
 Mount table entry visitor.

Enumerations

enum  rtems_filesystem_options_t { RTEMS_FILESYSTEM_READ_ONLY, RTEMS_FILESYSTEM_READ_WRITE, RTEMS_FILESYSTEM_BAD_OPTIONS }
 File system options.

Functions

int rtems_filesystem_register (const char *type, rtems_filesystem_fsmount_me_t mount_h)
 Registers a file system type.
int rtems_filesystem_unregister (const char *type)
 Unregisters a file system type.
int unmount (const char *mount_path)
 Unmounts the file system instance at the specified mount path.
int mount (const char *source, const char *target, const char *filesystemtype, rtems_filesystem_options_t options, const void *data)
 Mounts a file system instance at the specified target path.
int mount_and_make_target_path (const char *source, const char *target, const char *filesystemtype, rtems_filesystem_options_t options, const void *data)
 Mounts a file system and makes the target path.
bool rtems_filesystem_iterate (rtems_per_filesystem_routine routine, void *routine_arg)
 Iterates over all file system types.
bool rtems_filesystem_mount_iterate (rtems_filesystem_mt_entry_visitor visitor, void *visitor_arg)
 Iterates over all file system mount entries.

Variables

const rtems_filesystem_table_t rtems_filesystem_table []
 Static table of file systems.
rtems_chain_control rtems_filesystem_mount_table
const
rtems_filesystem_mount_configuration 
rtems_filesystem_root_configuration

File System Types

#define RTEMS_FILESYSTEM_TYPE_IMFS   "imfs"
#define RTEMS_FILESYSTEM_TYPE_MINIIMFS   "mimfs"
#define RTEMS_FILESYSTEM_TYPE_DEVFS   "devfs"
#define RTEMS_FILESYSTEM_TYPE_FTPFS   "ftpfs"
#define RTEMS_FILESYSTEM_TYPE_TFTPFS   "tftpfs"
#define RTEMS_FILESYSTEM_TYPE_NFS   "nfs"
#define RTEMS_FILESYSTEM_TYPE_DOSFS   "dosfs"
#define RTEMS_FILESYSTEM_TYPE_RFS   "rfs"
#define RTEMS_FILESYSTEM_TYPE_JFFS2   "jffs2"

Detailed Description

File system types and mount.


Typedef Documentation

typedef bool(* rtems_filesystem_mt_entry_visitor)(const rtems_filesystem_mount_table_entry_t *mt_entry, void *arg)

Mount table entry visitor.

Return values:
trueStop the iteration.
falseContinue the iteration.
See also:
rtems_filesystem_mount_iterate().
typedef bool(* rtems_per_filesystem_routine)(const rtems_filesystem_table_t *fs_entry, void *arg)

Per file system type routine.

See also:
rtems_filesystem_iterate().
Return values:
trueStop the iteration.
falseContinue the iteration.

Function Documentation

int mount ( const char *  source,
const char *  target,
const char *  filesystemtype,
rtems_filesystem_options_t  options,
const void *  data 
)

Mounts a file system instance at the specified target path.

To mount a standard file system instance one of the following defines should be used to select the file system type

  • RTEMS_FILESYSTEM_TYPE_DEVFS,
  • RTEMS_FILESYSTEM_TYPE_DOSFS,
  • RTEMS_FILESYSTEM_TYPE_FTPFS,
  • RTEMS_FILESYSTEM_TYPE_IMFS,
  • RTEMS_FILESYSTEM_TYPE_JFFS2,
  • RTEMS_FILESYSTEM_TYPE_MINIIMFS,
  • RTEMS_FILESYSTEM_TYPE_NFS,
  • RTEMS_FILESYSTEM_TYPE_RFS, or
  • RTEMS_FILESYSTEM_TYPE_TFTPFS.

Only configured or registered file system types are available. You can add file system types to your application configuration with the following configuration options

  • CONFIGURE_FILESYSTEM_DEVFS,
  • CONFIGURE_FILESYSTEM_DOSFS,
  • CONFIGURE_FILESYSTEM_FTPFS,
  • CONFIGURE_FILESYSTEM_IMFS,
  • CONFIGURE_FILESYSTEM_JFFS2,
  • CONFIGURE_FILESYSTEM_MINIIMFS,
  • CONFIGURE_FILESYSTEM_NFS,
  • CONFIGURE_FILESYSTEM_RFS, and
  • CONFIGURE_FILESYSTEM_TFTPFS.

In addition to these configuration options file system types can be registered with rtems_filesystem_register().

Parameters:
[in]sourceThe source parameter will be forwarded to the file system initialization handler. Usually the source is a path to the corresponding device file, or NULL in case the file system does not use a device file.
[in]targetThe target path must lead to an existing directory, or must be NULL. In case the target is NULL, the root file system will be mounted.
[in]filesystemtypeThis string selects the file system type.
[in]optionsThe options specify if the file system instance allows read-write or read-only access.
[in]dataThe data parameter will be forwarded to the file system initialization handler. It can be used to pass file system specific mount options. The data structure for mount options is file system specific. See also in the corresponding file system documentation.
Return values:
0Successful operation.
-1An error occurred. The errno indicates the error.
See also:
rtems_filesystem_register(), mount_and_make_target_path(), FAT Filesystem Support and Journalling Flash File System Version 2 (JFFS2) Support.
int mount_and_make_target_path ( const char *  source,
const char *  target,
const char *  filesystemtype,
rtems_filesystem_options_t  options,
const void *  data 
)

Mounts a file system and makes the target path.

The target path will be created with rtems_mkdir() and must not be NULL.

See also:
mount().
Return values:
0Successful operation.
-1An error occurred. The errno indicates the error.
bool rtems_filesystem_iterate ( rtems_per_filesystem_routine  routine,
void *  routine_arg 
)

Iterates over all file system types.

For each file system type the routine will be called with the entry and the routine_arg parameter.

Do not register or unregister file system types in routine.

The iteration is protected by the IO library mutex.

Return values:
trueIteration stopped due to routine return status.
falseIteration through all entries.
bool rtems_filesystem_mount_iterate ( rtems_filesystem_mt_entry_visitor  visitor,
void *  visitor_arg 
)

Iterates over all file system mount entries.

The iteration is protected by the IO library mutex. Do not mount or unmount file systems in the visitor function.

Parameters:
[in]visitorFor each file system mount entry the visitor function will be called with the entry and the visitor argument as parameters.
[in]visitor_argThe second parameter for the visitor function.
Return values:
trueIteration stopped due to visitor function return status.
falseIteration through all entries.
int rtems_filesystem_register ( const char *  type,
rtems_filesystem_fsmount_me_t  mount_h 
)

Registers a file system type.

The mount_h handler will be used to mount a file system of this type.

Return values:
0Successful operation.
-1An error occurred. The errno indicates the error.
int rtems_filesystem_unregister ( const char *  type)

Unregisters a file system type.

Return values:
0Successful operation.
-1An error occurred. The errno indicates the error.
int unmount ( const char *  mount_path)

Unmounts the file system instance at the specified mount path.

The function waits for the unmount process completion. In case the calling thread uses resources of the unmounted file system the function may never return. In case the calling thread has its root or current directory in the unmounted file system the function returns with an error status and errno is set to EBUSY.

The unmount process completion notification uses the transient event. It is a fatal error to terminate the calling thread while waiting for this event.

A concurrent unmount request for the same file system instance has unpredictable effects.

Parameters:
[in]mount_pathThe path to the file system instance mount point.
Return values:
0Successful operation.
-1An error occurred. The errno indicates the error.
See also:
Transient Event.

Variable Documentation

Static table of file systems.

Externally defined by confdefs.h or the user.