@ @ requires \valid(disk); @ requires valid_disk(disk); @ requires \valid_read(partition); @ requires valid_partition(partition); @ requires \separated(disk, partition); @ decreases 0; @*/
| 961 | @ decreases 0; |
| 962 | @*/ |
| 963 | static int fat_has_EFI_entry(disk_t *disk, const partition_t *partition, const int verbose) |
| 964 | { |
| 965 | #ifndef DISABLED_FOR_FRAMAC |
| 966 | dir_data_t dir_data; |
| 967 | struct td_list_head *file_walker = NULL; |
| 968 | file_info_t dir_list; |
| 969 | const dir_partition_t res=dir_partition_fat_init(disk, partition, &dir_data, verbose); |
| 970 | if(res!=DIR_PART_OK) |
| 971 | return 0; |
| 972 | TD_INIT_LIST_HEAD(&dir_list.list); |
| 973 | dir_data.get_dir(disk, partition, &dir_data, 0, &dir_list); |
| 974 | td_list_for_each(file_walker, &dir_list.list) |
| 975 | { |
| 976 | const file_info_t *current_file=td_list_entry_const(file_walker, const file_info_t, list); |
| 977 | if(strcmp(current_file->name, "EFI")==0) |
| 978 | { |
| 979 | delete_list_file(&dir_list); |
| 980 | dir_data.close(&dir_data); |
| 981 | return 1; |
| 982 | } |
| 983 | } |
| 984 | delete_list_file(&dir_list); |
| 985 | dir_data.close(&dir_data); |
| 986 | #endif |
| 987 | return 0; |
| 988 | } |
| 989 | |
| 990 | int recover_FAT(disk_t *disk_car, const struct fat_boot_sector*fat_header, partition_t *partition, const int verbose, const int dump_ind, const int backup) |
| 991 | { |
no test coverage detected