hhdr 93 gc/allchblk.c # define PHDR(hhdr) HDR(hhdr -> hb_prev) hhdr 94 gc/allchblk.c # define NHDR(hhdr) HDR(hhdr -> hb_next) hhdr 97 gc/allchblk.c # define IS_MAPPED(hhdr) (((hhdr) -> hb_flags & WAS_UNMAPPED) == 0) hhdr 99 gc/allchblk.c # define IS_MAPPED(hhdr) 1 hhdr 107 gc/allchblk.c hdr * hhdr; hhdr 122 gc/allchblk.c hhdr = HDR(h); hhdr 123 gc/allchblk.c sz = hhdr -> hb_sz; hhdr 128 gc/allchblk.c } else if (GC_is_black_listed(h, hhdr -> hb_sz) != 0) { hhdr 133 gc/allchblk.c h = hhdr -> hb_next; hhdr 151 gc/allchblk.c hdr * hhdr; hhdr 157 gc/allchblk.c hhdr = HDR(h); hhdr 158 gc/allchblk.c if (hhdr == wanted) return i; hhdr 159 gc/allchblk.c h = hhdr -> hb_next; hhdr 171 gc/allchblk.c hdr *hhdr; hhdr 183 gc/allchblk.c hhdr = HDR(p); hhdr 185 gc/allchblk.c if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { hhdr 186 gc/allchblk.c GC_printf1("Missing header!!(%ld)\n", hhdr); hhdr 190 gc/allchblk.c if (HBLK_IS_FREE(hhdr)) { hhdr 192 gc/allchblk.c divHBLKSZ(hhdr -> hb_sz)); hhdr 196 gc/allchblk.c (unsigned long)(hhdr -> hb_sz)); hhdr 197 gc/allchblk.c if (IS_MAPPED(hhdr)) { hhdr 202 gc/allchblk.c actual_index = free_list_index_of(hhdr); hhdr 210 gc/allchblk.c p += hhdr -> hb_sz; hhdr 213 gc/allchblk.c (unsigned long)WORDS_TO_BYTES(hhdr -> hb_sz)); hhdr 214 gc/allchblk.c p += HBLKSIZE * OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz); hhdr 225 gc/allchblk.c static GC_bool setup_header(hhdr, sz, kind, flags) hhdr 226 gc/allchblk.c register hdr * hhdr; hhdr 235 gc/allchblk.c hhdr -> hb_map = GC_obj_map[sz > MAXOBJSZ? 0 : sz]; hhdr 238 gc/allchblk.c hhdr -> hb_sz = sz; hhdr 239 gc/allchblk.c hhdr -> hb_obj_kind = kind; hhdr 240 gc/allchblk.c hhdr -> hb_flags = flags; hhdr 243 gc/allchblk.c hhdr -> hb_descr = descr; hhdr 246 gc/allchblk.c GC_clear_hdr_marks(hhdr); hhdr 248 gc/allchblk.c hhdr -> hb_last_reclaimed = (unsigned short)GC_gc_no; hhdr 258 gc/allchblk.c void GC_remove_from_fl(hhdr, n) hhdr 259 gc/allchblk.c hdr * hhdr; hhdr 264 gc/allchblk.c GC_ASSERT(((hhdr -> hb_sz) & (HBLKSIZE-1)) == 0); hhdr 268 gc/allchblk.c index = GC_hblk_fl_from_blocks(divHBLKSZ(hhdr -> hb_sz)); hhdr 273 gc/allchblk.c if (hhdr -> hb_prev == 0) { hhdr 276 gc/allchblk.c index = GC_hblk_fl_from_blocks(divHBLKSZ(hhdr -> hb_sz)); hhdr 281 gc/allchblk.c GC_ASSERT(HDR(GC_hblkfreelist[index]) == hhdr); hhdr 282 gc/allchblk.c GC_hblkfreelist[index] = hhdr -> hb_next; hhdr 285 gc/allchblk.c GET_HDR(hhdr -> hb_prev, phdr); hhdr 286 gc/allchblk.c phdr -> hb_next = hhdr -> hb_next; hhdr 288 gc/allchblk.c FREE_ASSERT(GC_free_bytes[index] >= hhdr -> hb_sz); hhdr 289 gc/allchblk.c INCR_FREE_BYTES(index, - (signed_word)(hhdr -> hb_sz)); hhdr 290 gc/allchblk.c if (0 != hhdr -> hb_next) { hhdr 292 gc/allchblk.c GC_ASSERT(!IS_FORWARDING_ADDR_OR_NIL(NHDR(hhdr))); hhdr 293 gc/allchblk.c GET_HDR(hhdr -> hb_next, nhdr); hhdr 294 gc/allchblk.c nhdr -> hb_prev = hhdr -> hb_prev; hhdr 333 gc/allchblk.c void GC_add_to_fl(h, hhdr) hhdr 335 gc/allchblk.c hdr * hhdr; hhdr 337 gc/allchblk.c int index = GC_hblk_fl_from_blocks(divHBLKSZ(hhdr -> hb_sz)); hhdr 341 gc/allchblk.c struct hblk *next = (struct hblk *)((word)h + hhdr -> hb_sz); hhdr 348 gc/allchblk.c GC_ASSERT(((hhdr -> hb_sz) & (HBLKSIZE-1)) == 0); hhdr 350 gc/allchblk.c INCR_FREE_BYTES(index, hhdr -> hb_sz); hhdr 352 gc/allchblk.c hhdr -> hb_next = second; hhdr 353 gc/allchblk.c hhdr -> hb_prev = 0; hhdr 358 gc/allchblk.c GC_invalidate_map(hhdr); hhdr 368 gc/allchblk.c hdr * hhdr; hhdr 375 gc/allchblk.c for (h = GC_hblkfreelist[i]; 0 != h; h = hhdr -> hb_next) { hhdr 376 gc/allchblk.c hhdr = HDR(h); hhdr 377 gc/allchblk.c if (!IS_MAPPED(hhdr)) continue; hhdr 379 gc/allchblk.c last_rec = hhdr -> hb_last_reclaimed; hhdr 382 gc/allchblk.c sz = hhdr -> hb_sz; hhdr 384 gc/allchblk.c hhdr -> hb_flags |= WAS_UNMAPPED; hhdr 396 gc/allchblk.c hdr * hhdr, *nexthdr; hhdr 403 gc/allchblk.c GET_HDR(h, hhdr); hhdr 404 gc/allchblk.c size = hhdr->hb_sz; hhdr 410 gc/allchblk.c if (IS_MAPPED(hhdr)) { hhdr 417 gc/allchblk.c hhdr -> hb_flags |= WAS_UNMAPPED; hhdr 420 gc/allchblk.c GC_ASSERT(!IS_MAPPED(hhdr)); hhdr 425 gc/allchblk.c hhdr -> hb_flags &= ~WAS_UNMAPPED; hhdr 426 gc/allchblk.c hhdr -> hb_last_reclaimed = nexthdr -> hb_last_reclaimed; hhdr 433 gc/allchblk.c GC_remove_from_fl(hhdr, i); hhdr 435 gc/allchblk.c hhdr -> hb_sz += nexthdr -> hb_sz; hhdr 437 gc/allchblk.c GC_add_to_fl(h, hhdr); hhdr 441 gc/allchblk.c h = hhdr -> hb_next; hhdr 458 gc/allchblk.c struct hblk * GC_get_first_part(h, hhdr, bytes, index) hhdr 460 gc/allchblk.c hdr * hhdr; hhdr 464 gc/allchblk.c word total_size = hhdr -> hb_sz; hhdr 469 gc/allchblk.c GC_remove_from_fl(hhdr, index); hhdr 482 gc/allchblk.c hhdr -> hb_map = 0; hhdr 500 gc/allchblk.c void GC_split_block(h, hhdr, n, nhdr, index) hhdr 502 gc/allchblk.c hdr * hhdr; hhdr 507 gc/allchblk.c word total_size = hhdr -> hb_sz; hhdr 509 gc/allchblk.c struct hblk *prev = hhdr -> hb_prev; hhdr 510 gc/allchblk.c struct hblk *next = hhdr -> hb_next; hhdr 532 gc/allchblk.c hhdr -> hb_last_reclaimed = GC_gc_no; hhdr 534 gc/allchblk.c hhdr -> hb_sz = h_size; hhdr 535 gc/allchblk.c GC_add_to_fl(h, hhdr); hhdr 579 gc/allchblk.c register hdr * hhdr; /* Header corr. to hbp */ hhdr 589 gc/allchblk.c for(; 0 != hbp; hbp = hhdr -> hb_next) { hhdr 590 gc/allchblk.c GET_HDR(hbp, hhdr); hhdr 591 gc/allchblk.c size_avail = hhdr->hb_sz; hhdr 624 gc/allchblk.c thishbp = hhdr -> hb_next; hhdr 658 gc/allchblk.c if (!IS_MAPPED(hhdr)) { hhdr 659 gc/allchblk.c GC_remap((ptr_t)hbp, hhdr -> hb_sz); hhdr 660 gc/allchblk.c hhdr -> hb_flags &= ~WAS_UNMAPPED; hhdr 664 gc/allchblk.c GC_split_block(hbp, hhdr, thishbp, thishdr, n); hhdr 667 gc/allchblk.c hhdr = thishdr; hhdr 685 gc/allchblk.c && IS_MAPPED(hhdr)) { hhdr 698 gc/allchblk.c word total_size = hhdr -> hb_sz; hhdr 701 gc/allchblk.c struct hblk * prev = hhdr -> hb_prev; hhdr 705 gc/allchblk.c GC_remove_from_fl(hhdr, n); hhdr 707 gc/allchblk.c if (h == hbp || 0 != (hhdr = GC_install_header(h))) { hhdr 709 gc/allchblk.c hhdr, hhdr 722 gc/allchblk.c hhdr = HDR(hbp); hhdr 729 gc/allchblk.c if (!IS_MAPPED(hhdr)) { hhdr 730 gc/allchblk.c GC_remap((ptr_t)hbp, hhdr -> hb_sz); hhdr 731 gc/allchblk.c hhdr -> hb_flags &= ~WAS_UNMAPPED; hhdr 736 gc/allchblk.c hbp = GC_get_first_part(hbp, hhdr, size_needed, n); hhdr 748 gc/allchblk.c if (!setup_header(hhdr, sz, kind, flags)) { hhdr 756 gc/allchblk.c (hhdr -> hb_descr == 0) /* pointer-free */); hhdr 768 gc/allchblk.c GC_ASSERT(IS_MAPPED(hhdr)); hhdr 786 gc/allchblk.c hdr *hhdr, *prevhdr, *nexthdr; hhdr 790 gc/allchblk.c GET_HDR(hbp, hhdr); hhdr 791 gc/allchblk.c size = hhdr->hb_sz; hhdr 794 gc/allchblk.c hhdr->hb_sz = size; hhdr 796 gc/allchblk.c hhdr -> hb_last_reclaimed = GC_gc_no; hhdr 800 gc/allchblk.c if (HBLK_IS_FREE(hhdr)) { hhdr 806 gc/allchblk.c GC_ASSERT(IS_MAPPED(hhdr)); hhdr 807 gc/allchblk.c GC_invalidate_map(hhdr); hhdr 814 gc/allchblk.c hhdr -> hb_sz += nexthdr -> hb_sz; hhdr 822 gc/allchblk.c prevhdr -> hb_sz += hhdr -> hb_sz; hhdr 828 gc/allchblk.c hhdr = prevhdr; hhdr 836 gc/allchblk.c GC_add_to_fl(hbp, hhdr); hhdr 589 gc/alloc.c hdr *hhdr; hhdr 596 gc/alloc.c hhdr = HDR(h); hhdr 599 gc/alloc.c set_mark_bit_from_hdr(hhdr, word_no); hhdr 614 gc/alloc.c hdr *hhdr; hhdr 621 gc/alloc.c hhdr = HDR(h); hhdr 624 gc/alloc.c clear_mark_bit_from_hdr(hhdr, word_no); hhdr 626 gc/alloc.c GC_mem_found -= hhdr -> hb_sz; hhdr 261 gc/backgraph.c hdr * hhdr = HDR(h); hhdr 262 gc/backgraph.c word sz = hhdr -> hb_sz; hhdr 263 gc/backgraph.c word descr = hhdr -> hb_descr; hhdr 56 gc/checksums.c register hdr * hhdr = HDR(h); hhdr 57 gc/checksums.c register int sz = hhdr -> hb_sz; hhdr 78 gc/checksums.c register hdr * hhdr = HDR(h); hhdr 96 gc/checksums.c while (IS_FORWARDING_ADDR_OR_NIL(hhdr) && hhdr != 0) { hhdr 97 gc/checksums.c b -= (word)hhdr; hhdr 98 gc/checksums.c hhdr = HDR(b); hhdr 101 gc/checksums.c && hhdr != 0 && hhdr -> hb_descr != 0 /* may contain pointers */ hhdr 107 gc/checksums.c if ( hhdr -> hb_map != GC_invalid_map hhdr 108 gc/checksums.c && hhdr -> hb_obj_kind == STUBBORN hhdr 127 gc/checksums.c register hdr * hhdr = HDR(h); hhdr 128 gc/checksums.c register bytes = WORDS_TO_BYTES(hhdr -> hb_sz); hhdr 347 gc/dbg_mlc.c hdr * hhdr = GC_find_header(p); hhdr 349 gc/dbg_mlc.c int kind = hhdr -> hb_obj_kind; hhdr 378 gc/dbg_mlc.c GC_err_printf2("kind %ld, descr 0x%lx", kind, hhdr -> hb_descr); hhdr 629 gc/dbg_mlc.c register hdr * hhdr; hhdr 636 gc/dbg_mlc.c hhdr = HDR(q); hhdr 637 gc/dbg_mlc.c if (hhdr -> hb_obj_kind != STUBBORN) { hhdr 649 gc/dbg_mlc.c register hdr * hhdr; hhdr 656 gc/dbg_mlc.c hhdr = HDR(q); hhdr 657 gc/dbg_mlc.c if (hhdr -> hb_obj_kind != STUBBORN) { hhdr 810 gc/dbg_mlc.c register hdr * hhdr = HDR(p); hhdr 813 gc/dbg_mlc.c if (hhdr -> hb_obj_kind == UNCOLLECTABLE) { hhdr 817 gc/dbg_mlc.c if (hhdr -> hb_obj_kind == AUNCOLLECTABLE) { hhdr 825 gc/dbg_mlc.c size_t obj_sz = hhdr -> hb_sz - BYTES_TO_WORDS(sizeof(oh)); hhdr 828 gc/dbg_mlc.c GC_ASSERT((word *)p + i == (word *)base + hhdr -> hb_sz); hhdr 859 gc/dbg_mlc.c register hdr * hhdr; hhdr 873 gc/dbg_mlc.c hhdr = HDR(base); hhdr 874 gc/dbg_mlc.c switch (hhdr -> hb_obj_kind) { hhdr 965 gc/dbg_mlc.c register struct hblkhdr * hhdr = HDR(hbp); hhdr 966 gc/dbg_mlc.c register word sz = hhdr -> hb_sz; hhdr 979 gc/dbg_mlc.c if( mark_bit_from_hdr(hhdr, word_no) hhdr 281 gc/finalize.c hdr * hhdr = HDR(p); hhdr 283 gc/finalize.c PUSH_OBJ((word *)p, hhdr, GC_mark_stack_top, hhdr 293 gc/finalize.c hdr * hhdr = HDR(p); hhdr 294 gc/finalize.c word descr = hhdr -> hb_descr; hhdr 297 gc/finalize.c ptr_t target_limit = p + WORDS_TO_BYTES(hhdr -> hb_sz) - 1; hhdr 340 gc/finalize.c hdr *hhdr; hhdr 421 gc/finalize.c GET_HDR(base, hhdr); hhdr 422 gc/finalize.c if (0 == hhdr) { hhdr 452 gc/finalize.c new_fo -> fo_object_size = hhdr -> hb_sz; hhdr 123 gc/headers.c static void free_hdr(hhdr) hhdr 124 gc/headers.c hdr * hhdr; hhdr 126 gc/headers.c hhdr -> hb_next = (struct hblk *) hdr_free_list; hhdr 127 gc/headers.c hdr_free_list = hhdr; hhdr 306 gc/headers.c hdr * hhdr = bi -> index[j]; hhdr 307 gc/headers.c if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { hhdr 310 gc/headers.c if (hhdr->hb_map != GC_invalid_map) { hhdr 315 gc/headers.c j += divHBLKSZ(hhdr -> hb_sz); hhdr 343 gc/headers.c hdr * hhdr = bi -> index[j]; hhdr 344 gc/headers.c if (0 == hhdr) { hhdr 346 gc/headers.c } else if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { hhdr 347 gc/headers.c j -= (signed_word)hhdr; hhdr 70 gc/include/private/gc_hdrs.h #define ADVANCE(p, hhdr, source) \ hhdr 73 gc/include/private/gc_hdrs.h p = GC_find_start(p, hhdr, &new_hdr); \ hhdr 74 gc/include/private/gc_hdrs.h hhdr = new_hdr; \ hhdr 113 gc/include/private/gc_hdrs.h # define HC_GET_HDR(p, hhdr, source) \ hhdr 118 gc/include/private/gc_hdrs.h hhdr = hce -> hce_hdr; \ hhdr 121 gc/include/private/gc_hdrs.h GET_HDR(p, hhdr); \ hhdr 122 gc/include/private/gc_hdrs.h if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { \ hhdr 123 gc/include/private/gc_hdrs.h ADVANCE(p, hhdr, source); \ hhdr 126 gc/include/private/gc_hdrs.h hce -> hce_hdr = hhdr; \ hhdr 137 gc/include/private/gc_hdrs.h # define HC_GET_HDR(p, hhdr, source) \ hhdr 139 gc/include/private/gc_hdrs.h GET_HDR(p, hhdr); \ hhdr 140 gc/include/private/gc_hdrs.h if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { \ hhdr 141 gc/include/private/gc_hdrs.h ADVANCE(p, hhdr, source); \ hhdr 195 gc/include/private/gc_hdrs.h # define GET_HDR(p, hhdr) (hhdr) = HDR(p) hhdr 196 gc/include/private/gc_hdrs.h # define SET_HDR(p, hhdr) HDR_INNER(p) = (hhdr) hhdr 219 gc/include/private/gc_hdrs.h # define GET_HDR(p, hhdr) { register hdr ** _ha; GET_HDR_ADDR(p, _ha); \ hhdr 220 gc/include/private/gc_hdrs.h (hhdr) = *_ha; } hhdr 221 gc/include/private/gc_hdrs.h # define SET_HDR(p, hhdr) { register hdr ** _ha; GET_HDR_ADDR(p, _ha); \ hhdr 222 gc/include/private/gc_hdrs.h *_ha = (hhdr); } hhdr 228 gc/include/private/gc_hdrs.h # define IS_FORWARDING_ADDR_OR_NIL(hhdr) ((unsigned long) (hhdr) <= MAX_JUMP) hhdr 232 gc/include/private/gc_hdrs.h # define FORWARDED_ADDR(h, hhdr) ((struct hblk *)(h) - (unsigned long)(hhdr)) hhdr 138 gc/include/private/gc_pmark.h ptr_t GC_find_start(ptr_t current, hdr *hhdr, hdr **new_hdr_p); hhdr 155 gc/include/private/gc_pmark.h # define PUSH_OBJ(obj, hhdr, mark_stack_top, mark_stack_limit) \ hhdr 157 gc/include/private/gc_pmark.h register word _descr = (hhdr) -> hb_descr; \ hhdr 160 gc/include/private/gc_pmark.h ADD_TO_ATOMIC((hhdr) -> hb_sz); \ hhdr 162 gc/include/private/gc_pmark.h ADD_TO_COMPOSITE((hhdr) -> hb_sz); \ hhdr 212 gc/include/private/gc_pmark.h # define SET_MARK_BIT_EXIT_IF_SET(hhdr,displ,exit_label) \ hhdr 215 gc/include/private/gc_pmark.h hhdr -> hb_marks + ((displ) >> 1); \ hhdr 222 gc/include/private/gc_pmark.h # define SET_MARK_BIT_EXIT_IF_SET(hhdr,displ,exit_label) \ hhdr 224 gc/include/private/gc_pmark.h register word * mark_word_addr = hhdr -> hb_marks + divWORDSZ(displ); \ hhdr 239 gc/include/private/gc_pmark.h source, exit_label, hhdr) \ hhdr 245 gc/include/private/gc_pmark.h map_entry = MAP_ENTRY((hhdr -> hb_map), displ); \ hhdr 249 gc/include/private/gc_pmark.h map_entry = displ % (hhdr -> hb_sz); \ hhdr 251 gc/include/private/gc_pmark.h if (displ + (hhdr -> hb_sz) > BYTES_TO_WORDS(HBLKSIZE)) { \ hhdr 262 gc/include/private/gc_pmark.h SET_MARK_BIT_EXIT_IF_SET(hhdr, displ, exit_label); \ hhdr 265 gc/include/private/gc_pmark.h PUSH_OBJ(((word *)(HBLKPTR(current)) + displ), hhdr, \ hhdr 1254 gc/include/private/gc_priv.h # define mark_bit_from_hdr(hhdr,n) ((hhdr)->hb_marks[(n) >> 1]) hhdr 1255 gc/include/private/gc_priv.h # define set_mark_bit_from_hdr(hhdr,n) ((hhdr)->hb_marks[(n)>>1]) = 1 hhdr 1256 gc/include/private/gc_priv.h # define clear_mark_bit_from_hdr(hhdr,n) ((hhdr)->hb_marks[(n)>>1]) = 0 hhdr 1258 gc/include/private/gc_priv.h # define mark_bit_from_hdr(hhdr,n) (((hhdr)->hb_marks[divWORDSZ(n)] \ hhdr 1260 gc/include/private/gc_priv.h # define set_mark_bit_from_hdr(hhdr,n) \ hhdr 1261 gc/include/private/gc_priv.h OR_WORD((hhdr)->hb_marks+divWORDSZ(n), \ hhdr 1263 gc/include/private/gc_priv.h # define clear_mark_bit_from_hdr(hhdr,n) (hhdr)->hb_marks[divWORDSZ(n)] \ hhdr 1407 gc/include/private/gc_priv.h void GC_push_marked GC_PROTO((struct hblk * h, hdr * hhdr)); hhdr 1424 gc/include/private/gc_priv.h void GC_clear_hdr_marks GC_PROTO((hdr * hhdr)); hhdr 1426 gc/include/private/gc_priv.h void GC_set_hdr_marks GC_PROTO((hdr * hhdr)); hhdr 1508 gc/include/private/gc_priv.h void GC_invalidate_map GC_PROTO((hdr * hhdr)); hhdr 1581 gc/include/private/gc_priv.h GC_bool GC_block_empty GC_PROTO((hdr * hhdr)); hhdr 394 gc/malloc.c register hdr *hhdr; hhdr 404 gc/malloc.c hhdr = HDR(h); hhdr 413 gc/malloc.c if (0 == hhdr) return; hhdr 415 gc/malloc.c knd = hhdr -> hb_obj_kind; hhdr 416 gc/malloc.c sz = hhdr -> hb_sz; hhdr 458 gc/malloc.c register hdr *hhdr; hhdr 466 gc/malloc.c hhdr = HDR(h); hhdr 467 gc/malloc.c knd = hhdr -> hb_obj_kind; hhdr 468 gc/malloc.c sz = hhdr -> hb_sz; hhdr 80 gc/mallocx.c register hdr * hhdr; hhdr 87 gc/mallocx.c hhdr = HDR(h); hhdr 88 gc/mallocx.c sz = hhdr -> hb_sz; hhdr 89 gc/mallocx.c obj_kind = hhdr -> hb_obj_kind; hhdr 98 gc/mallocx.c hhdr -> hb_sz = BYTES_TO_WORDS(sz); hhdr 101 gc/mallocx.c hhdr -> hb_descr = descr; hhdr 388 gc/mallocx.c hdr * hhdr; hhdr 392 gc/mallocx.c hhdr = HDR(hbp); hhdr 393 gc/mallocx.c *rlh = hhdr -> hb_next; hhdr 394 gc/mallocx.c hhdr -> hb_last_reclaimed = (unsigned short) GC_gc_no; hhdr 416 gc/mallocx.c op = GC_reclaim_generic(hbp, hhdr, lw, hhdr 135 gc/mark.c void GC_clear_hdr_marks(hhdr) hhdr 136 gc/mark.c register hdr * hhdr; hhdr 139 gc/mark.c BZERO(hhdr -> hb_marks, MARK_BITS_SZ); hhdr 141 gc/mark.c BZERO(hhdr -> hb_marks, MARK_BITS_SZ*sizeof(word)); hhdr 146 gc/mark.c void GC_set_hdr_marks(hhdr) hhdr 147 gc/mark.c register hdr * hhdr; hhdr 153 gc/mark.c hhdr -> hb_marks[i] = 1; hhdr 155 gc/mark.c hhdr -> hb_marks[i] = ONES; hhdr 172 gc/mark.c register hdr * hhdr = HDR(h); hhdr 174 gc/mark.c if (IS_UNCOLLECTABLE(hhdr -> hb_obj_kind)) return; hhdr 178 gc/mark.c GC_clear_hdr_marks(hhdr); hhdr 186 gc/mark.c register hdr * hhdr = HDR(h); hhdr 189 gc/mark.c set_mark_bit_from_hdr(hhdr, word_no); hhdr 196 gc/mark.c register hdr * hhdr = HDR(h); hhdr 199 gc/mark.c clear_mark_bit_from_hdr(hhdr, word_no); hhdr 206 gc/mark.c register hdr * hhdr = HDR(h); hhdr 209 gc/mark.c return(mark_bit_from_hdr(hhdr, word_no)); hhdr 548 gc/mark.c ptr_t GC_find_start(current, hhdr, new_hdr_p) hhdr 550 gc/mark.c register hdr *hhdr, **new_hdr_p; hhdr 553 gc/mark.c if (hhdr != 0) { hhdr 558 gc/mark.c current = current - HBLKSIZE*(word)hhdr; hhdr 559 gc/mark.c hhdr = HDR(current); hhdr 560 gc/mark.c } while(IS_FORWARDING_ADDR_OR_NIL(hhdr)); hhdr 562 gc/mark.c if (hhdr -> hb_flags & IGNORE_OFF_PAGE) return(orig); hhdr 564 gc/mark.c >= (ptrdiff_t)(hhdr->hb_sz)) { hhdr 568 gc/mark.c *new_hdr_p = hhdr; hhdr 1350 gc/mark.c register hdr * hhdr; hhdr 1353 gc/mark.c GET_HDR(p, hhdr); hhdr 1354 gc/mark.c if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { hhdr 1355 gc/mark.c if (hhdr != 0) { hhdr 1357 gc/mark.c hhdr = HDR(r); hhdr 1364 gc/mark.c map_entry = MAP_ENTRY((hhdr -> hb_map), displ); hhdr 1369 gc/mark.c if (r == 0) hhdr = 0; hhdr 1372 gc/mark.c hhdr = 0; hhdr 1382 gc/mark.c if (hhdr == 0) { hhdr 1390 gc/mark.c if (!mark_bit_from_hdr(hhdr, displ)) { hhdr 1391 gc/mark.c set_mark_bit_from_hdr(hhdr, displ); hhdr 1393 gc/mark.c PUSH_OBJ((word *)r, hhdr, GC_mark_stack_top, hhdr 1528 gc/mark.c void GC_push_marked1(h, hhdr) hhdr 1530 gc/mark.c register hdr * hhdr; hhdr 1532 gc/mark.c word * mark_word_addr = &(hhdr->hb_marks[0]); hhdr 1576 gc/mark.c void GC_push_marked2(h, hhdr) hhdr 1578 gc/mark.c register hdr * hhdr; hhdr 1580 gc/mark.c word * mark_word_addr = &(hhdr->hb_marks[0]); hhdr 1625 gc/mark.c void GC_push_marked4(h, hhdr) hhdr 1627 gc/mark.c register hdr * hhdr; hhdr 1629 gc/mark.c word * mark_word_addr = &(hhdr->hb_marks[0]); hhdr 1679 gc/mark.c void GC_push_marked(h, hhdr) hhdr 1681 gc/mark.c register hdr * hhdr; hhdr 1683 gc/mark.c register int sz = hhdr -> hb_sz; hhdr 1684 gc/mark.c register int descr = hhdr -> hb_descr; hhdr 1693 gc/mark.c if (GC_block_empty(hhdr)/* nothing marked */) return; hhdr 1705 gc/mark.c GC_push_marked1(h, hhdr); hhdr 1711 gc/mark.c GC_push_marked2(h, hhdr); hhdr 1714 gc/mark.c GC_push_marked4(h, hhdr); hhdr 1720 gc/mark.c if (mark_bit_from_hdr(hhdr, word_no)) { hhdr 1722 gc/mark.c PUSH_OBJ((word *)p, hhdr, GC_mark_stack_top_reg, mark_stack_limit); hhdr 1736 gc/mark.c GC_bool GC_block_was_dirty(h, hhdr) hhdr 1738 gc/mark.c register hdr * hhdr; hhdr 1740 gc/mark.c register int sz = hhdr -> hb_sz; hhdr 1760 gc/mark.c register hdr * hhdr; hhdr 1764 gc/mark.c hhdr = HDR(h); hhdr 1765 gc/mark.c GC_push_marked(h, hhdr); hhdr 1766 gc/mark.c return(h + OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz)); hhdr 1774 gc/mark.c register hdr * hhdr; hhdr 1780 gc/mark.c hhdr = HDR(h); hhdr 1782 gc/mark.c if (hhdr -> hb_obj_kind == STUBBORN) { hhdr 1783 gc/mark.c if (GC_page_was_changed(h) && GC_block_was_dirty(h, hhdr)) { hhdr 1787 gc/mark.c if (GC_block_was_dirty(h, hhdr)) break; hhdr 1790 gc/mark.c if (GC_block_was_dirty(h, hhdr)) break; hhdr 1792 gc/mark.c h += OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz); hhdr 1794 gc/mark.c GC_push_marked(h, hhdr); hhdr 1795 gc/mark.c return(h + OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz)); hhdr 1804 gc/mark.c register hdr * hhdr = HDR(h); hhdr 1809 gc/mark.c hhdr = HDR(h); hhdr 1810 gc/mark.c if (hhdr -> hb_obj_kind == UNCOLLECTABLE) break; hhdr 1811 gc/mark.c h += OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz); hhdr 1813 gc/mark.c GC_push_marked(h, hhdr); hhdr 1814 gc/mark.c return(h + OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz)); hhdr 443 gc/misc.c register hdr * hhdr = HDR(p); hhdr 445 gc/misc.c sz = WORDS_TO_BYTES(hhdr -> hb_sz); hhdr 28 gc/obj_map.c void GC_invalidate_map(hhdr) hhdr 29 gc/obj_map.c hdr *hhdr; hhdr 44 gc/obj_map.c hhdr -> hb_map = GC_invalid_map; hhdr 2816 gc/os_dep.c #define IS_PTRFREE(hhdr) ((hhdr)->hb_descr == 0) hhdr 2840 gc/os_dep.c hdr * hhdr; hhdr 2845 gc/os_dep.c GET_HDR(current, hhdr); hhdr 2846 gc/os_dep.c if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { hhdr 2855 gc/os_dep.c if (HBLK_IS_FREE(hhdr)) { hhdr 2856 gc/os_dep.c GC_ASSERT(PAGE_ALIGNED(hhdr -> hb_sz)); hhdr 2857 gc/os_dep.c nhblks = divHBLKSZ(hhdr -> hb_sz); hhdr 2860 gc/os_dep.c nhblks = OBJ_SZ_TO_BLOCKS(hhdr -> hb_sz); hhdr 2861 gc/os_dep.c is_ptrfree = IS_PTRFREE(hhdr); hhdr 72 gc/pcr_interface.c register hdr * hhdr; hhdr 77 gc/pcr_interface.c hhdr = HDR(h); hhdr 78 gc/pcr_interface.c sz = hhdr -> hb_sz; hhdr 53 gc/ptr_chck.c register hdr *hhdr; hhdr 58 gc/ptr_chck.c hhdr = HDR((word)p); hhdr 59 gc/ptr_chck.c if (hhdr == 0) { hhdr 68 gc/ptr_chck.c if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { hhdr 69 gc/ptr_chck.c h = HBLKPTR(p) - (word)hhdr; hhdr 70 gc/ptr_chck.c hhdr = HDR(h); hhdr 71 gc/ptr_chck.c while (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { hhdr 72 gc/ptr_chck.c h = FORWARDED_ADDR(h, hhdr); hhdr 73 gc/ptr_chck.c hhdr = HDR(h); hhdr 75 gc/ptr_chck.c limit = (ptr_t)((word *)h + hhdr -> hb_sz); hhdr 81 gc/ptr_chck.c sz = WORDS_TO_BYTES(hhdr -> hb_sz); hhdr 92 gc/ptr_chck.c map_entry = MAP_ENTRY((hhdr -> hb_map), pdispl); hhdr 145 gc/ptr_chck.c register hdr *hhdr; hhdr 152 gc/ptr_chck.c hhdr = HDR((word)p); hhdr 153 gc/ptr_chck.c if (hhdr == 0) return(p); hhdr 156 gc/ptr_chck.c while (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { hhdr 157 gc/ptr_chck.c h = FORWARDED_ADDR(h, hhdr); hhdr 158 gc/ptr_chck.c hhdr = HDR(h); hhdr 161 gc/ptr_chck.c if (IS_FORWARDING_ADDR_OR_NIL(hhdr)) { hhdr 164 gc/ptr_chck.c sz = WORDS_TO_BYTES(hhdr -> hb_sz); hhdr 166 gc/ptr_chck.c map_entry = MAP_ENTRY((hhdr -> hb_map), pdispl); hhdr 228 gc/ptr_chck.c register hdr *hhdr; hhdr 233 gc/ptr_chck.c hhdr = HDR((word)p); hhdr 234 gc/ptr_chck.c if (hhdr != 0 && GC_base(p) == 0) { hhdr 243 gc/ptr_chck.c hhdr = HDR((word)p); hhdr 244 gc/ptr_chck.c if (hhdr == 0) { hhdr 265 gc/ptr_chck.c if (HBLKPTR(base) != HBLKPTR(p)) hhdr = HDR((word)p); hhdr 266 gc/ptr_chck.c descr = hhdr -> hb_descr; hhdr 99 gc/reclaim.c GC_bool GC_block_empty(hhdr) hhdr 100 gc/reclaim.c register hdr * hhdr; hhdr 105 gc/reclaim.c register word *p = (word *)(&(hhdr -> hb_marks[0])); hhdr 107 gc/reclaim.c (word *)(&(hhdr -> hb_marks[MARK_BITS_SZ])); hhdr 118 gc/reclaim.c # define GC_block_nearly_full1(hhdr, pat1) DONT_KNOW hhdr 119 gc/reclaim.c # define GC_block_nearly_full3(hhdr, pat1, pat2) DONT_KNOW hhdr 120 gc/reclaim.c # define GC_block_nearly_full(hhdr) DONT_KNOW hhdr 125 gc/reclaim.c # define GC_block_nearly_full1(hhdr, pat1) GC_block_nearly_full(hhdr) hhdr 126 gc/reclaim.c # define GC_block_nearly_full3(hhdr, pat1, pat2) GC_block_nearly_full(hhdr) hhdr 129 gc/reclaim.c GC_bool GC_block_nearly_full(hhdr) hhdr 130 gc/reclaim.c register hdr * hhdr; hhdr 141 gc/reclaim.c register word *p = (word *)(&(hhdr -> hb_marks[0])); hhdr 143 gc/reclaim.c (word *)(&(hhdr -> hb_marks[MARK_BITS_SZ])); hhdr 155 gc/reclaim.c return (sum > BYTES_TO_WORDS(7*HBLKSIZE/8)/(hhdr -> hb_sz)); hhdr 167 gc/reclaim.c GC_bool GC_block_nearly_full1(hhdr, pat1) hhdr 168 gc/reclaim.c hdr *hhdr; hhdr 175 gc/reclaim.c if ((hhdr -> hb_marks[i] | ~pat1) != ONES) { hhdr 188 gc/reclaim.c GC_bool GC_block_nearly_full3(hhdr, pat1, pat2, pat3) hhdr 189 gc/reclaim.c hdr *hhdr; hhdr 199 gc/reclaim.c if ((hhdr -> hb_marks[i] | ~pat1) != ONES) { hhdr 202 gc/reclaim.c if ((hhdr -> hb_marks[i+1] | ~pat2) != ONES) { hhdr 205 gc/reclaim.c if ((hhdr -> hb_marks[i+2] | ~pat3) != ONES) { hhdr 220 gc/reclaim.c GC_bool GC_block_nearly_full(hhdr) hhdr 221 gc/reclaim.c hdr *hhdr; hhdr 223 gc/reclaim.c int sz = hhdr -> hb_sz; hhdr 231 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0xffffffffl); hhdr 233 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x55555555l); hhdr 235 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x11111111l); hhdr 237 gc/reclaim.c return GC_block_nearly_full3(hhdr, 0x41041041l, hhdr 241 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x01010101l); hhdr 243 gc/reclaim.c return GC_block_nearly_full3(hhdr, 0x01001001l, hhdr 247 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x00010001l); hhdr 249 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x00000001l); hhdr 257 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0xffffffffffffffffl); hhdr 259 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x5555555555555555l); hhdr 261 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x1111111111111111l); hhdr 263 gc/reclaim.c return GC_block_nearly_full3(hhdr, 0x1041041041041041l, hhdr 267 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x0101010101010101l); hhdr 269 gc/reclaim.c return GC_block_nearly_full3(hhdr, 0x1001001001001001l, hhdr 273 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x0001000100010001l); hhdr 275 gc/reclaim.c return GC_block_nearly_full1(hhdr, 0x0000000100000001l); hhdr 310 gc/reclaim.c ptr_t GC_reclaim_clear(hbp, hhdr, sz, list COUNT_PARAM) hhdr 312 gc/reclaim.c register hdr * hhdr; hhdr 321 gc/reclaim.c GC_ASSERT(hhdr == GC_find_header((ptr_t)hbp)); hhdr 329 gc/reclaim.c if( mark_bit_from_hdr(hhdr, word_no) ) { hhdr 366 gc/reclaim.c ptr_t GC_reclaim_clear2(hbp, hhdr, list COUNT_PARAM) hhdr 368 gc/reclaim.c hdr * hhdr; hhdr 372 gc/reclaim.c register word * mark_word_addr = &(hhdr->hb_marks[0]); hhdr 409 gc/reclaim.c ptr_t GC_reclaim_clear4(hbp, hhdr, list COUNT_PARAM) hhdr 411 gc/reclaim.c hdr * hhdr; hhdr 415 gc/reclaim.c register word * mark_word_addr = &(hhdr->hb_marks[0]); hhdr 463 gc/reclaim.c ptr_t GC_reclaim_uninit(hbp, hhdr, sz, list COUNT_PARAM) hhdr 465 gc/reclaim.c register hdr * hhdr; hhdr 480 gc/reclaim.c if( !mark_bit_from_hdr(hhdr, word_no) ) { hhdr 495 gc/reclaim.c void GC_reclaim_check(hbp, hhdr, sz) hhdr 497 gc/reclaim.c register hdr * hhdr; hhdr 512 gc/reclaim.c if( !mark_bit_from_hdr(hhdr, word_no) ) { hhdr 525 gc/reclaim.c ptr_t GC_reclaim_uninit2(hbp, hhdr, list COUNT_PARAM) hhdr 527 gc/reclaim.c hdr * hhdr; hhdr 531 gc/reclaim.c register word * mark_word_addr = &(hhdr->hb_marks[0]); hhdr 567 gc/reclaim.c ptr_t GC_reclaim_uninit4(hbp, hhdr, list COUNT_PARAM) hhdr 569 gc/reclaim.c hdr * hhdr; hhdr 573 gc/reclaim.c register word * mark_word_addr = &(hhdr->hb_marks[0]); hhdr 617 gc/reclaim.c ptr_t GC_reclaim1(hbp, hhdr, list COUNT_PARAM) hhdr 619 gc/reclaim.c hdr * hhdr; hhdr 623 gc/reclaim.c register word * mark_word_addr = &(hhdr->hb_marks[0]); hhdr 661 gc/reclaim.c ptr_t GC_reclaim_generic(hbp, hhdr, sz, init, list COUNT_PARAM) hhdr 663 gc/reclaim.c hdr * hhdr; hhdr 671 gc/reclaim.c GC_ASSERT(GC_find_header((ptr_t)hbp) == hhdr); hhdr 672 gc/reclaim.c GC_remove_protection(hbp, 1, (hhdr)->hb_descr == 0 /* Pointer-free? */); hhdr 679 gc/reclaim.c result = GC_reclaim1(hbp, hhdr, list COUNT_ARG); hhdr 682 gc/reclaim.c result = GC_reclaim_clear2(hbp, hhdr, list COUNT_ARG); hhdr 685 gc/reclaim.c result = GC_reclaim_clear4(hbp, hhdr, list COUNT_ARG); hhdr 689 gc/reclaim.c result = GC_reclaim_clear(hbp, hhdr, sz, list COUNT_ARG); hhdr 693 gc/reclaim.c GC_ASSERT((hhdr)->hb_descr == 0 /* Pointer-free block */); hhdr 697 gc/reclaim.c result = GC_reclaim1(hbp, hhdr, list COUNT_ARG); hhdr 700 gc/reclaim.c result = GC_reclaim_uninit2(hbp, hhdr, list COUNT_ARG); hhdr 703 gc/reclaim.c result = GC_reclaim_uninit4(hbp, hhdr, list COUNT_ARG); hhdr 707 gc/reclaim.c result = GC_reclaim_uninit(hbp, hhdr, sz, list COUNT_ARG); hhdr 711 gc/reclaim.c if (IS_UNCOLLECTABLE(hhdr -> hb_obj_kind)) GC_set_hdr_marks(hhdr); hhdr 726 gc/reclaim.c hdr *hhdr = HDR(hbp); hhdr 727 gc/reclaim.c word sz = hhdr -> hb_sz; hhdr 728 gc/reclaim.c int kind = hhdr -> hb_obj_kind; hhdr 732 gc/reclaim.c hhdr -> hb_last_reclaimed = (unsigned short) GC_gc_no; hhdr 735 gc/reclaim.c GC_reclaim_check(hbp, hhdr, sz); hhdr 737 gc/reclaim.c *flh = GC_reclaim_generic(hbp, hhdr, sz, hhdr 759 gc/reclaim.c register hdr * hhdr; hhdr 764 gc/reclaim.c hhdr = HDR(hbp); hhdr 765 gc/reclaim.c sz = hhdr -> hb_sz; hhdr 766 gc/reclaim.c ok = &GC_obj_kinds[hhdr -> hb_obj_kind]; hhdr 769 gc/reclaim.c if( !mark_bit_from_hdr(hhdr, 0) ) { hhdr 784 gc/reclaim.c GC_bool empty = GC_block_empty(hhdr); hhdr 793 gc/reclaim.c } else if (TRUE != GC_block_nearly_full(hhdr)){ hhdr 796 gc/reclaim.c hhdr -> hb_next = *rlh; hhdr 820 gc/reclaim.c int GC_n_set_marks(hhdr) hhdr 821 gc/reclaim.c hdr * hhdr; hhdr 827 gc/reclaim.c result += hhdr -> hb_marks[i]; hhdr 849 gc/reclaim.c int GC_n_set_marks(hhdr) hhdr 850 gc/reclaim.c hdr * hhdr; hhdr 856 gc/reclaim.c result += set_bits(hhdr -> hb_marks[i]); hhdr 872 gc/reclaim.c register hdr * hhdr = HDR(h); hhdr 873 gc/reclaim.c register size_t bytes = WORDS_TO_BYTES(hhdr -> hb_sz); hhdr 876 gc/reclaim.c GC_printf3("(%lu:%lu,%lu)", (unsigned long)(hhdr -> hb_obj_kind), hhdr 878 gc/reclaim.c (unsigned long)(GC_n_set_marks(hhdr))); hhdr 991 gc/reclaim.c register hdr * hhdr; hhdr 1000 gc/reclaim.c hhdr = HDR(hbp); hhdr 1001 gc/reclaim.c *rlh = hhdr -> hb_next; hhdr 1022 gc/reclaim.c register hdr * hhdr; hhdr 1044 gc/reclaim.c hhdr = HDR(hbp); hhdr 1045 gc/reclaim.c *rlh = hhdr -> hb_next; hhdr 1046 gc/reclaim.c if (!ignore_old || hhdr -> hb_last_reclaimed == GC_gc_no - 1) { hhdr 534 gc/typd_mlc.c register hdr * hhdr = HDR(addr); hhdr 535 gc/typd_mlc.c register word sz = hhdr -> hb_sz;