On Fri, Dec 05, 2008 at 04:19:49AM -0000, coreboot wrote:
> #107: flashrom: Display test status in -L chip listing
> ----------------------------------+-----------------------------------------
>    Reporter:  stuge               |          Owner:  stuge        
>        Type:  enhancement         |         Status:  assigned     
>    Priority:  minor               |      Milestone:  flashrom v1.0
>   Component:  flashrom            |        Version:               
>    Keywords:  testing             |   Dependencies:               
> Patchstatus:  patch needs review  |  
> ----------------------------------+-----------------------------------------
> Changes (by stuge):
> 
>   * owner:  somebody => stuge
>   * status:  new => assigned
>   * patchstatus:  there is no patch => patch needs review



> flashrom: Display test status in -L chip listing
> 
> Looks like this:
> 
> Supported flash chips:          Tested OK operations:   Known BAD operations:
> 
> AMD Am29F002(N)BB                                       
> AMD Am29F002(N)BT               PROBE READ ERASE WRITE  
> AMD Am29F016D                                           
> AMD Am29F040B                   PROBE READ ERASE WRITE  
> AMD Am29LV040B                                          
> Atmel AT45CS1282                                        READ 
> 
> 
> Signed-off-by: Peter Stuge <[EMAIL PROTECTED]>

With the small change below this is

Acked-by: Uwe Hermann <[EMAIL PROTECTED]>


The output looks nice, patch compiles and works fine.

Please post patches to the list though, trac doesn't automatically
forward them to the list -> harder and more annoying to review, IMO.

 
> Index: flashrom.c
> ===================================================================
> --- flashrom.c        (revision 3797)
> +++ flashrom.c        (working copy)
> @@ -205,14 +205,61 @@
>       return 0;
>  }
>  
> +#define MAX(a,b) ((a)>(b)?(a):(b))
                ^       ^^  ^^  ^^
             lots of missing spaces here


> +#define POS_PRINT(x) do { pos += strlen(x); printf(x); } while (0)
> +
>  void print_supported_chips(void)
>  {
> -     int i;
> +     int okcol = 0, pos = 0;
> +     struct flashchip *f;
>  
> -     printf("Supported ROM chips:\n\n");
> +     for (f = flashchips; f->name != NULL; f++) {
> +             if (GENERIC_DEVICE_ID == f->model_id)
> +                     continue;
> +             okcol = MAX(okcol, strlen(f->vendor) + 1 + strlen(f->name));
> +     }
> +     okcol = (okcol + 7) & ~7;
>  
> -     for (i = 0; flashchips[i].name != NULL; i++)
> -             printf("%s %s\n", flashchips[i].vendor, flashchips[i].name);
> +     POS_PRINT("Supported flash chips:");
> +     while (pos < okcol) {
> +             printf("\t");
> +             pos += 8 - (pos % 8);
> +     }
> +     printf("Tested OK operations:\tKnown BAD operations:\n\n");
> +
> +     for (f = flashchips; f->name != NULL; f++) {
> +             printf("%s %s", f->vendor, f->name);
> +             pos = strlen(f->vendor) + 1 + strlen(f->name);
> +             while (pos < okcol) {
> +                     printf("\t");
> +                     pos += 8 - (pos % 8);
> +             }
> +             if ((f->tested & TEST_OK_MASK)) {
> +                     if ((f->tested & TEST_OK_PROBE))
> +                             POS_PRINT("PROBE ");
> +                     if ((f->tested & TEST_OK_READ))
> +                             POS_PRINT("READ ");
> +                     if ((f->tested & TEST_OK_ERASE))
> +                             POS_PRINT("ERASE ");
> +                     if ((f->tested & TEST_OK_WRITE))
> +                             POS_PRINT("WRITE");
> +             }
> +             while (pos < okcol + 24) {
> +                     printf("\t");
> +                     pos += 8 - (pos % 8);
> +             }
> +             if ((f->tested & TEST_BAD_MASK)) {
> +                     if ((f->tested & TEST_BAD_PROBE))
> +                             POS_PRINT("PROBE ");
> +                     if ((f->tested & TEST_BAD_READ))
> +                             POS_PRINT("READ ");
> +                     if ((f->tested & TEST_BAD_ERASE))
> +                             POS_PRINT("ERASE ");
> +                     if ((f->tested & TEST_BAD_WRITE))
> +                             POS_PRINT("WRITE");
> +             }
> +             printf("\n");
> +     }
>  }
>  
>  void usage(const char *name)


Uwe.
-- 
http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org

--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to