[victoriafalls] Read some of the ext2 superblock as a POC

This commit is contained in:
Drew Galbraith 2023-07-05 16:03:46 -07:00
parent 29d9923f5a
commit 0274339cc9
3 changed files with 21 additions and 0 deletions

View File

@ -8,6 +8,7 @@ target_include_directories(victoriafalls
target_link_libraries(victoriafalls
glacier
mammoth
yellowstone_stub
)
set_target_properties(victoriafalls PROPERTIES

View File

@ -1,9 +1,28 @@
#include <mammoth/debug.h>
#include <mammoth/init.h>
#include <yellowstone_stub.h>
struct Superblock {
uint32_t inode_count;
uint32_t blocks_count;
uint32_t reserved_blocks_count;
uint32_t free_blocks_count;
uint32_t free_inodes_count;
};
uint64_t main(uint64_t init_cap) {
ParseInitPort(init_cap);
dbgln("VFs Started");
YellowstoneStub yellowstone(gInitEndpointCap);
ASSIGN_OR_RETURN(ScopedDenaliClient denali, yellowstone.GetDenali());
ASSIGN_OR_RETURN(MappedMemoryRegion region, denali.ReadSectors(2, 2));
Superblock* super = reinterpret_cast<Superblock*>(region.vaddr());
dbgln("Inodes: %x / %x", super->free_inodes_count, super->inode_count);
dbgln("Blocks: %x / %x", super->free_blocks_count, super->blocks_count);
return 0;
}

View File

@ -98,6 +98,7 @@ void YellowstoneServer::ServerThread() {
};
check(ZReplyPortSend(reply_port_cap, sizeof(resp), &resp, 1,
&new_denali));
break;
}
default:
dbgln("Unknown request type: %x", req->type);