summaryrefslogtreecommitdiffstats
path: root/cpukit/libcsupport/include/rtems/libio.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-07-15 07:36:37 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-07-15 07:36:37 +0000
commit1e01385ff01b077bb48b7fe92ce78b3066f8a99e (patch)
treee62717b2c7bedfeb2046d0c410041a8fa7c3b12e /cpukit/libcsupport/include/rtems/libio.h
parent2010-07-14 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-1e01385ff01b077bb48b7fe92ce78b3066f8a99e.tar.bz2
2010-07-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libcsupport/include/rtems/libio.h: Changed rtems_filesystem_node_types_t to an enum. Declare rtems_filesystem_handlers_default, rtems_filesystem_operations_default, rtems_filesystem_default_evalpath(), rtems_filesystem_default_evalformake, and rtems_filesystem_default_node_type(). * libfs/src/dosfs/msdos.h: Fixed msdos_node_type() prototype. * libfs/src/defaults/default_evalformake.c, libfs/src/defaults/default_handlers.c, libfs/src/defaults/default_node_type.c, libfs/src/defaults/default_ops.c: New files. * libfs/Makefile.am: Reflect changes above.
Diffstat (limited to 'cpukit/libcsupport/include/rtems/libio.h')
-rw-r--r--cpukit/libcsupport/include/rtems/libio.h57
1 files changed, 42 insertions, 15 deletions
diff --git a/cpukit/libcsupport/include/rtems/libio.h b/cpukit/libcsupport/include/rtems/libio.h
index f3f9c2ea38..536e4513d7 100644
--- a/cpukit/libcsupport/include/rtems/libio.h
+++ b/cpukit/libcsupport/include/rtems/libio.h
@@ -56,20 +56,16 @@ extern "C" {
typedef _off64_t rtems_off64_t;
/**
- * @name File System Node Types
- *
- * @{
+ * @brief File system node types.
*/
-
-#define RTEMS_FILESYSTEM_DIRECTORY 1
-#define RTEMS_FILESYSTEM_DEVICE 2
-#define RTEMS_FILESYSTEM_HARD_LINK 3
-#define RTEMS_FILESYSTEM_SYM_LINK 4
-#define RTEMS_FILESYSTEM_MEMORY_FILE 5
-
-/** @} */
-
-typedef int rtems_filesystem_node_types_t;
+typedef enum {
+ RTEMS_FILESYSTEM_INVALID_NODE_TYPE,
+ RTEMS_FILESYSTEM_DIRECTORY,
+ RTEMS_FILESYSTEM_DEVICE,
+ RTEMS_FILESYSTEM_HARD_LINK,
+ RTEMS_FILESYSTEM_SYM_LINK,
+ RTEMS_FILESYSTEM_MEMORY_FILE
+} rtems_filesystem_node_types_t;
/**
* @name File System Node Operations
@@ -360,6 +356,10 @@ struct _rtems_filesystem_file_handlers_r {
*/
rtems_filesystem_rmnod_t rmnod_h;
};
+
+extern const rtems_filesystem_file_handlers_r
+rtems_filesystem_handlers_default;
+
/**
* This method defines the interface to the default open(2)
* system call support which is provided by a file system
@@ -892,10 +892,29 @@ struct _rtems_filesystem_operations_table {
rtems_filesystem_statvfs_t statvfs_h;
};
-/*
- * @brief Default filesystem evalpath
+extern const rtems_filesystem_operations_table
+rtems_filesystem_operations_default;
+
+/**
+ * @brief Provides a defualt routine for filesystem
+ * implementation of path evaluation.
*/
+int rtems_filesystem_default_evalpath(
+ const char *pathname,
+ size_t pathnamelen,
+ int flags,
+ rtems_filesystem_location_info_t *pathloc
+);
+/**
+ * @brief Provides a defualt routine for filesystem
+ * implementation of path evaluation for make.
+ */
+int rtems_filesystem_default_evalformake(
+ const char *path,
+ rtems_filesystem_location_info_t *pathloc,
+ const char **name
+);
/**
* @brief Provides a defualt routine for filesystem
@@ -918,6 +937,14 @@ int rtems_filesystem_default_unlink(
/**
* @brief Provides a defualt routine for filesystem
+ * implementation to determine the node type.
+ */
+rtems_filesystem_node_types_t rtems_filesystem_default_node_type(
+ rtems_filesystem_location_info_t *pathloc
+);
+
+/**
+ * @brief Provides a defualt routine for filesystem
* implementation to create a new node.
*/
int rtems_filesystem_default_mknod(