From d272f7fda985b266588af8ba6091c97e44862287 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Wed, 22 Oct 2014 08:00:16 +0200 Subject: reading root inode --- fs/ext2.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'fs') diff --git a/fs/ext2.c b/fs/ext2.c index f96d4f0..38ea06b 100644 --- a/fs/ext2.c +++ b/fs/ext2.c @@ -71,7 +71,6 @@ typedef struct ext2_dir_struct uint8_t name_length_low; uint8_t name_length_high; // name follows - char name[10]; // TODO: load dynamiccaly N chars! }ext2_dir; typedef struct ext2_inode_struct @@ -91,7 +90,7 @@ typedef struct ext2_inode_struct uint32_t indirect3; uint32_t gen_num; uint32_t later1; // will be implemented later by the fooldriver - uint32_t later2; + uint32_t size_high; uint32_t frag; uint32_t os_spec2[3]; }ext2_inode; @@ -163,15 +162,27 @@ int main() printf("---------- root ---------\n"); printf("uid/gid: %i/%i\n",inode.user_id,inode.group_id); printf("hardlinks: %i\n",inode.hardlink_count); + printf("size low/high: %i/%i\n",inode.size_low,inode.size_high); printf("direct block pointer 0: %i\n\n",inode.direct_pointer[0]); // read dir - ext2_dir dir; + char buf[256]; fseek(stdin,block_size*inode.direct_pointer[0],SEEK_SET); - fread(&dir,sizeof(dir),1,stdin); - printf("inode: %i\n",dir.inode); - printf("total size: %i\n",dir.size); - printf("name: %s\n\n",dir.name); + + int pos=0; + while(pos