Lines Matching refs:hdr
53 static struct bloblist_rec *bloblist_first_blob(struct bloblist_hdr *hdr) in bloblist_first_blob() argument
55 if (hdr->alloced <= hdr->hdr_size) in bloblist_first_blob()
57 return (struct bloblist_rec *)((void *)hdr + hdr->hdr_size); in bloblist_first_blob()
60 static ulong bloblist_blob_end_ofs(struct bloblist_hdr *hdr, in bloblist_blob_end_ofs() argument
65 offset = (void *)rec - (void *)hdr; in bloblist_blob_end_ofs()
71 static struct bloblist_rec *bloblist_next_blob(struct bloblist_hdr *hdr, in bloblist_next_blob() argument
74 ulong offset = bloblist_blob_end_ofs(hdr, rec); in bloblist_next_blob()
76 if (offset >= hdr->alloced) in bloblist_next_blob()
78 return (struct bloblist_rec *)((void *)hdr + offset); in bloblist_next_blob()
88 struct bloblist_hdr *hdr = gd->bloblist; in bloblist_findrec() local
91 if (!hdr) in bloblist_findrec()
94 foreach_rec(rec, hdr) { in bloblist_findrec()
105 struct bloblist_hdr *hdr = gd->bloblist; in bloblist_addrec() local
113 data_start = map_to_sysmem(hdr) + hdr->alloced + sizeof(*rec); in bloblist_addrec()
116 data_start = ALIGN(data_start, align) - map_to_sysmem(hdr); in bloblist_addrec()
121 if (new_alloced > hdr->size) { in bloblist_addrec()
124 size, hdr->size, new_alloced); in bloblist_addrec()
127 rec = (void *)hdr + hdr->alloced; in bloblist_addrec()
130 rec->hdr_size = data_start - hdr->alloced; in bloblist_addrec()
137 hdr->alloced = new_alloced; in bloblist_addrec()
227 static int bloblist_resize_rec(struct bloblist_hdr *hdr, in bloblist_resize_rec() argument
236 new_alloced = ALIGN(hdr->alloced + expand_by, BLOBLIST_ALIGN); in bloblist_resize_rec()
242 if (new_alloced > hdr->size) { in bloblist_resize_rec()
245 new_size, hdr->size, new_alloced); in bloblist_resize_rec()
250 next_ofs = bloblist_blob_end_ofs(hdr, rec); in bloblist_resize_rec()
251 if (next_ofs != hdr->alloced) { in bloblist_resize_rec()
252 memmove((void *)hdr + next_ofs + expand_by, in bloblist_resize_rec()
253 (void *)hdr + next_ofs, new_alloced - next_ofs); in bloblist_resize_rec()
255 hdr->alloced = new_alloced; in bloblist_resize_rec()
271 struct bloblist_hdr *hdr = gd->bloblist; in bloblist_resize() local
278 ret = bloblist_resize_rec(hdr, rec, new_size); in bloblist_resize()
285 static u32 bloblist_calc_chksum(struct bloblist_hdr *hdr) in bloblist_calc_chksum() argument
290 chksum = crc32(0, (unsigned char *)hdr, in bloblist_calc_chksum()
292 foreach_rec(rec, hdr) { in bloblist_calc_chksum()
302 struct bloblist_hdr *hdr; in bloblist_new() local
304 if (size < sizeof(*hdr)) in bloblist_new()
308 hdr = map_sysmem(addr, size); in bloblist_new()
309 memset(hdr, '\0', sizeof(*hdr)); in bloblist_new()
310 hdr->version = BLOBLIST_VERSION; in bloblist_new()
311 hdr->hdr_size = sizeof(*hdr); in bloblist_new()
312 hdr->flags = flags; in bloblist_new()
313 hdr->magic = BLOBLIST_MAGIC; in bloblist_new()
314 hdr->size = size; in bloblist_new()
315 hdr->alloced = hdr->hdr_size; in bloblist_new()
316 hdr->chksum = 0; in bloblist_new()
317 gd->bloblist = hdr; in bloblist_new()
324 struct bloblist_hdr *hdr; in bloblist_check() local
327 hdr = map_sysmem(addr, sizeof(*hdr)); in bloblist_check()
328 if (hdr->magic != BLOBLIST_MAGIC) in bloblist_check()
330 if (hdr->version != BLOBLIST_VERSION) in bloblist_check()
332 if (size && hdr->size != size) in bloblist_check()
334 chksum = bloblist_calc_chksum(hdr); in bloblist_check()
335 if (hdr->chksum != chksum) { in bloblist_check()
336 log(LOGC_BLOBLIST, LOGL_ERR, "Checksum %x != %x\n", hdr->chksum, in bloblist_check()
340 gd->bloblist = hdr; in bloblist_check()
347 struct bloblist_hdr *hdr = gd->bloblist; in bloblist_finish() local
349 hdr->chksum = bloblist_calc_chksum(hdr); in bloblist_finish()
356 struct bloblist_hdr *hdr = gd->bloblist; in bloblist_get_stats() local
359 *sizep = hdr->size; in bloblist_get_stats()
360 *allocedp = hdr->alloced; in bloblist_get_stats()
382 struct bloblist_hdr *hdr = gd->bloblist; in bloblist_show_list() local
386 for (rec = bloblist_first_blob(hdr); rec; in bloblist_show_list()
387 rec = bloblist_next_blob(hdr, rec)) { in bloblist_show_list()
396 struct bloblist_hdr *hdr; in bloblist_reloc() local
399 hdr = to; in bloblist_reloc()
400 hdr->size = to_size; in bloblist_reloc()