Hi Ilias, This patch is for later grouping the tag and hdr_size in '0011-bloblist-Reduce-blob-header-size.patch'. I can update the commit message.
Thanks and regards, Raymond On Mon, 4 Dec 2023 at 03:31, Ilias Apalodimas <ilias.apalodi...@linaro.org> wrote: > On Mon, 27 Nov 2023 at 21:52, Raymond Mao <raymond....@linaro.org> wrote: > > > > From: Simon Glass <s...@chromium.org> > > > > These values currently use a simple field. With spec v0.9 they have moved > > to a packed format. Convert most accesses to use functions, so this > change > > can be accommodated. > > I don't really understand how the commit message is related to the changes. > What did the packed format affect that we need a function? > > Thanks > /Ilias > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > Signed-off-by: Raymond Mao <raymond....@linaro.org> > > --- > > common/bloblist.c | 38 +++++++++++++++++++++++++------------- > > 1 file changed, 25 insertions(+), 13 deletions(-) > > > > diff --git a/common/bloblist.c b/common/bloblist.c > > index e744c2b0c0..f084a32cfc 100644 > > --- a/common/bloblist.c > > +++ b/common/bloblist.c > > @@ -82,13 +82,23 @@ static struct bloblist_rec > *bloblist_first_blob(struct bloblist_hdr *hdr) > > return (struct bloblist_rec *)((void *)hdr + hdr->hdr_size); > > } > > > > +static inline uint rec_hdr_size(struct bloblist_rec *rec) > > +{ > > + return rec->hdr_size; > > +} > > + > > +static inline uint rec_tag(struct bloblist_rec *rec) > > +{ > > + return rec->tag; > > +} > > + > > static ulong bloblist_blob_end_ofs(struct bloblist_hdr *hdr, > > struct bloblist_rec *rec) > > { > > ulong offset; > > > > offset = (void *)rec - (void *)hdr; > > - offset += rec->hdr_size + ALIGN(rec->size, BLOBLIST_ALIGN); > > + offset += rec_hdr_size(rec) + ALIGN(rec->size, BLOBLIST_ALIGN); > > > > return offset; > > } > > @@ -117,7 +127,7 @@ static struct bloblist_rec *bloblist_findrec(uint > tag) > > return NULL; > > > > foreach_rec(rec, hdr) { > > - if (rec->tag == tag) > > + if (rec_tag(rec) == tag) > > return rec; > > } > > > > @@ -156,7 +166,7 @@ static int bloblist_addrec(uint tag, int size, int > align_log2, > > rec->spare = 0; > > > > /* Zero the record data */ > > - memset((void *)rec + rec->hdr_size, '\0', rec->size); > > + memset((void *)rec + rec_hdr_size(rec), '\0', rec->size); > > > > hdr->alloced = new_alloced; > > *recp = rec; > > @@ -197,7 +207,7 @@ void *bloblist_find(uint tag, int size) > > if (size && size != rec->size) > > return NULL; > > > > - return (void *)rec + rec->hdr_size; > > + return (void *)rec + rec_hdr_size(rec); > > } > > > > void *bloblist_add(uint tag, int size, int align_log2) > > @@ -207,7 +217,7 @@ void *bloblist_add(uint tag, int size, int > align_log2) > > if (bloblist_addrec(tag, size, align_log2, &rec)) > > return NULL; > > > > - return (void *)rec + rec->hdr_size; > > + return (void *)rec + rec_hdr_size(rec); > > } > > > > int bloblist_ensure_size(uint tag, int size, int align_log2, void > **blobp) > > @@ -218,7 +228,7 @@ int bloblist_ensure_size(uint tag, int size, int > align_log2, void **blobp) > > ret = bloblist_ensurerec(tag, &rec, size, align_log2); > > if (ret) > > return ret; > > - *blobp = (void *)rec + rec->hdr_size; > > + *blobp = (void *)rec + rec_hdr_size(rec); > > > > return 0; > > } > > @@ -230,7 +240,7 @@ void *bloblist_ensure(uint tag, int size) > > if (bloblist_ensurerec(tag, &rec, size, 0)) > > return NULL; > > > > - return (void *)rec + rec->hdr_size; > > + return (void *)rec + rec_hdr_size(rec); > > } > > > > int bloblist_ensure_size_ret(uint tag, int *sizep, void **blobp) > > @@ -243,7 +253,7 @@ int bloblist_ensure_size_ret(uint tag, int *sizep, > void **blobp) > > *sizep = rec->size; > > else if (ret) > > return ret; > > - *blobp = (void *)rec + rec->hdr_size; > > + *blobp = (void *)rec + rec_hdr_size(rec); > > > > return 0; > > } > > @@ -279,7 +289,7 @@ static int bloblist_resize_rec(struct bloblist_hdr > *hdr, > > > > /* Zero the new part of the blob */ > > if (expand_by > 0) { > > - memset((void *)rec + rec->hdr_size + rec->size, '\0', > > + memset((void *)rec + rec_hdr_size(rec) + rec->size, '\0', > > new_size - rec->size); > > } > > > > @@ -313,8 +323,9 @@ static u32 bloblist_calc_chksum(struct bloblist_hdr > *hdr) > > chksum = crc32(0, (unsigned char *)hdr, > > offsetof(struct bloblist_hdr, chksum)); > > foreach_rec(rec, hdr) { > > - chksum = crc32(chksum, (void *)rec, rec->hdr_size); > > - chksum = crc32(chksum, (void *)rec + rec->hdr_size, > rec->size); > > + chksum = crc32(chksum, (void *)rec, rec_hdr_size(rec)); > > + chksum = crc32(chksum, (void *)rec + rec_hdr_size(rec), > > + rec->size); > > } > > > > return chksum; > > @@ -422,8 +433,9 @@ void bloblist_show_list(void) > > for (rec = bloblist_first_blob(hdr); rec; > > rec = bloblist_next_blob(hdr, rec)) { > > printf("%08lx %8x %4x %s\n", > > - (ulong)map_to_sysmem((void *)rec + rec->hdr_size), > > - rec->size, rec->tag, bloblist_tag_name(rec->tag)); > > + (ulong)map_to_sysmem((void *)rec + > rec_hdr_size(rec)), > > + rec->size, rec_tag(rec), > > + bloblist_tag_name(rec_tag(rec))); > > } > > } > > > > -- > > 2.25.1 > > >