Lines Matching refs:begin
110 static size_t va_range_to_shadow_size(const void *begin, const void *end) in va_range_to_shadow_size() argument
112 return ((vaddr_t)end - (vaddr_t)begin) / ASAN_BLOCK_SIZE; in va_range_to_shadow_size()
115 static bool va_range_inside_shadow(const void *begin, const void *end) in va_range_inside_shadow() argument
118 vaddr_t b = (vaddr_t)begin; in va_range_inside_shadow()
135 static bool va_range_outside_shadow(const void *begin, const void *end) in va_range_outside_shadow() argument
138 vaddr_t b = (vaddr_t)begin; in va_range_outside_shadow()
165 void asan_add_shadowed(const void *begin, const void *end, in asan_add_shadowed() argument
170 .lo = (vaddr_t)begin, in asan_add_shadowed()
175 assert(va_is_well_aligned(begin)); in asan_add_shadowed()
188 void asan_tag_no_access(const void *begin, const void *end) in asan_tag_no_access() argument
190 assert(va_is_well_aligned(begin)); in asan_tag_no_access()
192 assert(va_range_inside_shadow(begin, end)); in asan_tag_no_access()
194 asan_memset_unchecked(va_to_shadow(begin), ASAN_DATA_RED_ZONE, in asan_tag_no_access()
195 va_range_to_shadow_size(begin, end)); in asan_tag_no_access()
198 void asan_tag_access(const void *begin, const void *end) in asan_tag_access() argument
200 if (!GET_ASAN_INFO()->regs_count || begin == end) in asan_tag_access()
203 assert(va_range_inside_shadow(begin, end)); in asan_tag_access()
204 assert(va_is_well_aligned(begin)); in asan_tag_access()
206 asan_memset_unchecked(va_to_shadow(begin), 0, in asan_tag_access()
207 va_range_to_shadow_size(begin, end)); in asan_tag_access()
212 static bool mpool_exists_in_range(vaddr_t begin, vaddr_t end) in mpool_exists_in_range() argument
220 regs[i].hi <= end && regs[i].lo >= begin) in mpool_exists_in_range()
227 void asan_tag_heap_free(const void *begin, const void *end) in asan_tag_heap_free() argument
232 assert(va_range_inside_shadow(begin, end)); in asan_tag_heap_free()
233 assert(va_is_well_aligned(begin)); in asan_tag_heap_free()
236 asan_memset_unchecked(va_to_shadow(begin), ASAN_HEAP_RED_ZONE, in asan_tag_heap_free()
237 va_range_to_shadow_size(begin, end)); in asan_tag_heap_free()
383 void *begin = (void *)addr; in check_access() local
390 if (va_range_outside_shadow(begin, end)) in check_access()
396 if (!va_range_inside_shadow(begin, end)) in check_access()
504 vaddr_t begin = globals[n].beg; in __asan_register_globals() local
505 vaddr_t end = begin + globals[n].size; in __asan_register_globals()
507 vaddr_t end_rz = begin + globals[n].size_with_redzone; in __asan_register_globals()
509 if (!mpool_exists_in_range(begin, end)) in __asan_register_globals()
510 asan_tag_access((void *)begin, (void *)end); in __asan_register_globals()