1583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* 2583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 3583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/usr/src/ext2ed/inodebitmap_com.c 4583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 5583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oA part of the extended file system 2 disk editor. 6583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 7583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o------------------------- 8583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oHandles the inode bitmap. 9583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o------------------------- 10583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 11583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oPlease refer to the documentation in blockbitmap_com.c - Those two files are almost equal. 12583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 13583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oFirst written on: July 25 1995 14583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 15583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oCopyright (C) 1995 Gadi Oxman 16583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 17583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o*/ 18583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 19583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#include <stdio.h> 20583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#include <stdlib.h> 21583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#include <string.h> 22583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 23583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#include "ext2ed.h" 24583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 25583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 26583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid type_ext2_inode_bitmap___entry (char *command_line) 27583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 28583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o{ 29583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o unsigned long entry_num; 30583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o char *ptr,buffer [80]; 31efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 32583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (command_line,buffer); 33583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (*ptr==0) { 34583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (command_win,"Error - No argument specified\n");refresh_command_win ();return; 35583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 36583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (ptr,buffer); 37583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 38583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o entry_num=atol (buffer); 39efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 40583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (entry_num >= file_system_info.super_block.s_inodes_per_group) { 41583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (command_win,"Error - Entry number out of bounds\n");refresh_command_win ();return; 42583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 43efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 44583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o inode_bitmap_info.entry_num=entry_num; 45583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o strcpy (buffer,"show");dispatch (buffer); 46583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o} 47583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 48583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid type_ext2_inode_bitmap___next (char *command_line) 49583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 50583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o{ 51583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o long entry_offset=1; 52583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o char *ptr,buffer [80]; 53efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 54583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (command_line,buffer); 55583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (*ptr!=0) { 56583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (ptr,buffer); 57583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o entry_offset=atol (buffer); 58583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 59583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 60583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o sprintf (buffer,"entry %ld",inode_bitmap_info.entry_num+entry_offset); 61583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o dispatch (buffer); 62583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o} 63583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 64583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid type_ext2_inode_bitmap___prev (char *command_line) 65583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 66583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o{ 67583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o long entry_offset=1; 68583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o char *ptr,buffer [80]; 69efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 70583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (command_line,buffer); 71583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (*ptr!=0) { 72583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (ptr,buffer); 73583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o entry_offset=atol (buffer); 74583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 75583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 76583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o sprintf (buffer,"entry %ld",inode_bitmap_info.entry_num-entry_offset); 77583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o dispatch (buffer); 78583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o} 79583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 80583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid type_ext2_inode_bitmap___allocate (char *command_line) 81583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 82583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o{ 83583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o long entry_num,num=1; 84583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o char *ptr,buffer [80]; 85efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 86583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (command_line,buffer); 87583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (*ptr!=0) { 88583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (ptr,buffer); 89583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o num=atol (buffer); 90583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 91efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 92583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o entry_num=inode_bitmap_info.entry_num; 93583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (num > file_system_info.super_block.s_inodes_per_group-entry_num) { 94efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o wprintw (command_win,"Error - There aren't that much inodes in the group\n"); 95efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o refresh_command_win ();return; 96583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 97efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 98583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o while (num) { 99583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o allocate_inode (entry_num); 100583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o num--;entry_num++; 101583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 102efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 103583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o dispatch ("show"); 104583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o} 105583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 106583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid type_ext2_inode_bitmap___deallocate (char *command_line) 107583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 108583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o{ 109583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o long entry_num,num=1; 110583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o char *ptr,buffer [80]; 111efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 112583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (command_line,buffer); 113583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (*ptr!=0) { 114583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=parse_word (ptr,buffer); 115583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o num=atol (buffer); 116583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 117efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 118583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o entry_num=inode_bitmap_info.entry_num; 119583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (num > file_system_info.super_block.s_inodes_per_group-entry_num) { 120efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o wprintw (command_win,"Error - There aren't that much inodes in the group\n"); 121efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o refresh_command_win ();return; 122583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 123efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 124583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o while (num) { 125583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o deallocate_inode (entry_num); 126583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o num--;entry_num++; 127583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 128efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 129583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o dispatch ("show"); 130583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o} 131583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 132583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 133583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid allocate_inode (long entry_num) 134583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 135583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o{ 136583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o unsigned char bit_mask=1; 137583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o int byte_offset,j; 138efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 139583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o byte_offset=entry_num/8; 140583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o for (j=0;j<entry_num%8;j++) 141583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o bit_mask*=2; 142583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o type_data.u.buffer [byte_offset] |= bit_mask; 143583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o} 144583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 145583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid deallocate_inode (long entry_num) 146583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 147583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o{ 148583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o unsigned char bit_mask=1; 149583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o int byte_offset,j; 150efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 151583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o byte_offset=entry_num/8; 152583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o for (j=0;j<entry_num%8;j++) 153583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o bit_mask*=2; 154583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o bit_mask^=0xff; 155efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 156583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o type_data.u.buffer [byte_offset] &= bit_mask; 157583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o} 158583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 159583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid type_ext2_inode_bitmap___show (char *command_line) 160583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 161583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o{ 162583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o int i,j; 163583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o unsigned char *ptr; 164583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o unsigned long inode_num,entry_num; 165583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 166583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=type_data.u.buffer; 167583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o show_pad_info.line=0;show_pad_info.max_line=-1; 168efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 169583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wmove (show_pad,0,0); 170583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o for (i=0,entry_num=0;i<file_system_info.super_block.s_inodes_per_group/8;i++,ptr++) { 171583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o for (j=1;j<=128;j*=2) { 172583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (entry_num==inode_bitmap_info.entry_num) { 173583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wattrset (show_pad,A_REVERSE); 174583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o show_pad_info.line=show_pad_info.max_line-show_pad_info.display_lines/2; 175583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 176583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 177583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if ((*ptr) & j) 178583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (show_pad,"1"); 179583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o else 180583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (show_pad,"0"); 181583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 182583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (entry_num==inode_bitmap_info.entry_num) 183583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wattrset (show_pad,A_NORMAL); 184583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 185583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o entry_num++; 186583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 187583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (show_pad," "); 188583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (i%8==7) { 189583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (show_pad,"\n"); 190583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o show_pad_info.max_line++; 191583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 192583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 193efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o 194583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if (i%8!=7) { 195583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (show_pad,"\n"); 196583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o show_pad_info.max_line++; 197583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o } 198583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 199efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o refresh_show_pad (); 200583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o show_info (); 201583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wmove (show_win,1,0);wprintw (show_win,"Inode bitmap of block group %ld\n",inode_bitmap_info.group_num); 202583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o 203583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o inode_num=1+inode_bitmap_info.entry_num+inode_bitmap_info.group_num*file_system_info.super_block.s_inodes_per_group; 204583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (show_win,"Status of inode %ld - ",inode_num); 205583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o ptr=type_data.u.buffer+inode_bitmap_info.entry_num/8; 206583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o j=1; 207583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o for (i=inode_bitmap_info.entry_num % 8;i>0;i--) 208583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o j*=2; 209583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o if ((*ptr) & j) 210583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (show_win,"Allocated\n"); 211583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o else 212583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o wprintw (show_win,"Free\n"); 213583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o refresh_show_win (); 214583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o} 215