diff options
author | Amaury Pouly <pamaury@rockbox.org> | 2011-07-24 19:12:18 +0000 |
---|---|---|
committer | Amaury Pouly <pamaury@rockbox.org> | 2011-07-24 19:12:18 +0000 |
commit | de138033527908aab0b49950707a5eedec4e924d (patch) | |
tree | ac1b2df2ad7ab44075db89c178792281d36bca7a /utils/sbtools/sbtoelf.c | |
parent | 0157c624180a27c8109c93d182ed360920d43909 (diff) | |
download | rockbox-de138033527908aab0b49950707a5eedec4e924d.tar.gz rockbox-de138033527908aab0b49950707a5eedec4e924d.zip |
sbtools: fix version output, add support for options section and product/component versions in command files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30205 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/sbtools/sbtoelf.c')
-rw-r--r-- | utils/sbtools/sbtoelf.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/utils/sbtools/sbtoelf.c b/utils/sbtools/sbtoelf.c index f421f83848..d729357a56 100644 --- a/utils/sbtools/sbtoelf.c +++ b/utils/sbtools/sbtoelf.c | |||
@@ -339,7 +339,7 @@ static void extract_section(int data_sec, char name[5], byte *buf, int size, con | |||
339 | elf_release(&elf); | 339 | elf_release(&elf); |
340 | } | 340 | } |
341 | 341 | ||
342 | void fill_section_name(char name[5], uint32_t identifier) | 342 | static void fill_section_name(char name[5], uint32_t identifier) |
343 | { | 343 | { |
344 | name[0] = (identifier >> 24) & 0xff; | 344 | name[0] = (identifier >> 24) & 0xff; |
345 | name[1] = (identifier >> 16) & 0xff; | 345 | name[1] = (identifier >> 16) & 0xff; |
@@ -351,6 +351,18 @@ void fill_section_name(char name[5], uint32_t identifier) | |||
351 | name[4] = 0; | 351 | name[4] = 0; |
352 | } | 352 | } |
353 | 353 | ||
354 | static uint16_t swap16(uint16_t t) | ||
355 | { | ||
356 | return (t << 8) | (t >> 8); | ||
357 | } | ||
358 | |||
359 | static void fix_version(struct sb_version_t *ver) | ||
360 | { | ||
361 | ver->major = swap16(ver->major); | ||
362 | ver->minor = swap16(ver->minor); | ||
363 | ver->revision = swap16(ver->revision); | ||
364 | } | ||
365 | |||
354 | static void extract(unsigned long filesize) | 366 | static void extract(unsigned long filesize) |
355 | { | 367 | { |
356 | struct sha_1_params_t sha_1_params; | 368 | struct sha_1_params_t sha_1_params; |
@@ -433,16 +445,19 @@ static void extract(unsigned long filesize) | |||
433 | color(YELLOW); | 445 | color(YELLOW); |
434 | printf("%s", asctime(time)); | 446 | printf("%s", asctime(time)); |
435 | 447 | ||
448 | struct sb_version_t product_ver = sb_header->product_ver; | ||
449 | fix_version(&product_ver); | ||
450 | struct sb_version_t component_ver = sb_header->component_ver; | ||
451 | fix_version(&component_ver); | ||
452 | |||
436 | color(GREEN); | 453 | color(GREEN); |
437 | printf(" Product version = "); | 454 | printf(" Product version = "); |
438 | color(YELLOW); | 455 | color(YELLOW); |
439 | printf("%X.%X.%X\n", sb_header->product_ver.major, | 456 | printf("%X.%X.%X\n", product_ver.major, product_ver.minor, product_ver.revision); |
440 | sb_header->product_ver.minor, sb_header->product_ver.revision); | ||
441 | color(GREEN); | 457 | color(GREEN); |
442 | printf(" Component version = "); | 458 | printf(" Component version = "); |
443 | color(YELLOW); | 459 | color(YELLOW); |
444 | printf("%X.%X.%X\n", sb_header->component_ver.major, | 460 | printf("%X.%X.%X\n", component_ver.major, component_ver.minor, component_ver.revision); |
445 | sb_header->component_ver.minor, sb_header->component_ver.revision); | ||
446 | 461 | ||
447 | color(GREEN); | 462 | color(GREEN); |
448 | printf(" Drive tag = "); | 463 | printf(" Drive tag = "); |