diff --git a/components/dfs/filesystems/jffs2/dfs_jffs2.c b/components/dfs/filesystems/jffs2/dfs_jffs2.c index 77c0a71f1d716b46858993f5fefbebdb3e4c2afd..176f7c65f03f5b48c70f226861eff88570cf03ec 100644 --- a/components/dfs/filesystems/jffs2/dfs_jffs2.c +++ b/components/dfs/filesystems/jffs2/dfs_jffs2.c @@ -287,8 +287,12 @@ static int dfs_jffs2_open(struct dfs_fd* file) /* open dir */ result = jffs2_opendir(mte, mte->root, name, jffs2_file); if (result) + { return jffs2_result_to_dfs(result); - + } +#ifdef CONFIG_JFFS2_NO_RELATIVEDIR + jffs2_file->f_offset = 2; +#endif /* save this pointer, it will be used by dfs_jffs2_getdents*/ file->data = jffs2_file; return 0; diff --git a/components/dfs/filesystems/jffs2/jffs2_config.h b/components/dfs/filesystems/jffs2/jffs2_config.h index 9a8e2c565bd967ecc83806adb85c865e877dbc34..f07d7760f84e8f31647233fce2a8e61f3507252f 100644 --- a/components/dfs/filesystems/jffs2/jffs2_config.h +++ b/components/dfs/filesystems/jffs2/jffs2_config.h @@ -7,6 +7,18 @@ #define DEVICE_PART_MAX 1 /* the max partions on a nand deivce*/ + +/* jffs2 support relative dir, command "ls" will get + * +-------------------------------+ + * | finsh>>ls("/") | + * | Directory /: | + * | . | + * | .. | + * | dir1 | + * +-------------------------------+ + */ +#define CONFIG_JFFS2_NO_RELATIVEDIR + #define CYGPKG_FS_JFFS2_RET_DIRENT_DTYPE /* should be enabled */ #if defined(CYGPKG_FS_JFFS2_RET_DIRENT_DTYPE) #define CYGPKG_FILEIO_DIRENT_DTYPE