moved list_fs() dump routine to fs/ and improved output
This commit is contained in:
parent
a3d621142a
commit
c6d5656c63
3 changed files with 33 additions and 45 deletions
24
fs/fs.c
24
fs/fs.c
|
@ -132,6 +132,30 @@ int close_fs(fildes_t* file)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void list_fs(vfs_node_t* node, uint32_t depth)
|
||||||
|
{
|
||||||
|
int j, i = 0;
|
||||||
|
dirent_t* dirent = NULL;
|
||||||
|
fildes_t* file = kmalloc(sizeof(fildes_t));
|
||||||
|
file->offset = 0;
|
||||||
|
file->flags = 0;
|
||||||
|
|
||||||
|
while ((dirent = readdir_fs(node, i)) != 0) {
|
||||||
|
kprintf("%*c|- %s\n", 2*depth, ' ', dirent->name);
|
||||||
|
|
||||||
|
if (strcmp(dirent->name, ".") && strcmp(dirent->name, "..")) {
|
||||||
|
vfs_node_t *new_node = finddir_fs(node, dirent->name);
|
||||||
|
if (new_node) {
|
||||||
|
kprintf("%*c\\\n", 2*depth, ' ');
|
||||||
|
list_fs(new_node, depth + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
kfree(file);
|
||||||
|
}
|
||||||
|
|
||||||
struct dirent* readdir_fs(vfs_node_t * node, uint32_t index)
|
struct dirent* readdir_fs(vfs_node_t * node, uint32_t index)
|
||||||
{
|
{
|
||||||
struct dirent* ret = NULL;
|
struct dirent* ret = NULL;
|
||||||
|
|
|
@ -242,6 +242,9 @@ int open_fs(fildes_t* file, const char* fname);
|
||||||
/** @brief Yet to be documented */
|
/** @brief Yet to be documented */
|
||||||
int close_fs(fildes_t * file);
|
int close_fs(fildes_t * file);
|
||||||
|
|
||||||
|
/** @brief List a filesystem hirachically */
|
||||||
|
void list_fs(vfs_node_t* node, uint32_t depth);
|
||||||
|
|
||||||
/** @brief Get dir entry at index
|
/** @brief Get dir entry at index
|
||||||
* @param node VFS node to get dir entry from
|
* @param node VFS node to get dir entry from
|
||||||
* @param index Index position of desired dir entry
|
* @param index Index position of desired dir entry
|
||||||
|
|
|
@ -238,49 +238,6 @@ int network_shutdown(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void list_fs(vfs_node_t* node, uint32_t depth)
|
|
||||||
{
|
|
||||||
int j, i = 0;
|
|
||||||
dirent_t* dirent = NULL;
|
|
||||||
fildes_t* file = kmalloc(sizeof(fildes_t));
|
|
||||||
file->offset = 0;
|
|
||||||
file->flags = 0;
|
|
||||||
|
|
||||||
while ((dirent = readdir_fs(node, i)) != 0) {
|
|
||||||
for(j=0; j<depth; j++)
|
|
||||||
kputs(" ");
|
|
||||||
kprintf("%s\n", dirent->name);
|
|
||||||
|
|
||||||
if (strcmp(dirent->name, ".") && strcmp(dirent->name, "..")) {
|
|
||||||
vfs_node_t *new_node = finddir_fs(node, dirent->name);
|
|
||||||
if (new_node) {
|
|
||||||
if (new_node->type == FS_FILE) {
|
|
||||||
char buff[16] = {[0 ... 15] = 0x00};
|
|
||||||
|
|
||||||
file->node = new_node;
|
|
||||||
file->offset = 0;
|
|
||||||
file->flags = 0;
|
|
||||||
|
|
||||||
read_fs(file, (uint8_t*)buff, 8);
|
|
||||||
for(j=0; j<depth+1; j++)
|
|
||||||
kputs(" ");
|
|
||||||
kprintf("content: %s\n", buff);
|
|
||||||
} else list_fs(new_node, depth+1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
kfree(file, sizeof(fildes_t));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void list_root(void) {
|
|
||||||
kprintf("List of the file system:\n/\n");
|
|
||||||
list_fs(fs_root, 1);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int initd(void* arg)
|
int initd(void* arg)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_LWIP
|
#ifdef CONFIG_LWIP
|
||||||
|
@ -317,9 +274,13 @@ int initd(void* arg)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// list_root();
|
#if 1
|
||||||
|
kputs("Filesystem:\n");
|
||||||
|
list_fs(fs_root, 1);
|
||||||
|
#endif
|
||||||
|
|
||||||
test_init();
|
test_init();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue