
Hi Simon,
On Mon, Jun 15, 2020 at 11:57 AM Simon Glass sjg@chromium.org wrote:
At present we can only read from a top-level binman node entry. Refactor this function to produce a second local function which supports reading from any node.
Signed-off-by: Simon Glass sjg@chromium.org
lib/binman.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/lib/binman.c b/lib/binman.c index dc3a880882..79d01230dd 100644 --- a/lib/binman.c +++ b/lib/binman.c @@ -29,25 +29,31 @@ struct binman_info {
static struct binman_info *binman;
-int binman_entry_find(const char *name, struct binman_entry *entry) +int binman_entry_find_(ofnode node, const char *name, struct binman_entry *entry)
This one should be static. We really should agree on a naming convention for such internal APIs. I would prefer adding _internal suffix, or using __ prefix
{
ofnode node; int ret;
node = ofnode_find_subnode(binman->image, name); if (!ofnode_valid(node))
return log_msg_ret("no binman node", -ENOENT);
node = binman->image;
node = ofnode_find_subnode(node, name);
if (!ofnode_valid(node))
return log_msg_ret("node", -ENOENT); ret = ofnode_read_u32(node, "image-pos", &entry->image_pos); if (ret)
return log_msg_ret("bad binman node1", ret);
return log_msg_ret("import-pos", ret); ret = ofnode_read_u32(node, "size", &entry->size); if (ret)
return log_msg_ret("bad binman node2", ret);
return log_msg_ret("size", ret); return 0;
}
+int binman_entry_find(const char *name, struct binman_entry *entry) +{
return binman_entry_find_(binman->image, name, entry);
+}
void binman_set_rom_offset(int rom_offset) { binman->rom_offset = rom_offset; --
Regards, Bin