static int info_cmd(int argc, char *argv[]) { image_t *image; uint64_t image_offset; uint64_t image_size = 0; fip_toc_header_t toc_header; int i; if (argc != 2) info_usage(); argc--, argv++; parse_fip(argv[0], &toc_header); if (verbose) { log_dbgx("toc_header[name]: 0x%llX", (unsigned long long)toc_header.name); log_dbgx("toc_header[serial_number]: 0x%llX", (unsigned long long)toc_header.serial_number); log_dbgx("toc_header[flags]: 0x%llX", (unsigned long long)toc_header.flags); } image_offset = sizeof(fip_toc_header_t) + (sizeof(fip_toc_entry_t) * (nr_images + 1)); for (i = 0; i < nr_images; i++) { toc_entry_t *toc_entry; image = images[i]; toc_entry = lookup_entry_from_uuid(&image->uuid); if (toc_entry != NULL) printf("%s: ", toc_entry->name); else printf("Unknown entry: "); image_size = image->size; printf("offset=0x%llX, size=0x%llX", (unsigned long long)image_offset, (unsigned long long)image_size); if (toc_entry != NULL) printf(", cmdline=\"--%s\"", toc_entry->cmdline_name); if (verbose) { unsigned char md[SHA256_DIGEST_LENGTH]; SHA256(image->buffer, image_size, md); printf(", sha256="); md_print(md, sizeof(md)); } putchar('\n'); image_offset += image_size; } free_images(); return 0; }
static int info_cmd(int argc, char *argv[]) { image_desc_t *desc; fip_toc_header_t toc_header; if (argc != 2) info_usage(); argc--, argv++; parse_fip(argv[0], &toc_header); if (verbose) { log_dbgx("toc_header[name]: 0x%llX", (unsigned long long)toc_header.name); log_dbgx("toc_header[serial_number]: 0x%llX", (unsigned long long)toc_header.serial_number); log_dbgx("toc_header[flags]: 0x%llX", (unsigned long long)toc_header.flags); } for (desc = image_desc_head; desc != NULL; desc = desc->next) { image_t *image = desc->image; if (image == NULL) continue; printf("%s: offset=0x%llX, size=0x%llX, cmdline=\"--%s\"", desc->name, (unsigned long long)image->toc_e.offset_address, (unsigned long long)image->toc_e.size, desc->cmdline_name); #ifndef _MSC_VER /* We don't have SHA256 for Visual Studio. */ if (verbose) { unsigned char md[SHA256_DIGEST_LENGTH]; SHA256(image->buffer, image->toc_e.size, md); printf(", sha256="); md_print(md, sizeof(md)); } #endif putchar('\n'); } return 0; }