| 143 | } |
| 144 | |
| 145 | static 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 | { |
no test coverage detected