Author: stefanct Date: Sun Dec 25 10:07:59 2011 New Revision: 1481 URL: http://flashrom.org/trac/flashrom/changeset/1481
Log: layout: change return type and name of find_next_included_romentry
- rename from find_next_included_romentry to get_next_included_romentry - return a pointer to a rom_entry instead of just its index. this relieves the (single existing) caller from directly accessing the data structure holding the entries hence improving segregation and readability.
Signed-off-by: Stefan Tauner stefan.tauner@student.tuwien.ac.at Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Modified: trunk/layout.c
Modified: trunk/layout.c ============================================================================== --- trunk/layout.c Sat Dec 24 01:00:32 2011 (r1480) +++ trunk/layout.c Sun Dec 25 10:07:59 2011 (r1481) @@ -215,26 +215,28 @@ return -1; }
-int find_next_included_romentry(unsigned int start) +romlayout_t *get_next_included_romentry(unsigned int start) { int i; unsigned int best_start = UINT_MAX; - int best_entry = -1; + romlayout_t *best_entry = NULL; + romlayout_t *cur;
/* First come, first serve for overlapping regions. */ for (i = 0; i < romimages; i++) { - if (!rom_entries[i].included) + cur = &rom_entries[i]; + if (!cur->included) continue; /* Already past the current entry? */ - if (start > rom_entries[i].end) + if (start > cur->end) continue; /* Inside the current entry? */ - if (start >= rom_entries[i].start) - return i; + if (start >= cur->start) + return cur; /* Entry begins after start. */ - if (best_start > rom_entries[i].start) { - best_start = rom_entries[i].start; - best_entry = i; + if (best_start > cur->start) { + best_start = cur->start; + best_entry = cur; } } return best_entry; @@ -243,7 +245,7 @@ int handle_romentries(struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents) { unsigned int start = 0; - int entry; + romlayout_t *entry; unsigned int size = flash->total_size * 1024;
/* If no layout file was specified or the layout file was empty, assume @@ -255,22 +257,21 @@ * The union of all included romentries is used from the new image. */ while (start < size) { - entry = find_next_included_romentry(start); + entry = get_next_included_romentry(start); /* No more romentries for remaining region? */ - if (entry < 0) { + if (!entry) { memcpy(newcontents + start, oldcontents + start, size - start); break; } - if (rom_entries[entry].start > start) + if (entry->start > start) memcpy(newcontents + start, oldcontents + start, - rom_entries[entry].start - start); + entry->start - start); /* Skip to location after current romentry. */ - start = rom_entries[entry].end + 1; + start = entry->end + 1; /* Catch overflow. */ if (!start) break; } - return 0; }