Import backup from 2005-01-04

This commit is contained in:
Josh Holtrop 2005-01-04 22:00:00 -05:00
parent 50285aa33b
commit d8580a9393
4 changed files with 10 additions and 5 deletions

View File

@ -65,6 +65,7 @@ initrd:
touch $(INITRD_MOUNT)/hi_there touch $(INITRD_MOUNT)/hi_there
chmod 527 $(INITRD_MOUNT)/hi_there chmod 527 $(INITRD_MOUNT)/hi_there
chown josh:users $(INITRD_MOUNT)/hi_there chown josh:users $(INITRD_MOUNT)/hi_there
mknod $(INITRD_MOUNT)/rd0 b 5 2
mkdir $(INITRD_MOUNT)/txt mkdir $(INITRD_MOUNT)/txt
cp Makefile $(INITRD_MOUNT)/txt cp Makefile $(INITRD_MOUNT)/txt
umount $(INITRD_MOUNT) umount $(INITRD_MOUNT)

View File

@ -65,12 +65,13 @@ int ext2_stat(vfs_mount_t *mount, char *file, vfs_stat_t *stat)
return -1; return -1;
ext2_inode_t inode = ext2_get_inode(mount, inode_number); ext2_inode_t inode = ext2_get_inode(mount, inode_number);
stat->dev = 0;
switch(inode.i_mode & EXT2_I_MODE_TYPE_MASK) switch(inode.i_mode & EXT2_I_MODE_TYPE_MASK)
{ {
case EXT2_I_MODE_FIFO: stat->type = VFS_FT_FIFO; break; case EXT2_I_MODE_FIFO: stat->type = VFS_FT_FIFO; break;
case EXT2_I_MODE_CHAR: stat->type = VFS_FT_CHAR; break; case EXT2_I_MODE_CHAR: stat->type = VFS_FT_CHAR; stat->dev = inode.i_block[0]; break;
case EXT2_I_MODE_DIR: stat->type = VFS_FT_DIR; break; case EXT2_I_MODE_DIR: stat->type = VFS_FT_DIR; break;
case EXT2_I_MODE_BLOCK: stat->type = VFS_FT_BLOCK; break; case EXT2_I_MODE_BLOCK: stat->type = VFS_FT_BLOCK; stat->dev = inode.i_block[0]; break;
case EXT2_I_MODE_FILE: stat->type = VFS_FT_FILE; break; case EXT2_I_MODE_FILE: stat->type = VFS_FT_FILE; break;
case EXT2_I_MODE_SYM: stat->type = VFS_FT_SYMLINK; break; case EXT2_I_MODE_SYM: stat->type = VFS_FT_SYMLINK; break;
case EXT2_I_MODE_SOCK: stat->type = VFS_FT_SOCK; break; case EXT2_I_MODE_SOCK: stat->type = VFS_FT_SOCK; break;
@ -85,7 +86,6 @@ int ext2_stat(vfs_mount_t *mount, char *file, vfs_stat_t *stat)
stat->mtime = inode.i_mtime; stat->mtime = inode.i_mtime;
stat->ctime = inode.i_ctime; stat->ctime = inode.i_ctime;
stat->links = inode.i_links_count; stat->links = inode.i_links_count;
return 0; return 0;
} }

View File

@ -80,6 +80,7 @@ typedef struct
u32_t mtime; u32_t mtime;
u32_t ctime; u32_t ctime;
u16_t links; u16_t links;
u32_t dev;
} vfs_stat_t; } vfs_stat_t;
typedef struct typedef struct

View File

@ -147,7 +147,7 @@ void k_init()
strcpy(fname, "/"); strcpy(fname, "/");
strcat(fname, dentry.name); strcat(fname, dentry.name);
vfs_stat(fname, &fstat); vfs_stat(fname, &fstat);
putc(fstat.type == VFS_FT_DIR ? 'd' : '-'); putc(fstat.type == VFS_FT_DIR ? 'd' : fstat.type == VFS_FT_CHAR ? 'c' : fstat.type == VFS_FT_BLOCK ? 'b' : '-');
putc(fstat.permissions & VFS_PERMS_UR ? 'r' : '-'); putc(fstat.permissions & VFS_PERMS_UR ? 'r' : '-');
putc(fstat.permissions & VFS_PERMS_UW ? 'w' : '-'); putc(fstat.permissions & VFS_PERMS_UW ? 'w' : '-');
putc(fstat.permissions & VFS_PERMS_UX ? 'x' : '-'); putc(fstat.permissions & VFS_PERMS_UX ? 'x' : '-');
@ -160,7 +160,10 @@ void k_init()
putc(fstat.permissions & VFS_PERMS_OW ? 'w' : '-'); putc(fstat.permissions & VFS_PERMS_OW ? 'w' : '-');
putc(fstat.permissions & VFS_PERMS_OX ? 'x' : '-'); putc(fstat.permissions & VFS_PERMS_OX ? 'x' : '-');
kprintf(" %d\t%d\t%d\t%d\t%s\n", fstat.links, fstat.uid, fstat.gid, fstat.size, dentry.name); kprintf(" %d\t%d\t%d\t%d\t%s", fstat.links, fstat.uid, fstat.gid, fstat.size, dentry.name);
if (fstat.type == VFS_FT_CHAR || fstat.type == VFS_FT_BLOCK)
kprintf("\t(%d, %d)", fstat.dev >> 8, fstat.dev & 0xFF);
putc('\n');
} }
vfs_close_dir(root); vfs_close_dir(root);
} }