From 3dce058562ff0b58719c8200e080bf35c9ff28a6 Mon Sep 17 00:00:00 2001 From: Drew Galbraith Date: Mon, 31 Jul 2023 23:42:42 -0700 Subject: [PATCH] [Victoria Falls] Fix DirEntry member size --- sys/victoriafalls/fs/ext2/ext2.h | 2 +- sys/victoriafalls/fs/ext2/ext2_driver.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/victoriafalls/fs/ext2/ext2.h b/sys/victoriafalls/fs/ext2/ext2.h index 7a9c7a2..b76ae75 100644 --- a/sys/victoriafalls/fs/ext2/ext2.h +++ b/sys/victoriafalls/fs/ext2/ext2.h @@ -65,7 +65,7 @@ struct Inode { struct DirEntry { uint32_t inode; - uint32_t record_length; + uint16_t record_length; uint8_t name_len; uint8_t file_type; char name[256]; diff --git a/sys/victoriafalls/fs/ext2/ext2_driver.cpp b/sys/victoriafalls/fs/ext2/ext2_driver.cpp index 6e468e0..dcf4435 100644 --- a/sys/victoriafalls/fs/ext2/ext2_driver.cpp +++ b/sys/victoriafalls/fs/ext2/ext2_driver.cpp @@ -81,13 +81,13 @@ 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", entry->inode, - entry->record_length, entry->name_len); + 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("%x, %x", name.length(), glcr::String(entry->name).length()); dbgln("%s", name.cstr()); addr += entry->record_length; }