From bed685af65ff40d5f2f598fbbba9b1fad2edab3f Mon Sep 17 00:00:00 2001 From: Drew Galbraith Date: Mon, 31 Jul 2023 23:54:41 -0700 Subject: [PATCH] [Victoria Falls] Clean up directory probe debug printing --- sys/victoriafalls/fs/ext2/ext2.h | 4 ++++ sys/victoriafalls/fs/ext2/ext2_driver.cpp | 22 ++++++++++------------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/sys/victoriafalls/fs/ext2/ext2.h b/sys/victoriafalls/fs/ext2/ext2.h index b76ae75..8a3ab2a 100644 --- a/sys/victoriafalls/fs/ext2/ext2.h +++ b/sys/victoriafalls/fs/ext2/ext2.h @@ -63,6 +63,10 @@ struct Inode { uint32_t osd2[3]; } __attribute__((__packed__)); +constexpr uint8_t kExt2FtUnknown = 0; +constexpr uint8_t kExt2FtFile = 1; +constexpr uint8_t kExt2FtDirectory = 2; + struct DirEntry { uint32_t inode; uint16_t record_length; diff --git a/sys/victoriafalls/fs/ext2/ext2_driver.cpp b/sys/victoriafalls/fs/ext2/ext2_driver.cpp index dcf4435..6a83d3c 100644 --- a/sys/victoriafalls/fs/ext2/ext2_driver.cpp +++ b/sys/victoriafalls/fs/ext2/ext2_driver.cpp @@ -51,11 +51,6 @@ glcr::ErrorCode Ext2Driver::ProbePartition() { glcr::UniquePtr(new InodeTable(ext2_reader_, bgds)); ASSIGN_OR_RETURN(Inode * root, inode_table_->GetInode(2)); - dbgln("Inode %lx", root); - dbgln("Mode: %x", root->mode); - dbgln("Blocks: %x", root->blocks); - dbgln("Size: %x", root->size); - return ProbeDirectory(root); } @@ -81,14 +76,17 @@ glcr::ErrorCode Ext2Driver::ProbeDirectory(Inode* inode) { uint64_t addr = block.vaddr(); while (addr < block.vaddr() + ext2_reader_.BlockSize()) { DirEntry* entry = reinterpret_cast(addr); - dbgln("Entry: inode: %x, rec_len %x, name_len %x, file_type: %x", - entry->inode, entry->record_length, entry->name_len, - entry->file_type); - // FIXME: We need a method to construct a string that is *up to* a certain - // length. As illustrated below the provided name_len is 0x2e but the - // first character is \0 since this is the self-referencial inode. glcr::String name(entry->name, entry->name_len); - dbgln("%s", name.cstr()); + switch (entry->file_type) { + case kExt2FtFile: + dbgln("FILE (0x%x): %s", entry->inode, name.cstr()); + break; + case kExt2FtDirectory: + dbgln("DIR (0x%x): %s", entry->inode, name.cstr()); + break; + default: + dbgln("UNK (0x%x): %s", entry->inode, name.cstr()); + } addr += entry->record_length; } }