X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/05a1b863a66bf72b26e5d87570c4e0e61b9736cd..2185556dfd49db4160820fee86aac9dcae062a97:/VtoyTool/vtoydm.c diff --git a/VtoyTool/vtoydm.c b/VtoyTool/vtoydm.c index d45050c..ec0cb95 100644 --- a/VtoyTool/vtoydm.c +++ b/VtoyTool/vtoydm.c @@ -486,8 +486,8 @@ static int vtoydm_print_linear_table(const char *img_map_file, const char *diskn { int i; int len; + uint32_t disk_sector_num; uint32_t sector_start; - uint32_t sector_num; ventoy_img_chunk *chunk = NULL; chunk = vtoydm_get_img_map_data(img_map_file, &len); @@ -499,11 +499,27 @@ static int vtoydm_print_linear_table(const char *img_map_file, const char *diskn for (i = 0; i < len / sizeof(ventoy_img_chunk); i++) { sector_start = chunk[i].img_start_sector; - sector_num = chunk[i].img_end_sector - chunk[i].img_start_sector + 1; - + disk_sector_num = (uint32_t)(chunk[i].disk_end_sector + 1 - chunk[i].disk_start_sector); + + /* TBD: to be more flexible */ + #if 0 printf("%u %u linear %s %llu\n", - (sector_start << 2), (sector_num << 2), + (sector_start << 2), disk_sector_num, diskname, (unsigned long long)chunk[i].disk_start_sector); + #else + if (strstr(diskname, "nvme") || strstr(diskname, "mmc")) + { + printf("%u %u linear %sp1 %llu\n", + (sector_start << 2), disk_sector_num, + diskname, (unsigned long long)chunk[i].disk_start_sector - 2048); + } + else + { + printf("%u %u linear %s1 %llu\n", + (sector_start << 2), disk_sector_num, + diskname, (unsigned long long)chunk[i].disk_start_sector - 2048); + } + #endif } free(chunk);