[U-Boot] [PATCH 2/2] Add unlzo command

Joe Hershberger joe.hershberger at gmail.com
Tue Sep 18 23:25:13 CEST 2012


Hi Mike,

On Fri, Aug 17, 2012 at 6:26 PM, Mike Frysinger <vapier at gentoo.org> wrote:
> On Friday 17 August 2012 16:59:44 Joe Hershberger wrote:
>> --- a/common/Makefile
>> +++ b/common/Makefile
>>
>>  ifdef CONFIG_LZMA
>>  COBJS-$(CONFIG_CMD_UNLZMA) += cmd_unlzma.o
>>  endif
>> +ifdef CONFIG_LZO
>> +COBJS-$(CONFIG_CMD_UNLZO) += cmd_unlzo.o
>> +endif
>
> imo, these ifdefs shouldn't exist.  the commands shouldn't get silently
> ignored because someone omitted an option.  add an #ifdef check to the .c file
> and have it #error out if the necessary config options aren't defined.

OK

>> --- /dev/null
>> +++ b/common/cmd_unlzo.c
>>
>> +int do_unlzo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
>
> static

OK

>> +     ret = lzop_decompress((void *)src, src_len, (void *)dst, &dst_len);
>> +     if (ret != LZO_E_OK) {
>> +             printf("unlzo: uncompress or overwrite error %d\n", ret);
>> +             return -1;
>
> how about returning ret ?

OK

>> +     sprintf(buf, "%lX", (unsigned long) dst_len);
>> +     setenv("filesize", buf);
>
> setenv_ulong() ?

OK

>> +U_BOOT_CMD(
>> +     unlzo,  5,      1,      do_unlzo,
>> +     "unlzo a memory region",
>> +     "srcaddr srcsize dstaddr [dstsize]"
>> +);
>
> isn't there a way you could "stream" this so you don't need the srcsize ?  or
> does the lzop API not support that ?

The lzo API uses the source size to check if the input is complete at
the end of the file.  I could pass in ~0 optionally and it would stop
at the end.  (It's not as clear how unlzma will handle it.)

So it would look like "unlzo srcaddr dstaddr [dstsize]"

Thanks,
-Joe


More information about the U-Boot mailing list