Home | History | Annotate | Download | only in mem

Lines Matching refs:ah

15 __free_block(struct free_arena_header *ah)
19 &__core_malloc_head[ARENA_HEAP_GET(ah->a.attrs)];
21 pah = ah->a.prev;
22 nah = ah->a.next;
24 (char *)pah+ARENA_SIZE_GET(pah->a.attrs) == (char *)ah ) {
27 ARENA_SIZE_GET(ah->a.attrs));
32 ARENA_TYPE_SET(ah->a.attrs, ARENA_TYPE_DEAD);
35 ah = pah;
36 pah = ah->a.prev;
39 ARENA_TYPE_SET(ah->a.attrs, ARENA_TYPE_FREE);
40 ah->a.tag = MALLOC_FREE;
42 ah->next_free = head->next_free;
43 ah->prev_free = head;
44 head->next_free = ah;
45 ah->next_free->prev_free = ah;
51 (char *)ah+ARENA_SIZE_GET(ah->a.attrs) == (char *)nah ) {
52 ARENA_SIZE_SET(ah->a.attrs, ARENA_SIZE_GET(ah->a.attrs) +
58 ah->a.next = nah->a.next;
59 nah->a.next->a.prev = ah;
67 return ah;
72 struct free_arena_header *ah;
74 ah = (struct free_arena_header *)
78 if (ah->a.magic != ARENA_MAGIC)
81 if (ARENA_TYPE_GET(ah->a.attrs) != ARENA_TYPE_USED)
82 dprintf("invalid arena type: %d\n", ARENA_TYPE_GET(ah->a.attrs));
85 __free_block(ah);
107 void __inject_free_block(struct free_arena_header *ah)
110 &__core_malloc_head[ARENA_HEAP_GET(ah->a.attrs)];
112 size_t a_end = (size_t) ah + ARENA_SIZE_GET(ah->a.attrs);
116 ARENA_SIZE_GET(ah->a.attrs), ah,
117 ARENA_HEAP_GET(ah->a.attrs), head);
129 if ((size_t) ah >= n_end)
132 printf("conflict:ah: %p, a_end: %p, nah: %p, n_end: %p\n", ah, a_end, nah, n_end);
140 ah->a.next = nah;
141 ah->a.prev = nah->a.prev;
142 nah->a.prev = ah;
143 ah->a.prev->a.next = ah;
145 __free_block(ah);