Mercurial > nand-ecoscentric
diff packages/redboot/current/src/flash.c @ 2007:adbedd54ee7b
* src/flash.c (find_free): Maintain sort order when splitting
chunks.
| author | asl |
|---|---|
| date | Wed, 29 Jun 2005 19:41:46 +0000 |
| parents | 20fee0cef763 |
| children | ef1d669d4888 |
line wrap: on
line diff
--- a/packages/redboot/current/src/flash.c +++ b/packages/redboot/current/src/flash.c @@ -591,8 +591,12 @@ find_free(struct free_chunk *chunks) } else { // Split chunk into two parts if ((img->flash_base+img->size) < (CYG_ADDRESS)fis_end) { - chunks[num_chunks].start = img->flash_base + img->size; - chunks[num_chunks].end = chunks[idx].end; + int j; + // make room for new chunk + for (j = num_chunks; j > (idx+1); j--) + chunks[j] = chunks[j-1]; + chunks[idx+1].start = img->flash_base + img->size; + chunks[idx+1].end = chunks[idx].end; if (++num_chunks == CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS) { diag_printf("Warning: too many free chunks\n"); return num_chunks;
