RTEMS CPU Kit with SuperCore  4.10.99.0
Data Structures | Typedefs | Enumerations | Functions | Variables
File System Operations
IO Library

File system operations. More...

Collaboration diagram for File System Operations:

Data Structures

struct  rtems_filesystem_eval_path_context_t
 Path evaluation context. More...
struct  _rtems_filesystem_operations_table
 File system operations table. More...

Typedefs

typedef void(* rtems_filesystem_mt_entry_lock_t )(const rtems_filesystem_mount_table_entry_t *mt_entry)
 Locks a file system instance.
typedef void(* rtems_filesystem_mt_entry_unlock_t )(const rtems_filesystem_mount_table_entry_t *mt_entry)
 Unlocks a file system instance.
typedef void(* rtems_filesystem_eval_path_t )(rtems_filesystem_eval_path_context_t *ctx)
 Path evaluation.
typedef int(* rtems_filesystem_link_t )(const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *targetloc, const char *name, size_t namelen)
 Creates a new link for the existing file.
typedef int(* rtems_filesystem_fchmod_t )(const rtems_filesystem_location_info_t *loc, mode_t mode)
 Changes the mode of a node.
typedef int(* rtems_filesystem_chown_t )(const rtems_filesystem_location_info_t *loc, uid_t owner, gid_t group)
 Changes owner and group of a node.
typedef int(* rtems_filesystem_clonenode_t )(rtems_filesystem_location_info_t *loc)
 Clones a location.
typedef void(* rtems_filesystem_freenode_t )(const rtems_filesystem_location_info_t *loc)
 Frees the location of a node.
typedef int(* rtems_filesystem_mount_t )(rtems_filesystem_mount_table_entry_t *mt_entry)
 Mounts a file system instance in a mount point (directory).
typedef int(* rtems_filesystem_fsmount_me_t )(rtems_filesystem_mount_table_entry_t *mt_entry, const void *data)
 Initializes a file system instance.
typedef int(* rtems_filesystem_unmount_t )(rtems_filesystem_mount_table_entry_t *mt_entry)
 Unmounts a file system instance in a mount point (directory).
typedef void(* rtems_filesystem_fsunmount_me_t )(rtems_filesystem_mount_table_entry_t *mt_entry)
 Destroys a file system instance.
typedef bool(* rtems_filesystem_are_nodes_equal_t )(const rtems_filesystem_location_info_t *a, const rtems_filesystem_location_info_t *b)
 Tests if the node of one location is equal to the node of the other location.
typedef
rtems_filesystem_node_types_t(* 
rtems_filesystem_node_type_t )(const rtems_filesystem_location_info_t *loc)
 Returns the node type.
typedef int(* rtems_filesystem_mknod_t )(const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, mode_t mode, dev_t dev)
 Creates a new node.
typedef int(* rtems_filesystem_rmnod_t )(const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *loc)
 Removes a node.
typedef int(* rtems_filesystem_utime_t )(const rtems_filesystem_location_info_t *loc, time_t actime, time_t modtime)
 Set node access and modification times.
typedef int(* rtems_filesystem_symlink_t )(const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, const char *target)
 Makes a symbolic link to a node.
typedef ssize_t(* rtems_filesystem_readlink_t )(const rtems_filesystem_location_info_t *loc, char *buf, size_t bufsize)
 Reads the contents of a symbolic link.
typedef int(* rtems_filesystem_rename_t )(const rtems_filesystem_location_info_t *oldparentloc, const rtems_filesystem_location_info_t *oldloc, const rtems_filesystem_location_info_t *newparentloc, const char *name, size_t namelen)
 Renames a node.
typedef int(* rtems_filesystem_statvfs_t )(const rtems_filesystem_location_info_t *loc, struct statvfs *buf)
 Gets file system information.

Enumerations

enum  rtems_filesystem_node_types_t {
  RTEMS_FILESYSTEM_DIRECTORY, RTEMS_FILESYSTEM_DEVICE, RTEMS_FILESYSTEM_HARD_LINK, RTEMS_FILESYSTEM_SYM_LINK,
  RTEMS_FILESYSTEM_MEMORY_FILE, RTEMS_FILESYSTEM_INVALID_NODE_TYPE
}
 File system node types.

Functions

void rtems_filesystem_default_lock (const rtems_filesystem_mount_table_entry_t *mt_entry)
 Obtains the IO library mutex.
void rtems_filesystem_default_unlock (const rtems_filesystem_mount_table_entry_t *mt_entry)
 Releases the IO library mutex.
void rtems_filesystem_default_eval_path (rtems_filesystem_eval_path_context_t *ctx)
 Terminates the path evaluation and replaces the current location with the null location.
int rtems_filesystem_default_link (const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *targetloc, const char *name, size_t namelen)
bool rtems_filesystem_default_are_nodes_equal (const rtems_filesystem_location_info_t *a, const rtems_filesystem_location_info_t *b)
 Tests if the node access pointer of one location is equal to the node access pointer of the other location.
rtems_filesystem_node_types_t rtems_filesystem_default_node_type (const rtems_filesystem_location_info_t *pathloc)
int rtems_filesystem_default_mknod (const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, mode_t mode, dev_t dev)
int rtems_filesystem_default_rmnod (const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *loc)
int rtems_filesystem_default_fchmod (const rtems_filesystem_location_info_t *loc, mode_t mode)
int rtems_filesystem_default_chown (const rtems_filesystem_location_info_t *loc, uid_t owner, gid_t group)
int rtems_filesystem_default_clonenode (rtems_filesystem_location_info_t *loc)
void rtems_filesystem_default_freenode (const rtems_filesystem_location_info_t *loc)
int rtems_filesystem_default_mount (rtems_filesystem_mount_table_entry_t *mt_entry)
int rtems_filesystem_default_fsmount (rtems_filesystem_mount_table_entry_t *mt_entry, const void *data)
int rtems_filesystem_default_unmount (rtems_filesystem_mount_table_entry_t *mt_entry)
void rtems_filesystem_default_fsunmount (rtems_filesystem_mount_table_entry_t *mt_entry)
int rtems_filesystem_default_utime (const rtems_filesystem_location_info_t *loc, time_t actime, time_t modtime)
int rtems_filesystem_default_symlink (const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, const char *target)
ssize_t rtems_filesystem_default_readlink (const rtems_filesystem_location_info_t *loc, char *buf, size_t bufsize)
int rtems_filesystem_default_rename (const rtems_filesystem_location_info_t *oldparentloc, const rtems_filesystem_location_info_t *oldloc, const rtems_filesystem_location_info_t *newparentloc, const char *name, size_t namelen)
int rtems_filesystem_default_statvfs (const rtems_filesystem_location_info_t *loc, struct statvfs *buf)

Variables

const
rtems_filesystem_operations_table 
rtems_filesystem_operations_default
 File system operations table with default operations.

Detailed Description

File system operations.


Typedef Documentation

Tests if the node of one location is equal to the node of the other location.

The caller ensures that both nodes are within the same file system instance.

Parameters:
[in]aThe one location.
[in]bThe other location.
Return values:
trueThe nodes of the locations are equal.
falseOtherwise.
See also:
rtems_filesystem_default_are_nodes_equal().
typedef int(* rtems_filesystem_chown_t)(const rtems_filesystem_location_info_t *loc, uid_t owner, gid_t group)

Changes owner and group of a node.

Parameters:
[in]locThe location of the node.
[in]ownerUser ID for the node.
[in]groupGroup ID for the node.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_chown().

Clones a location.

The location is initialized with a bitwise copy of an existing location. The caller must ensure that this location is protected from a release during the clone operation. After a successful clone operation the clone will be added to the location chain of the corresponding mount table entry.

Parameters:
[in,out]locLocation to clone.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_clonenode().

Path evaluation.

Parameters:
[in,out]ctxThe path evaluation context.
See also:
rtems_filesystem_default_eval_path().
typedef int(* rtems_filesystem_fchmod_t)(const rtems_filesystem_location_info_t *loc, mode_t mode)

Changes the mode of a node.

Parameters:
[in]locThe location of the node.
[in]modeThe new mode of the node
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_fchmod().

Frees the location of a node.

Parameters:
[in]locThe location of the node.
See also:
rtems_filesystem_default_freenode().
typedef int(* rtems_filesystem_fsmount_me_t)(rtems_filesystem_mount_table_entry_t *mt_entry, const void *data)

Initializes a file system instance.

This function must initialize the file system root node in the mount table entry.

Parameters:
[in]mt_entryThe mount table entry.
[in]dataThe data provided by the user.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.

Destroys a file system instance.

The mount point node location of the mount table entry is invalid. This handler must free the file system root location and all remaining resources of the file system instance.

Parameters:
[in]mt_entryThe mount table entry.
See also:
rtems_filesystem_default_fsunmount().
typedef int(* rtems_filesystem_link_t)(const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *targetloc, const char *name, size_t namelen)

Creates a new link for the existing file.

Parameters:
[in]parentlocThe location of the parent of the new link.
[in]targetlocThe location of the target file.
[in]nameName for the new link.
[in]namelenLength of the name for the new link in characters.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_link().
typedef int(* rtems_filesystem_mknod_t)(const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, mode_t mode, dev_t dev)

Creates a new node.

This handler should create a new node according to the parameters.

Parameters:
[in]parentlocThe location of the parent of the new node.
[in]nameName for the new node.
[in]namelenLength of the name for the new node in characters.
[in]modeMode for the new node.
[in]devOptional device identifier for the new node.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_mknod().

Mounts a file system instance in a mount point (directory).

The mount point belongs to the file system instance of the handler and is specified by a field of the mount table entry. The handler must check that the mount point is capable of mounting a file system instance. This is the last step during the mount process. The file system instance is fully initialized at this point.

Parameters:
[in]mt_entryThe mount table entry.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_mount().

Locks a file system instance.

This lock must allow nesting.

Parameters:
[in,out]mt_entryThe mount table entry of the file system instance.
See also:
rtems_filesystem_default_lock().

Unlocks a file system instance.

Parameters:
[in,out]mt_entryThe mount table entry of the file system instance.
See also:
rtems_filesystem_default_unlock().

Returns the node type.

Parameters:
[in]locThe location of the node.
Returns:
Type of the node.
See also:
rtems_filesystem_default_node_type().
typedef ssize_t(* rtems_filesystem_readlink_t)(const rtems_filesystem_location_info_t *loc, char *buf, size_t bufsize)

Reads the contents of a symbolic link.

Parameters:
[in]locThe location of the symbolic link.
[out]bufThe buffer for the contents.
[in]bufsizeThe size of the buffer in characters.
Return values:
non-negativeSize of the actual contents in characters.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_readlink().
typedef int(* rtems_filesystem_rename_t)(const rtems_filesystem_location_info_t *oldparentloc, const rtems_filesystem_location_info_t *oldloc, const rtems_filesystem_location_info_t *newparentloc, const char *name, size_t namelen)

Renames a node.

Parameters:
[in]oldparentlocThe location of the parent of the old node.
[in]oldlocThe location of the old node.
[in]newparentlocThe location of the parent of the new node.
[in]nameName for the new node.
[in]namelenLength of the name for the new node in characters.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_rename().

Removes a node.

Parameters:
[in]parentlocThe location of the parent of the node.
[in]locThe location of the node.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_rmnod().
typedef int(* rtems_filesystem_statvfs_t)(const rtems_filesystem_location_info_t *loc, struct statvfs *buf)

Gets file system information.

Parameters:
[in]locThe location of a node.
[out]bufBuffer for file system information.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_statvfs().
typedef int(* rtems_filesystem_symlink_t)(const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, const char *target)

Makes a symbolic link to a node.

Parameters:
[in]parentlocThe location of the parent of the new symbolic link.
[in]nameName for the new symbolic link.
[in]namelenLength of the name for the new symbolic link in characters.
[in]targetContents for the symbolic link.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_symlink().

Unmounts a file system instance in a mount point (directory).

In case this function is successful the file system instance will be marked as unmounted. The file system instance will be destroyed when the last reference to it vanishes.

Parameters:
[in]mt_entryThe mount table entry.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_unmount().
typedef int(* rtems_filesystem_utime_t)(const rtems_filesystem_location_info_t *loc, time_t actime, time_t modtime)

Set node access and modification times.

Parameters:
[in]locThe location of the node.
[in]actimeAccess time for the node.
[in]modtimeModification for the node.
Return values:
0Successful operation.
-1An error occurred. The errno is set to indicate the error.
See also:
rtems_filesystem_default_utime().

Function Documentation

bool rtems_filesystem_default_are_nodes_equal ( const rtems_filesystem_location_info_t a,
const rtems_filesystem_location_info_t b 
)

Tests if the node access pointer of one location is equal to the node access pointer of the other location.

Parameters:
[in]aThe one location.
[in]bThe other location.
Return values:
trueThe node access pointers of the locations are equal.
falseOtherwise.
See also:
rtems_filesystem_are_nodes_equal_t.
int rtems_filesystem_default_chown ( const rtems_filesystem_location_info_t loc,
uid_t  owner,
gid_t  group 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_chown_t.
int rtems_filesystem_default_clonenode ( rtems_filesystem_location_info_t loc)
Return values:
0Always.
See also:
rtems_filesystem_clonenode_t.
void rtems_filesystem_default_eval_path ( rtems_filesystem_eval_path_context_t ctx)

Terminates the path evaluation and replaces the current location with the null location.

See also:
rtems_filesystem_eval_path_t.
int rtems_filesystem_default_fchmod ( const rtems_filesystem_location_info_t loc,
mode_t  mode 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_fchmod_t.
void rtems_filesystem_default_freenode ( const rtems_filesystem_location_info_t loc)
int rtems_filesystem_default_fsmount ( rtems_filesystem_mount_table_entry_t mt_entry,
const void *  data 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_fsmount_me_t.
void rtems_filesystem_default_fsunmount ( rtems_filesystem_mount_table_entry_t mt_entry)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_fsunmount_me_t.
int rtems_filesystem_default_link ( const rtems_filesystem_location_info_t parentloc,
const rtems_filesystem_location_info_t targetloc,
const char *  name,
size_t  namelen 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_link_t.
void rtems_filesystem_default_lock ( const rtems_filesystem_mount_table_entry_t mt_entry)

Obtains the IO library mutex.

See also:
rtems_filesystem_mt_entry_lock_t.
int rtems_filesystem_default_mknod ( const rtems_filesystem_location_info_t parentloc,
const char *  name,
size_t  namelen,
mode_t  mode,
dev_t  dev 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_mknod_t.
int rtems_filesystem_default_mount ( rtems_filesystem_mount_table_entry_t mt_entry)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_mount_t.
rtems_filesystem_node_types_t rtems_filesystem_default_node_type ( const rtems_filesystem_location_info_t pathloc)
Return values:
RTEMS_FILESYSTEM_INVALID_NODE_TYPEAlways.
See also:
rtems_filesystem_node_type_t.
ssize_t rtems_filesystem_default_readlink ( const rtems_filesystem_location_info_t loc,
char *  buf,
size_t  bufsize 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_readlink_t.
int rtems_filesystem_default_rename ( const rtems_filesystem_location_info_t oldparentloc,
const rtems_filesystem_location_info_t oldloc,
const rtems_filesystem_location_info_t newparentloc,
const char *  name,
size_t  namelen 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_rename_t.
int rtems_filesystem_default_rmnod ( const rtems_filesystem_location_info_t parentloc,
const rtems_filesystem_location_info_t loc 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_rmnod_t.
int rtems_filesystem_default_statvfs ( const rtems_filesystem_location_info_t loc,
struct statvfs buf 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_statvfs_t.
int rtems_filesystem_default_symlink ( const rtems_filesystem_location_info_t parentloc,
const char *  name,
size_t  namelen,
const char *  target 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_symlink_t.
void rtems_filesystem_default_unlock ( const rtems_filesystem_mount_table_entry_t mt_entry)

Releases the IO library mutex.

See also:
rtems_filesystem_mt_entry_unlock_t.
int rtems_filesystem_default_unmount ( rtems_filesystem_mount_table_entry_t mt_entry)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_unmount_t.
int rtems_filesystem_default_utime ( const rtems_filesystem_location_info_t loc,
time_t  actime,
time_t  modtime 
)
Return values:
-1Always. The errno is set to ENOTSUP.
See also:
rtems_filesystem_utime_t.