cmd_bmp.c: added standard subcommand handling
PATCH 1/1 cmd_bmp.c: added standard subcommand handling
Signed-off-by Frans Meulenbroeks <[email protected]>
--- common/cmd_bmp.c | 81 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 56 insertions(+), 25 deletions(-)
common/cmd_bmp.c +56 -25
@@ -90,46 +90,77 @@ bmp_image_t *gunzip_bmp(unsigned long addr, unsigned long *lenp) }#endif +static int do_bmp_info (cmd_tbl_t * cmdtp,int flag,int argc,char *argv[]) +{ +ulong addr; -/* -* Subroutine: do_bmp -* -* Description: Handler for 'bmp' command.. -* -* Inputs: argv[1] contains the subcommand -* -* Return: None -* -*/ -int do_bmp (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) +switch (argc) { +case 1 :/* use load_addr as default address */ + addr = load_addr; +break ; +case 2 :/* use argument */ + addr =simple_strtoul (argv[1 ],NULL ,16 ); +break ; +default : +cmd_usage (cmdtp); +return 1 ; + } + +return (bmp_info (addr)); +} + +static int do_bmp_display (cmd_tbl_t * cmdtp,int flag,int argc,char *argv[]) {ulong addr;int x =0 , y =0 ;switch (argc) { -case 2 :/* use load_addr as default address */ +case 1 :/* use load_addr as default address */ addr = load_addr;break ; -case 3 :/* use argument */ - addr =simple_strtoul (argv[2 ],NULL ,16 ); +case 2 :/* use argument */ + addr =simple_strtoul (argv[1 ],NULL ,16 );break ; -case 5 : - addr =simple_strtoul (argv[2 ],NULL ,16 ); - x =simple_strtoul (argv[3 ],NULL ,10 ); - y =simple_strtoul (argv[4 ],NULL ,10 ); +case 4 : + addr =simple_strtoul (argv[1 ],NULL ,16 ); + x =simple_strtoul (argv[2 ],NULL ,10 ); + y =simple_strtoul (argv[3 ],NULL ,10 );break ;default :cmd_usage (cmdtp);return 1 ; } -/* Allow for short names -* Adjust length if more sub-commands get added -*/ -if (strncmp (argv[1 ],"info" ,1 ) ==0 ) { -return (bmp_info (addr)); - }else if (strncmp (argv[1 ],"display" ,1 ) ==0 ) { -return (bmp_display (addr, x, y)); +return (bmp_display (addr, x, y)); +} + +static cmd_tbl_t cmd_bmp_sub[] = { +U_BOOT_CMD_MKENT (info,3 ,0 , do_bmp_info,"" ,"" ), +U_BOOT_CMD_MKENT (display,5 ,0 , do_bmp_display,"" ,"" ), +}; + +/* +* Subroutine: do_bmp +* +* Description: Handler for 'bmp' command.. +* +* Inputs: argv[1] contains the subcommand +* +* Return: None +* +*/ +static int do_bmp (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) +{ +cmd_tbl_t *c; + +/* Strip off leading 'bmp' command argument */ + argc--; + argv++; + + c =find_cmd_tbl (argv[0 ], &cmd_bmp_sub[0 ],ARRAY_SIZE (cmd_bmp_sub)); + +if (c) { +return c->cmd (cmdtp, flag, argc, argv); }else {cmd_usage (cmdtp);return 1 ;
Signature · 1 line
1.6.4.2
PATCH 1/1 cmd_bmp.c: added standard subcommand handling
Hi Frans,
Quoted 1 line
Signed-off-by Frans Meulenbroeks <[email protected]>
Looks good, so
Acked-by Detlev Zundel <[email protected]>
Cheers
Detlev
Signature · 6 lines
Restrict Digital Restrictions Management: If you can't copy it - don't buy it -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de
Wolfgang Denk
AppliedPATCH 1/1 cmd_bmp.c: added standard subcommand handling
In reply to Frans MeulenbroeksDear Frans Meulenbroeks,
Quoted 4 lines · In message <[email protected]> you…
Signed-off-by Frans Meulenbroeks <[email protected]>--- common/cmd_bmp.c | 81 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 56 insertions(+), 25 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de The man on tops walks a lonely street; the "chain" of command is often a noose.