diff options
author | David Gibson <dgibson@sneetch.(none)> | 2005-10-24 18:18:38 +1000 |
---|---|---|
committer | David Gibson <dgibson@sneetch.(none)> | 2005-10-24 18:18:38 +1000 |
commit | f040d95b847c4f7d1fa4c3c6309127b8c1ffd8b3 (patch) | |
tree | 1497120f8b1672cc44c203ff0653d1c3de6cb784 /treesource.c | |
parent | fccb194a1451d97a373fc4ab2d66aa985c78b48d (diff) | |
download | dtc-f040d95b847c4f7d1fa4c3c6309127b8c1ffd8b3.tar.gz |
Rework tracking of reserve entries during processing. This is initial work
to allow more powerful handling of reserve entries.
Diffstat (limited to 'treesource.c')
-rw-r--r-- | treesource.c | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/treesource.c b/treesource.c index a568bf7..45c039e 100644 --- a/treesource.c +++ b/treesource.c @@ -26,18 +26,6 @@ extern void yyerror(char const *); struct boot_info *the_boot_info; -struct data build_mem_reserve(struct data d) -{ - /* - * FIXME: Should reconcile the -R parameter here now? - */ - if (d.len % 16 != 0) { - yyerror("Memory Reserve entries are <u64 addr, u64 size>\n"); - } - return d; -} - - struct boot_info *dt_from_source(FILE *f) { the_boot_info = NULL; @@ -158,19 +146,12 @@ static void write_tree_source_node(FILE *f, struct node *tree, int level) void write_tree_source(FILE *f, struct boot_info *bi) { - int i; - - assert((bi->mem_reserve_data.len % sizeof(struct reserve_entry)) == 0); - for (i = 0; - i < (bi->mem_reserve_data.len / sizeof(struct reserve_entry)); - i++) { - struct reserve_entry *re = ((struct reserve_entry *) - bi->mem_reserve_data.val) + i; + struct reserve_info *re; + for (re = bi->reservelist; re; re = re->next) { fprintf(f, "/memreserve/\t%016llx-%016llx;\n", - (unsigned long long)be64_to_cpu(re->address), - (unsigned long long)(be64_to_cpu(re->address) - + be64_to_cpu(re->size) - 1)); + (unsigned long long)re->re.address, + (unsigned long long)(re->re.address + re->re.size - 1)); } write_tree_source_node(f, bi->dt, 0); |