MCPcopy Create free account
hub / github.com/cgsecurity/testdisk / display_disk_list

Function display_disk_list

src/testdisk.c:145–214  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

143}
144
145static int display_disk_list(list_disk_t *list_disk, const int testdisk_mode,
146 const int create_backup, const int safe, const int saveheader, const int unit, const int verbose)
147{
148 list_disk_t *element_disk;
149 printf("Please wait...\n");
150 /* Scan for available device only if no device or image has been supplied in parameter */
151 if(list_disk==NULL)
152 list_disk=hd_parse(list_disk, verbose, testdisk_mode);
153 if(list_disk==NULL)
154 {
155 printf("No disk detected.\n");
156#if defined(HAVE_GETEUID) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(DJGPP)
157 if(geteuid()!=0)
158 {
159 printf("You need to be root to use TestDisk.\n");
160 }
161#endif
162 return 1;
163 }
164
165 /* Activate the cache */
166 for(element_disk=list_disk;element_disk!=NULL;element_disk=element_disk->next)
167 element_disk->disk=new_diskcache(element_disk->disk,testdisk_mode);
168 if(safe==0)
169 hd_update_all_geometry(list_disk, verbose);
170 for(element_disk=list_disk;element_disk!=NULL;element_disk=element_disk->next)
171 {
172 disk_t *disk=element_disk->disk;
173 const int hpa_dco=is_hpa_or_dco(disk);
174 printf("%s\n", disk->description(disk));
175 printf("Sector size:%u\n", disk->sector_size);
176 if(disk->model!=NULL)
177 printf("Model: %s", disk->model);
178 if(disk->serial_no!=NULL)
179 printf(", S/N:%s", disk->serial_no);
180 if(disk->fw_rev!=NULL)
181 printf(", FW:%s", disk->fw_rev);
182 printf("\n");
183 if(hpa_dco!=0)
184 {
185 if(disk->sector_size!=0)
186 printf("size %llu sectors\n", (long long unsigned)(disk->disk_real_size/disk->sector_size));
187 if(disk->user_max!=0)
188 printf("user_max %llu sectors\n", (long long unsigned)disk->user_max);
189 if(disk->native_max!=0)
190 printf("native_max %llu sectors\n", (long long unsigned)(disk->native_max+1));
191 if(disk->dco!=0)
192 printf("dco %llu sectors\n", (long long unsigned)(disk->dco+1));
193 if(hpa_dco&1)
194 printf("Host Protected Area (HPA) present.\n");
195 if(hpa_dco&2)
196 printf("Device Configuration Overlay (DCO) present.\n");
197 }
198 printf("\n");
199 }
200
201 for(element_disk=list_disk;element_disk!=NULL;element_disk=element_disk->next)
202 {

Callers 1

mainFunction · 0.85

Calls 8

hd_parseFunction · 0.85
new_diskcacheFunction · 0.85
hd_update_all_geometryFunction · 0.85
is_hpa_or_dcoFunction · 0.85
autodetect_archFunction · 0.85
autoset_unitFunction · 0.85
interface_listFunction · 0.85
delete_list_diskFunction · 0.85

Tested by

no test coverage detected