Christopher Douglass (cdouglass.orion@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5313
-gerrit
commit 7bcb01d803c514166b28080dae3fddb2d19c14d0 Author: Chris Douglass cdouglass.orion@gmail.com Date: Fri Feb 28 08:54:41 2014 -0500
util/ifdtool: cleanup some magic numbers
There are five firmware regions that are (currently) defined. This was assumed throughout the ifdtool code with many literal 4s and 5a. This patch changes them to refer to a new #define NUM_REGIONS.
Change-Id: I523d3763942f875025ebc4b9ba8b2ccf1db5b2f5 Signed-off-by: Christopher Douglass cdouglass.orion@gmail.com --- util/ifdtool/ifdtool.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/util/ifdtool/ifdtool.c b/util/ifdtool/ifdtool.c index 28dbaac..0425b1c 100644 --- a/util/ifdtool/ifdtool.c +++ b/util/ifdtool/ifdtool.c @@ -27,7 +27,9 @@ #include <sys/stat.h> #include "ifdtool.h"
-static const struct region_name region_names[5] = { +#define NUM_REGIONS 5 + +static const struct region_name region_names[NUM_REGIONS] = { { "Flash Descriptor", "fd" }, { "BIOS", "bios" }, { "Intel ME", "me" }, @@ -126,7 +128,7 @@ static void set_region(frba_t *frba, int region_type, region_t region)
static const char *region_name(int region_type) { - if (region_type < 0 || region_type > 4) { + if (region_type < 0 || region_type >= NUM_REGIONS) { fprintf(stderr, "Invalid region type.\n"); exit (EXIT_FAILURE); } @@ -136,7 +138,7 @@ static const char *region_name(int region_type)
static const char *region_name_short(int region_type) { - if (region_type < 0 || region_type > 4) { + if (region_type < 0 || region_type >= NUM_REGIONS) { fprintf(stderr, "Invalid region type.\n"); exit (EXIT_FAILURE); } @@ -148,7 +150,7 @@ static int region_num(const char *name) { int i;
- for (i = 0; i < 5; i++) { + for (i = 0; i < NUM_REGIONS; i++) { if (strcasecmp(name, region_names[i].pretty) == 0) return i; if (strcasecmp(name, region_names[i].terse) == 0) @@ -160,7 +162,7 @@ static int region_num(const char *name)
static const char *region_filename(int region_type) { - static const char *region_filenames[5] = { + static const char *region_filenames[NUM_REGIONS] = { "flashregion_0_flashdescriptor.bin", "flashregion_1_bios.bin", "flashregion_2_intel_me.bin", @@ -168,7 +170,7 @@ static const char *region_filename(int region_type) "flashregion_4_platform_data.bin" };
- if (region_type < 0 || region_type > 4) { + if (region_type < 0 || region_type >= NUM_REGIONS) { fprintf(stderr, "Invalid region type.\n"); exit (EXIT_FAILURE); } @@ -219,7 +221,7 @@ static void dump_frba_layout(frba_t * frba, char *layout_fname) exit(EXIT_FAILURE); }
- for (i = 0; i <= 4; i++) { + for (i = 0; i < NUM_REGIONS; i++) { dump_region_layout(buf, bufsize, i, frba); if (write(layout_fd, buf, strlen(buf)) < 0) { perror("Could not write to file"); @@ -530,7 +532,7 @@ static void write_regions(char *image, int size) frba_t *frba = (frba_t *) (image + (((fdb->flmap0 >> 16) & 0xff) << 4));
- for (i = 0; i<5; i++) { + for (i = 0; i < NUM_REGIONS; i++) { region_t region = get_region(frba, i); dump_region(i, frba); if (region.size > 0) { @@ -721,8 +723,8 @@ void new_layout(char *filename, char *image, int size, char *layout_fname) char layout_region_name[256]; int i, j; int region_number; - region_t current_regions[5]; - region_t new_regions[5]; + region_t current_regions[NUM_REGIONS]; + region_t new_regions[NUM_REGIONS]; int new_extent = 0; char *new_image;
@@ -734,7 +736,7 @@ void new_layout(char *filename, char *image, int size, char *layout_fname) frba_t *frba = (frba_t *) (image + (((fdb->flmap0 >> 16) & 0xff) << 4));
- for (i = 0; i < 5; i++) { + for (i = 0; i < NUM_REGIONS; i++) { current_regions[i] = get_region(frba, i); new_regions[i] = get_region(frba, i); } @@ -778,7 +780,7 @@ void new_layout(char *filename, char *image, int size, char *layout_fname) fclose(romlayout);
/* check new layout */ - for (i = 0; i < 5; i++) { + for (i = 0; i < NUM_REGIONS; i++) { if (new_regions[i].size == 0) continue;
@@ -789,7 +791,7 @@ void new_layout(char *filename, char *image, int size, char *layout_fname) printf(" This may result in an unusable image.\n"); }
- for (j = i + 1; j < 5; j++) { + for (j = i + 1; j < NUM_REGIONS; j++) { if (regions_collide(new_regions[i], new_regions[j])) { fprintf(stderr, "Regions would overlap.\n"); exit(EXIT_FAILURE); @@ -811,7 +813,7 @@ void new_layout(char *filename, char *image, int size, char *layout_fname) /* copy regions to a new image */ new_image = malloc(new_extent); memset(new_image, 0xff, new_extent); - for (i = 0; i < 5; i++) { + for (i = 0; i < NUM_REGIONS; i++) { int copy_size = new_regions[i].size; int offset_current = 0, offset_new = 0; region_t current = current_regions[i]; @@ -849,7 +851,7 @@ void new_layout(char *filename, char *image, int size, char *layout_fname) exit(EXIT_FAILURE);
frba = (frba_t *) (new_image + (((fdb->flmap0 >> 16) & 0xff) << 4)); - for (i = 1; i < 5; i++) { + for (i = 1; i < NUM_REGIONS; i++) { set_region(frba, i, new_regions[i]); }