Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- Busca o i-node *inode_number* e o armazena em **inode*
- */
- int get_inode (inode_t* inode, int inode_number) {
- int inode_position = inode_number * sizeof(inode_t);
- int sector_number = inode_position / SECTOR_SIZE;
- int sector_offset = inode_position % SECTOR_SIZE;
- disk_new_read(sector_number + superblock_inode_area);
- disk_seek(sector_offset);
- disk_read_int(inode->dataPtr[0]);
- disk_read_int(inode->dataPtr[1]);
- disk_read_int(inode->singleIndPtr);
- disk_read_int(inode->doubleIndPtr);
- return 0;
- }
- /** Armazena **inode* em *inode_number* */
- int set_inode (inode_t* inode, int inode_number) {
- int inode_position = inode_number * sizeof(inode_t);
- int sector_number = inode_position / SECTOR_SIZE;
- int sector_offset = inode_position % SECTOR_SIZE;
- disk_new_read(sector_number + superblock_inode_area);
- disk_seek(sector_offset);
- disk_write_int(inode->dataPtr[0]);
- disk_write_int(inode->dataPtr[1]);
- disk_write_int(inode->singleIndPtr);
- disk_write_int(inode->doubleIndPtr);
- disk_end_write(sector_number);
- if (setBitmap2 (BITMAP_INODE, inode_number, 1) != 0) {
- printf("Erro ao setar bit do inode %d\n", inode_number);
- return -1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement