003 File Manager
Current Path:
/usr/src/contrib/llvm-project/compiler-rt/lib/hwasan
usr
/
src
/
contrib
/
llvm-project
/
compiler-rt
/
lib
/
hwasan
/
📁
..
📄
hwasan.cpp
(15.25 KB)
📄
hwasan.h
(5.69 KB)
📄
hwasan.syms.extra
(21 B)
📄
hwasan_allocator.cpp
(13.71 KB)
📄
hwasan_allocator.h
(3.26 KB)
📄
hwasan_blacklist.txt
(282 B)
📄
hwasan_checks.h
(4.04 KB)
📄
hwasan_dynamic_shadow.cpp
(5.17 KB)
📄
hwasan_dynamic_shadow.h
(838 B)
📄
hwasan_exceptions.cpp
(2.68 KB)
📄
hwasan_flags.h
(799 B)
📄
hwasan_flags.inc
(3.27 KB)
📄
hwasan_globals.cpp
(3.03 KB)
📄
hwasan_globals.h
(1.85 KB)
📄
hwasan_interceptors.cpp
(11.1 KB)
📄
hwasan_interceptors_vfork.S
(409 B)
📄
hwasan_interface_internal.h
(6.32 KB)
📄
hwasan_linux.cpp
(15.83 KB)
📄
hwasan_malloc_bisect.h
(1.67 KB)
📄
hwasan_mapping.h
(2.01 KB)
📄
hwasan_memintrinsics.cpp
(1.6 KB)
📄
hwasan_new_delete.cpp
(2.29 KB)
📄
hwasan_poisoning.cpp
(1.89 KB)
📄
hwasan_poisoning.h
(756 B)
📄
hwasan_report.cpp
(24.11 KB)
📄
hwasan_report.h
(1.2 KB)
📄
hwasan_setjmp.S
(2.81 KB)
📄
hwasan_tag_mismatch_aarch64.S
(5.89 KB)
📄
hwasan_thread.cpp
(3.9 KB)
📄
hwasan_thread.h
(2.82 KB)
📄
hwasan_thread_list.cpp
(442 B)
📄
hwasan_thread_list.h
(6.2 KB)
📄
hwasan_type_test.cpp
(918 B)
Editing: hwasan_mapping.h
//===-- hwasan_mapping.h ----------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file /// This file is a part of HWAddressSanitizer and defines memory mapping. /// //===----------------------------------------------------------------------===// #ifndef HWASAN_MAPPING_H #define HWASAN_MAPPING_H #include "sanitizer_common/sanitizer_internal_defs.h" #include "hwasan_interface_internal.h" // Typical mapping on Linux/x86_64: // with dynamic shadow mapped at [0x770d59f40000, 0x7f0d59f40000]: // || [0x7f0d59f40000, 0x7fffffffffff] || HighMem || // || [0x7efe2f934000, 0x7f0d59f3ffff] || HighShadow || // || [0x7e7e2f934000, 0x7efe2f933fff] || ShadowGap || // || [0x770d59f40000, 0x7e7e2f933fff] || LowShadow || // || [0x000000000000, 0x770d59f3ffff] || LowMem || // Typical mapping on Android/AArch64 // with dynamic shadow mapped: [0x007477480000, 0x007c77480000]: // || [0x007c77480000, 0x007fffffffff] || HighMem || // || [0x007c3ebc8000, 0x007c7747ffff] || HighShadow || // || [0x007bbebc8000, 0x007c3ebc7fff] || ShadowGap || // || [0x007477480000, 0x007bbebc7fff] || LowShadow || // || [0x000000000000, 0x00747747ffff] || LowMem || // Reasonable values are 4 (for 1/16th shadow) and 6 (for 1/64th). constexpr uptr kShadowScale = 4; constexpr uptr kShadowAlignment = 1ULL << kShadowScale; namespace __hwasan { inline uptr MemToShadow(uptr untagged_addr) { return (untagged_addr >> kShadowScale) + __hwasan_shadow_memory_dynamic_address; } inline uptr ShadowToMem(uptr shadow_addr) { return (shadow_addr - __hwasan_shadow_memory_dynamic_address) << kShadowScale; } inline uptr MemToShadowSize(uptr size) { return size >> kShadowScale; } bool MemIsApp(uptr p); } // namespace __hwasan #endif // HWASAN_MAPPING_H
Upload File
Create Folder