
Dear Wolfgang Wegner,
In message 1256916625-30792-1-git-send-email-w.wegner@astro-kom.de you wrote:
imxtract currently can not handle compressed images. This patch adds handling for bzip2 and zip compression. In both cases, a destination address has to be specified for extraction.
Signed-off-by: Wolfgang Wegner w.wegner@astro-kom.de
...
+/* there is no prototype in zlib.h */ +int gunzip (void *, int, unsigned char *, unsigned long *);
Then we should add it there, once.
+#ifndef CFG_XIMG_LEN +#define CFG_XIMG_LEN 0x800000 /* use 8MByte as default max gunzip size */ +#endif
CFG_ has been deprectaed a long, long time ago. Please use CONFIG_SYS_ instead.
printf("Wrong Compression Type for %s command\n",
comp = image_get_comp (hdr);
if ((comp != IH_COMP_NONE) && (argc < 4)) {
printf("Must specify load address for %s command with compressed image\n",
Line too long. (Check globally).
if (argc > 3) {
memcpy((char *) dest, (char *) data, len);
switch (comp) {
case IH_COMP_NONE:
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
{
size_t l = len;
void *to = (void *) dest;
void *from = (void *)data;
printf (" Loading part %d ... ", part);
while (l > 0) {
size_t tail = (l > CHUNKSZ) ? CHUNKSZ : l;
WATCHDOG_RESET();
memmove (to, from, tail);
to += tail;
from += tail;
l -= tail;
}
}
+#else /* !(CONFIG_HW_WATCHDOG || CONFIG_WATCHDOG) */
memmove ((char *) dest, (char *)data, len);
+#endif /* CONFIG_HW_WATCHDOG || CONFIG_WATCHDOG */
It seems wrong to me to have inconsistent behaviour (with printf() in the "if", without in the "else" branch).
case IH_COMP_GZIP:
printf (" Uncompressing part %d (len %d) ... ", part, len);
...
+#if defined(CONFIG_BZIP2)
case IH_COMP_BZIP2:
printf (" Uncompressing part %d ... ", part);
Inconsistent behaviour. Why do we print "len" for IH_COMP_GZIP, but not for IH_COMP_BZIP2 ?
Best regards,
Wolfgang Denk