bloblist: Add a new function to add or check size

A common check is to see if a blob is present, create it if not and make
sure that the size is large enough. Add a function to handle this.

Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/common/bloblist.c b/common/bloblist.c
index ccf5e4b..3599ffa 100644
--- a/common/bloblist.c
+++ b/common/bloblist.c
@@ -85,8 +85,10 @@
 
 	rec = bloblist_findrec(tag);
 	if (rec) {
-		if (size && size != rec->size)
+		if (size && size != rec->size) {
+			*recp = rec;
 			return -ESPIPE;
+		}
 	} else {
 		int ret;
 
@@ -145,6 +147,21 @@
 	return (void *)rec + rec->hdr_size;
 }
 
+int bloblist_ensure_size_ret(uint tag, int *sizep, void **blobp)
+{
+	struct bloblist_rec *rec;
+	int ret;
+
+	ret = bloblist_ensurerec(tag, &rec, *sizep);
+	if (ret == -ESPIPE)
+		*sizep = rec->size;
+	else if (ret)
+		return ret;
+	*blobp = (void *)rec + rec->hdr_size;
+
+	return 0;
+}
+
 static u32 bloblist_calc_chksum(struct bloblist_hdr *hdr)
 {
 	struct bloblist_rec *rec;