aboutsummaryrefslogtreecommitdiffstats
path: root/tools/modem-image-tool.c
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-10-06 18:12:10 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-10-06 18:13:51 +0200
commita1efc754c62dbddfe4a1af4d89c68391f2a51cfe (patch)
treeb414246de246aaeb80dc66d8c13fe7e99def2b1b /tools/modem-image-tool.c
parent069326bb123ca4633a3261599736cf33150c05f6 (diff)
downloadhardware_replicant_libsamsung-ipc-patches-todo/modem-firwmare-toc.tar.gz
hardware_replicant_libsamsung-ipc-patches-todo/modem-firwmare-toc.tar.bz2
hardware_replicant_libsamsung-ipc-patches-todo/modem-firwmare-toc.zip
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'tools/modem-image-tool.c')
-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]));
}