aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/modem-image-tool.c54
1 files changed, 40 insertions, 14 deletions
diff --git a/tools/modem-image-tool.c b/tools/modem-image-tool.c
index e9b5edd..4d30a7f 100644
--- a/tools/modem-image-tool.c
+++ b/tools/modem-image-tool.c
@@ -52,19 +52,6 @@ static struct toc_part_info gt_i9300[] = {
{"NV", I9300_NV_DATA_OFFSET, 0, I9300_NV_DATA_SIZE, 0, 0},
};
-static void print_toc_part_info(struct toc_part_info* toc_part_info)
-{
- char name[13];
-
- memcpy(&name, toc_part_info->name, sizeof(toc_part_info->name));
- name[12] = '\0';
-
- printf("%s 0x%x [0x%x]\n",
- name,
- le32toh(toc_part_info->offset),
- le32toh(toc_part_info->size));
-}
-
static int part_info_cmp(struct toc_part_info* toc_part_info1,
struct toc_part_info* toc_part_info2)
{
@@ -117,14 +104,53 @@ int main(int argc, char* argv[])
return -1;
}
+ size_t name_max_len = 0;
+ for(pnum = 0;pnum < 10;pnum++){
+ char* toc_part_info_buffer = buffer +
+ pnum * sizeof(struct toc_part_info);
+ char name[13];
+
+ if (toc_part_info_buffer[0] == '\0') {
+ break;
+ }
+
+ toc_part_info = (struct toc_part_info*) toc_part_info_buffer;
+
+ memcpy(&name, toc_part_info->name, sizeof(toc_part_info->name));
+ name[12] = '\0';
+
+ if (strlen(name) > name_max_len)
+ name_max_len = strlen(name);
+
+ }
+
for(pnum = 0;pnum < 10;pnum++){
char* toc_part_info_buffer = buffer +
pnum * sizeof(struct toc_part_info);
+ char name[13];
+ size_t i = 0;
+
if (toc_part_info_buffer[0] == '\0') {
break;
}
toc_part_info = (struct toc_part_info*) toc_part_info_buffer;
- print_toc_part_info(toc_part_info);
+
+ memcpy(&name, toc_part_info->name, sizeof(toc_part_info->name));
+ name[12] = '\0';
+
+ /* Alignement */
+ printf("%s: ", name);
+ for (i=0 ; i < (name_max_len - strlen(name)) ; i++)
+ printf(" ");
+
+ printf("offset: 0x%x,",le32toh(toc_part_info->offset));
+
+ printf("loadaddr: 0x%x, size: 0x%x, crc: 0x%x, entryid: 0x%x\n",
+ le32toh(toc_part_info->loadaddr),
+ le32toh(toc_part_info->size),
+ le32toh(toc_part_info->crc),
+ le32toh(toc_part_info->entryid));
+
part_info_cmp(toc_part_info, &(gt_i9300[pnum]));
}