|
@@ -165,11 +165,11 @@ int dfs_romfs_stat(struct dfs_filesystem* fs, const char *path, struct stat *st)
|
|
if (dirent == RT_NULL) return -DFS_STATUS_ENOENT;
|
|
if (dirent == RT_NULL) return -DFS_STATUS_ENOENT;
|
|
|
|
|
|
st->st_dev = 0;
|
|
st->st_dev = 0;
|
|
- st->st_mode = DFS_S_IFREG | DFS_S_IRUSR | DFS_S_IRGRP | DFS_S_IROTH |
|
|
|
|
- DFS_S_IWUSR | DFS_S_IWGRP | DFS_S_IWOTH;
|
|
|
|
|
|
+ st->st_mode = DFS_S_IFREG | DFS_S_IRUSR | DFS_S_IRGRP | DFS_S_IROTH |
|
|
|
|
+ DFS_S_IWUSR | DFS_S_IWGRP | DFS_S_IWOTH;
|
|
|
|
|
|
if (dirent->type == ROMFS_DIRENT_DIR)
|
|
if (dirent->type == ROMFS_DIRENT_DIR)
|
|
- {
|
|
|
|
|
|
+ {
|
|
st->st_mode &= ~DFS_S_IFREG;
|
|
st->st_mode &= ~DFS_S_IFREG;
|
|
st->st_mode |= DFS_S_IFDIR | DFS_S_IXUSR | DFS_S_IXGRP | DFS_S_IXOTH;
|
|
st->st_mode |= DFS_S_IFDIR | DFS_S_IXUSR | DFS_S_IXGRP | DFS_S_IXOTH;
|
|
}
|
|
}
|
|
@@ -202,7 +202,7 @@ int dfs_romfs_getdents(struct dfs_fd* file, struct dirent* dirp, rt_uint32_t cou
|
|
for (index = 0; index < count && file->pos < file->size; index ++)
|
|
for (index = 0; index < count && file->pos < file->size; index ++)
|
|
{
|
|
{
|
|
d = dirp + index;
|
|
d = dirp + index;
|
|
-
|
|
|
|
|
|
+
|
|
sub_dirent = &dirent[file->pos];
|
|
sub_dirent = &dirent[file->pos];
|
|
name = sub_dirent->name;
|
|
name = sub_dirent->name;
|
|
|
|
|
|
@@ -212,7 +212,7 @@ int dfs_romfs_getdents(struct dfs_fd* file, struct dirent* dirp, rt_uint32_t cou
|
|
else
|
|
else
|
|
d->d_type = DFS_DT_REG;
|
|
d->d_type = DFS_DT_REG;
|
|
|
|
|
|
- d->d_namlen = rt_strlen(name);
|
|
|
|
|
|
+ d->d_namlen = rt_strlen(name);
|
|
d->d_reclen = (rt_uint16_t)sizeof(struct dirent);
|
|
d->d_reclen = (rt_uint16_t)sizeof(struct dirent);
|
|
rt_strncpy(d->d_name, name, rt_strlen(name) + 1);
|
|
rt_strncpy(d->d_name, name, rt_strlen(name) + 1);
|
|
|
|
|