]> git.ipfire.org Git - thirdparty/u-boot.git/blobdiff - common/bloblist.c
bloblist: refactor of bloblist_reloc()
[thirdparty/u-boot.git] / common / bloblist.c
index 26b0ba33b11d7ae631b04ec018bfe7ce7fedc5c3..c2fd07575fb0b9dbcb31ecd638e40cf5c4491ecf 100644 (file)
@@ -472,13 +472,19 @@ void bloblist_show_list(void)
        }
 }
 
-void bloblist_reloc(void *to, uint to_size, void *from, uint from_size)
+int bloblist_reloc(void *to, uint to_size)
 {
        struct bloblist_hdr *hdr;
 
-       memcpy(to, from, from_size);
+       if (to_size < gd->bloblist->total_size)
+               return -ENOSPC;
+
+       memcpy(to, gd->bloblist, gd->bloblist->total_size);
        hdr = to;
        hdr->total_size = to_size;
+       gd->bloblist = to;
+
+       return 0;
 }
 
 int bloblist_init(void)