From e3a8099343aac9d94f411638ad84632d4b620132 Mon Sep 17 00:00:00 2001 From: Miguel Date: Mon, 15 Oct 2018 16:29:50 +0200 Subject: cleanup sys/ etc --- fs/ext2.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'fs/ext2.c') diff --git a/fs/ext2.c b/fs/ext2.c index 9b41d6c..b58b6a4 100644 --- a/fs/ext2.c +++ b/fs/ext2.c @@ -11,7 +11,7 @@ #include "lib/string/string.h" -#include "interface/fs.h" +#include // THE SUPERBLOCK typedef struct ext2_superblock_struct @@ -226,26 +226,27 @@ static uint32_t ext2_filename_to_inode_traverse(uint32_t ext2_start_addr, char * uint32_t pos=0; while(1) { - fs_dirent dirs; + struct dirent dirs; uint32_t ret=ext2_read_dir(VMEM_EXT2_RAMIMAGE,inode_start, &dirs,&pos); if(!ret)break; - if(strlen(dirs.name)==len && !strcmp_l(first,dirs.name,len)) + if(strlen(dirs.d_name)==len && !strcmp_l(first,dirs.d_name,len)) { - klog("found inode %d %s%s (in inode %d)",dirs.inode,dirs.name,dirs.type==FS_FILE_TYPE_DIR?"/ ":" ",inode_start); - if(final)return dirs.inode; - return ext2_filename_to_inode_traverse(ext2_start_addr,&path[len]+1,dirs.inode); +// klog("found inode %d %s%s (in inode %d)",dirs.d_ino,dirs.d_name,dirs.type==FS_FILE_TYPE_DIR?"/ ":" ",inode_start); + if(final)return dirs.d_ino; + return ext2_filename_to_inode_traverse(ext2_start_addr,&path[len]+1,dirs.d_ino); } } - klog("file not found! : %s",path); return 0; } uint32_t ext2_filename_to_inode(uint32_t ext2_start_addr, char *path) { if(!strcmp_l(path,"/",0))return 2; // root is inode 2 by definition - return ext2_filename_to_inode_traverse(ext2_start_addr,path,2); + uint32_t ret= ext2_filename_to_inode_traverse(ext2_start_addr,path,2); + if(ret==0)klog("file not found! : %s",path); + return ret; } uint32_t ext2_read_inode(uint32_t ext2_start_addr, int inode_nr, char *buf, uint32_t *pos, uint32_t max_size) @@ -273,7 +274,7 @@ uint32_t ext2_read_inode(uint32_t ext2_start_addr, int inode_nr, char *buf, uint return count; } -int ext2_read_dir(uint32_t ext2_start_addr, int inode_nr, fs_dirent *dirs, uint32_t *pos) +int ext2_read_dir(uint32_t ext2_start_addr, int inode_nr, struct dirent *dirs, uint32_t *pos) { ext2_superblock *super=ext2_check(ext2_start_addr); ext2_inode *inode=ext2_get_inode(ext2_start_addr,inode_nr); @@ -293,10 +294,10 @@ int ext2_read_dir(uint32_t ext2_start_addr, int inode_nr, fs_dirent *dirs, uint3 dirs->type=FS_FILE_TYPE_FILE; ext2_inode *inode_current=ext2_get_inode(ext2_start_addr,dir->inode); if(inode_current->permissions&0x4000)dirs->type=FS_FILE_TYPE_DIR; - memcpy(dirs->name,ptr+8,dir->name_length_low); - if(dir->name_length_low>255)dirs->name[255]=0; - dirs->name[dir->name_length_low]=0; // null temrinate - dirs->inode=dir->inode; + memcpy(dirs->d_name,ptr+8,dir->name_length_low); + if(dir->name_length_low>255)dirs->d_name[255]=0; + dirs->d_name[dir->name_length_low]=0; // null temrinate + dirs->d_ino=dir->inode; *pos+=dir->size; return 1; @@ -314,7 +315,7 @@ fd ext2_mount_file_open(mount *m,char *path) return fd_from_path(path); } -int ext2_mount_read_dir(mount *m,char *path, fs_dirent *dirs, uint32_t *pos) +int ext2_mount_read_dir(mount *m,char *path, struct dirent *dirs, uint32_t *pos) { uint32_t inode= ext2_filename_to_inode(VMEM_EXT2_RAMIMAGE,path); if(inode==0)return -1; -- cgit v1.2.3