void case_setup() { int ret; g_message("--enter fun %s", __func__); fixture.icache_ctrl = icache_new(); g_assert(fixture.icache_ctrl!=NULL); ret = icache_init(fixture.icache_ctrl, IBLOCK_SIZE, 1024, 80, 128); g_assert(ret == 0); }
void fs_init() { /* print init message: */ printk("Quafios filesystem is starting...\n"); /* initialize caches: */ icache_init(); /* mount tmpfs to the root. */ mount("", "/", "tmpfs", 0, NULL); }
int ext2_load(struct inode *dev, struct inode **super) { int err = 0; /* Read Superblock */ struct ext2_superblock *sb; sb = kmalloc(sizeof(struct ext2_superblock), &M_EXT2_SB, 0); if ((err = vfs_read(dev, 1024, sizeof(struct ext2_superblock), sb)) < 0) return err; /* Valid Ext2? */ if (sb->ext2_signature != EXT2_SIGNATURE) { kfree(sb); return -EINVAL; } /* Build descriptor structure */ struct ext2 *desc = kmalloc(sizeof(struct ext2), &M_EXT2, 0); desc->supernode = dev; desc->superblock = sb; desc->bs = 1024UL << sb->block_size; /* Read block group descriptor table */ uint32_t bgd_table = (desc->bs == 1024)? 2048 : desc->bs; size_t bgds_count = (sb->blocks_count + sb->blocks_per_block_group - 1)/ sb->blocks_per_block_group; size_t bgds_size = bgds_count * sizeof(struct ext2_block_group_descriptor); desc->bgds_count = bgds_count; desc->bgd_table = kmalloc(bgds_size, &M_EXT2_BGD, 0); if (!desc->bgd_table) return -ENOMEM; if ((err = vfs_read(desc->supernode, bgd_table, bgds_size, desc->bgd_table)) < 0) return err; desc->icache = kmalloc(sizeof(struct icache), &M_ICACHE, 0); if (!desc->icache) return -ENOMEM; icache_init(desc->icache); if (super) ext2_inode_build(desc, 2, super); return 0; }