Advertisement
vitorvanacor

Untitled

Dec 5th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.27 KB | None | 0 0
  1. /**
  2. Busca o i-node *inode_number* e o armazena em **inode*
  3. */
  4. int get_inode (inode_t* inode, int inode_number) {
  5.     int inode_position = inode_number * sizeof(inode_t);
  6.     int sector_number = inode_position / SECTOR_SIZE;
  7.     int sector_offset = inode_position % SECTOR_SIZE;
  8.    
  9.     disk_new_read(sector_number + superblock_inode_area);
  10.     disk_seek(sector_offset);
  11.     disk_read_int(inode->dataPtr[0]);
  12.     disk_read_int(inode->dataPtr[1]);
  13.     disk_read_int(inode->singleIndPtr);
  14.     disk_read_int(inode->doubleIndPtr);
  15.  
  16.     return 0;
  17.  
  18. }
  19.  
  20. /** Armazena **inode* em *inode_number* */
  21. int set_inode (inode_t* inode, int inode_number) {
  22.     int inode_position = inode_number * sizeof(inode_t);
  23.     int sector_number = inode_position / SECTOR_SIZE;
  24.     int sector_offset = inode_position % SECTOR_SIZE;
  25.    
  26.     disk_new_read(sector_number + superblock_inode_area);
  27.     disk_seek(sector_offset);
  28.     disk_write_int(inode->dataPtr[0]);
  29.     disk_write_int(inode->dataPtr[1]);
  30.     disk_write_int(inode->singleIndPtr);
  31.     disk_write_int(inode->doubleIndPtr);
  32.     disk_end_write(sector_number);
  33.  
  34.     if (setBitmap2 (BITMAP_INODE, inode_number, 1) != 0) {
  35.         printf("Erro ao setar bit do inode %d\n", inode_number);
  36.         return -1;
  37.     }
  38.  
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement