• Home
  • Raw
  • Download

Lines Matching refs:seg

105 void Seg__cmp(Seg* seg, Addr a, Int* cmp, UWord* n)  in Seg__cmp()  argument
107 if (a < seg->addr) { in Seg__cmp()
109 *n = seg->addr - a; in Seg__cmp()
110 } else if (a < seg->addr + seg->szB && seg->szB > 0) { in Seg__cmp()
112 *n = a - seg->addr; in Seg__cmp()
115 *n = a - (seg->addr + seg->szB); in Seg__cmp()
119 /*inline*/ Bool Seg__is_freed(Seg* seg) in Seg__is_freed() argument
121 if (!is_known_segment(seg)) in Seg__is_freed()
124 return seg->nextfree != (Seg*)1; in Seg__is_freed()
127 ExeContext* Seg__where(Seg* seg) in Seg__where() argument
129 tl_assert(is_known_segment(seg)); in Seg__where()
130 return seg->ec; in Seg__where()
133 SizeT Seg__size(Seg* seg) in Seg__size() argument
135 tl_assert(is_known_segment(seg)); in Seg__size()
136 return seg->szB; in Seg__size()
139 Addr Seg__addr(Seg* seg) in Seg__addr() argument
141 tl_assert(is_known_segment(seg)); in Seg__addr()
142 return seg->addr; in Seg__addr()
193 Seg* seg; in get_Seg_for_malloc() local
195 seg = new_Seg(); in get_Seg_for_malloc()
196 seg->nextfree = (Seg*)1; in get_Seg_for_malloc()
197 return seg; in get_Seg_for_malloc()
203 seg = freesegs_oldest; in get_Seg_for_malloc()
204 freesegs_oldest = seg->nextfree; in get_Seg_for_malloc()
206 seg->nextfree = (Seg*)1; in get_Seg_for_malloc()
208 return seg; in get_Seg_for_malloc()
211 static void set_Seg_freed ( Seg* seg ) in set_Seg_freed() argument
213 tl_assert(seg); in set_Seg_freed()
214 tl_assert(!Seg__is_freed(seg)); in set_Seg_freed()
218 seg->nextfree = NULL; in set_Seg_freed()
219 freesegs_youngest = seg; in set_Seg_freed()
220 freesegs_oldest = seg; in set_Seg_freed()
231 tl_assert(seg != freesegs_youngest && seg != freesegs_oldest); in set_Seg_freed()
232 seg->nextfree = NULL; in set_Seg_freed()
233 freesegs_youngest->nextfree = seg; in set_Seg_freed()
234 freesegs_youngest = seg; in set_Seg_freed()
261 static void bind_addr_to_Seg ( Addr ga, Seg* seg ) in bind_addr_to_Seg() argument
265 b = VG_(addToFM)( addr_to_seg_map, (UWord)ga, (UWord)seg ); in bind_addr_to_Seg()
288 Seg* seg = get_Seg_for_malloc(); in add_new_segment() local
289 tl_assert(seg != (Seg*)1); /* since we're using 1 as a special value */ in add_new_segment()
290 seg->addr = p; in add_new_segment()
291 seg->szB = size; in add_new_segment()
292 seg->ec = VG_(record_ExeContext)( tid, 0/*first_ip_delta*/ ); in add_new_segment()
293 tl_assert(!Seg__is_freed(seg)); in add_new_segment()
295 bind_addr_to_Seg(p, seg); in add_new_segment()
297 return seg; in add_new_segment()
319 static void die_and_free_mem_heap ( ThreadId tid, Seg* seg ) in die_and_free_mem_heap() argument
322 tl_assert(!Seg__is_freed(seg)); in die_and_free_mem_heap()
324 VG_(cli_free)( (void*)seg->addr ); in die_and_free_mem_heap()
327 seg->ec = VG_(record_ExeContext)( tid, 0/*first_ip_delta*/ ); in die_and_free_mem_heap()
329 set_Seg_freed(seg); in die_and_free_mem_heap()
330 unbind_addr_from_Seg( seg->addr ); in die_and_free_mem_heap()
337 Seg* seg = find_Seg_by_addr( (Addr)p ); in handle_free_heap() local
338 if (!seg) { in handle_free_heap()
342 die_and_free_mem_heap( tid, seg ); in handle_free_heap()
410 Seg* seg; in h_replace_realloc() local
413 seg = find_Seg_by_addr( (Addr)p_old ); in h_replace_realloc()
414 if (!seg) in h_replace_realloc()
417 tl_assert(seg->addr == (Addr)p_old); in h_replace_realloc()
419 if (new_size <= seg->szB) { in h_replace_realloc()
425 die_and_free_mem_heap( tid, seg ); in h_replace_realloc()
436 VG_(memcpy)((void*)p_new, p_old, seg->szB); in h_replace_realloc()
439 die_and_free_mem_heap( tid, seg ); in h_replace_realloc()
454 Seg* seg = find_Seg_by_addr( (Addr)p ); in h_replace_malloc_usable_size() local
458 return ( seg ? seg->szB : 0 ); in h_replace_malloc_usable_size()