Lines Matching refs:class_id
29 ALWAYS_INLINE void SetShadow(uptr ptr, uptr size, uptr class_id, u64 magic) { in SetShadow() argument
31 if (ASAN_SHADOW_SCALE == 3 && class_id <= 6) { in SetShadow()
33 for (uptr i = 0; i < (((uptr)1) << class_id); i++) { in SetShadow()
70 for (uptr class_id = 0; class_id < kNumberOfSizeClasses; class_id++) in Destroy() local
71 str.append("%zd: %zd/%zd; ", class_id, hint_position_[class_id], in Destroy()
72 NumberOfFrames(stack_size_log(), class_id)); in Destroy()
88 FakeFrame *FakeStack::Allocate(uptr stack_size_log, uptr class_id, in Allocate() argument
90 CHECK_LT(class_id, kNumberOfSizeClasses); in Allocate()
93 uptr &hint_position = hint_position_[class_id]; in Allocate()
94 const int num_iter = NumberOfFrames(stack_size_log, class_id); in Allocate()
95 u8 *flags = GetFlags(stack_size_log, class_id); in Allocate()
97 uptr pos = ModuloNumberOfFrames(stack_size_log, class_id, hint_position++); in Allocate()
108 GetFrame(stack_size_log, class_id, pos)); in Allocate()
110 *SavedFlagPtr(reinterpret_cast<uptr>(res), class_id) = &flags[pos]; in Allocate()
121 uptr class_id = (ptr - beg) >> stack_size_log; in AddrIsInFakeStack() local
122 uptr base = beg + (class_id << stack_size_log); in AddrIsInFakeStack()
125 uptr pos = (ptr - base) >> (kMinStackFrameSizeLog + class_id); in AddrIsInFakeStack()
126 uptr res = base + pos * BytesInSizeClass(class_id); in AddrIsInFakeStack()
127 *frame_end = res + BytesInSizeClass(class_id); in AddrIsInFakeStack()
143 for (uptr class_id = 0; class_id < kNumberOfSizeClasses; class_id++) { in GC() local
144 u8 *flags = GetFlags(stack_size_log(), class_id); in GC()
145 for (uptr i = 0, n = NumberOfFrames(stack_size_log(), class_id); i < n; in GC()
149 GetFrame(stack_size_log(), class_id, i)); in GC()
159 for (uptr class_id = 0; class_id < kNumberOfSizeClasses; class_id++) { in ForEachFakeFrame() local
160 u8 *flags = GetFlags(stack_size_log(), class_id); in ForEachFakeFrame()
161 for (uptr i = 0, n = NumberOfFrames(stack_size_log(), class_id); i < n; in ForEachFakeFrame()
165 GetFrame(stack_size_log(), class_id, i)); in ForEachFakeFrame()
167 callback(begin, begin + FakeStack::BytesInSizeClass(class_id), arg); in ForEachFakeFrame()
206 static ALWAYS_INLINE uptr OnMalloc(uptr class_id, uptr size) { in OnMalloc() argument
211 FakeFrame *ff = fs->Allocate(fs->stack_size_log(), class_id, real_stack); in OnMalloc()
214 SetShadow(ptr, size, class_id, 0); in OnMalloc()
218 static ALWAYS_INLINE uptr OnMallocAlways(uptr class_id, uptr size) { in OnMallocAlways() argument
224 FakeFrame *ff = fs->Allocate(fs->stack_size_log(), class_id, real_stack); in OnMallocAlways()
228 SetShadow(ptr, size, class_id, 0); in OnMallocAlways()
232 static ALWAYS_INLINE void OnFree(uptr ptr, uptr class_id, uptr size) { in OnFree() argument
233 FakeStack::Deallocate(ptr, class_id); in OnFree()
234 SetShadow(ptr, size, class_id, kMagic8); in OnFree()
241 #define DEFINE_STACK_MALLOC_FREE_WITH_CLASS_ID(class_id) \ argument
243 __asan_stack_malloc_##class_id(uptr size) { \
244 return OnMalloc(class_id, size); \
247 __asan_stack_malloc_always_##class_id(uptr size) { \
248 return OnMallocAlways(class_id, size); \
250 extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __asan_stack_free_##class_id( \
252 OnFree(ptr, class_id, size); \