diff options
-rw-r--r-- | cpukit/libcsupport/src/sup_fs_get_start_loc.c | 48 | ||||
-rw-r--r-- | cpukit/libcsupport/src/sup_fs_get_sym_start_loc.c | 47 | ||||
-rw-r--r-- | cpukit/libcsupport/src/sup_fs_is_separator.c | 30 |
3 files changed, 125 insertions, 0 deletions
diff --git a/cpukit/libcsupport/src/sup_fs_get_start_loc.c b/cpukit/libcsupport/src/sup_fs_get_start_loc.c new file mode 100644 index 0000000000..89f7efbb0d --- /dev/null +++ b/cpukit/libcsupport/src/sup_fs_get_start_loc.c @@ -0,0 +1,48 @@ + /** + * @file src/sup_fs_get_start_loc.c + */ + +/* + * + * COPYRIGHT (c) 1989-1999. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +/* + * rtems_filesystem_get_start_loc + * + * Function to determine if path is absolute or relative + * + * Parameters: + * + * path : IN - path to be checked + * index: OUT - 0, if relative, 1 if absolute + * loc : OUT - location info of root fs if absolute + * location info of current fs if relative + * + * Returns: void + */ + +/* Includes */ + +#include "rtems/libio_.h" + +void rtems_filesystem_get_start_loc(const char *path, + int *index, + rtems_filesystem_location_info_t *loc) +{ + if (rtems_filesystem_is_separator(path[0])) { + *loc = rtems_filesystem_root; + *index = 1; + } + else { + *loc = rtems_filesystem_current; + *index = 0; + } +} diff --git a/cpukit/libcsupport/src/sup_fs_get_sym_start_loc.c b/cpukit/libcsupport/src/sup_fs_get_sym_start_loc.c new file mode 100644 index 0000000000..4bcc964a46 --- /dev/null +++ b/cpukit/libcsupport/src/sup_fs_get_sym_start_loc.c @@ -0,0 +1,47 @@ + /** + * @file src/sup_fs_get_sym_start_loc.c + */ + +/* + * + * COPYRIGHT (c) 1989-1999. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +/* + * rtems_filesystem_get_sym_start_loc + * + * Function to determine if path is absolute or relative + * + * Parameters: + * + * path : IN - path to be checked + * index: OUT - 0, if relative, 1 if absolute + * loc : OUT - location info of root fs if absolute + * location info of current fs if relative + * + * Returns: void + */ + +/* Includes */ + +#include "rtems/libio_.h" + +void rtems_filesystem_get_sym_start_loc(const char *path, + int *index, + rtems_filesystem_location_info_t *loc) +{ + if (rtems_filesystem_is_separator(path[0])) { + *loc = rtems_filesystem_root; + *index = 1; + } + else { + *index = 0; + } +} diff --git a/cpukit/libcsupport/src/sup_fs_is_separator.c b/cpukit/libcsupport/src/sup_fs_is_separator.c new file mode 100644 index 0000000000..affd606271 --- /dev/null +++ b/cpukit/libcsupport/src/sup_fs_is_separator.c @@ -0,0 +1,30 @@ +/** + * @file src/sup_fs_is_separator.c + */ + +/* + * + * COPYRIGHT (c) 1989-1999. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + + +/* + * rtems_filesystem_is_separator + * + * Function to determine if a character is a path name separator. + * This was originally a macro in libio_.h + * + * NOTE: This function handles MS-DOS and UNIX style names. + */ + +int rtems_filesystem_is_separator(char ch) +{ + return ((ch == '/') || (ch == '\\') || (ch == '\0')); +} |