003 File Manager
Current Path:
/usr/src/contrib/llvm-project/compiler-rt/lib/xray
usr
/
src
/
contrib
/
llvm-project
/
compiler-rt
/
lib
/
xray
/
📁
..
📄
weak_symbols.txt
(88 B)
📄
xray_AArch64.cpp
(4.62 KB)
📄
xray_allocator.h
(9.33 KB)
📄
xray_always_instrument.txt
(255 B)
📄
xray_arm.cpp
(5.87 KB)
📄
xray_basic_flags.cpp
(1.52 KB)
📄
xray_basic_flags.h
(1.18 KB)
📄
xray_basic_flags.inc
(1011 B)
📄
xray_basic_logging.cpp
(17.59 KB)
📄
xray_basic_logging.h
(1.68 KB)
📄
xray_buffer_queue.cpp
(7.35 KB)
📄
xray_buffer_queue.h
(8.79 KB)
📄
xray_defs.h
(967 B)
📄
xray_fdr_controller.h
(11.79 KB)
📄
xray_fdr_flags.cpp
(1.47 KB)
📄
xray_fdr_flags.h
(1.2 KB)
📄
xray_fdr_flags.inc
(1.28 KB)
📄
xray_fdr_log_records.h
(2.5 KB)
📄
xray_fdr_log_writer.h
(8.72 KB)
📄
xray_fdr_logging.cpp
(27.62 KB)
📄
xray_fdr_logging.h
(1.53 KB)
📄
xray_flags.cpp
(2.76 KB)
📄
xray_flags.h
(1.12 KB)
📄
xray_flags.inc
(2.29 KB)
📄
xray_function_call_trie.h
(22.36 KB)
📄
xray_init.cpp
(4.6 KB)
📄
xray_interface.cpp
(16.43 KB)
📄
xray_interface_internal.h
(3.2 KB)
📄
xray_log_interface.cpp
(7.53 KB)
📄
xray_mips.cpp
(7.16 KB)
📄
xray_mips64.cpp
(7.66 KB)
📄
xray_never_instrument.txt
(282 B)
📄
xray_powerpc64.cpp
(3.63 KB)
📄
xray_powerpc64.inc
(1019 B)
📄
xray_profile_collector.cpp
(14.06 KB)
📄
xray_profile_collector.h
(2.73 KB)
📄
xray_profiling.cpp
(17.55 KB)
📄
xray_profiling_flags.cpp
(1.34 KB)
📄
xray_profiling_flags.h
(1.17 KB)
📄
xray_profiling_flags.inc
(1.4 KB)
📄
xray_recursion_guard.h
(1.8 KB)
📄
xray_segmented_array.h
(21.22 KB)
📄
xray_trampoline_AArch64.S
(6.1 KB)
📄
xray_trampoline_arm.S
(3.85 KB)
📄
xray_trampoline_mips.S
(2.67 KB)
📄
xray_trampoline_mips64.S
(3.47 KB)
📄
xray_trampoline_powerpc64.cpp
(420 B)
📄
xray_trampoline_powerpc64_asm.S
(3.91 KB)
📄
xray_trampoline_x86_64.S
(7.06 KB)
📄
xray_tsc.h
(2.75 KB)
📄
xray_utils.cpp
(6.04 KB)
📄
xray_utils.h
(2.18 KB)
📄
xray_x86_64.cpp
(11.73 KB)
📄
xray_x86_64.inc
(997 B)
Editing: xray_utils.h
//===-- xray_utils.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 // //===----------------------------------------------------------------------===// // // This file is a part of XRay, a dynamic runtime instrumentation system. // // Some shared utilities for the XRay runtime implementation. // //===----------------------------------------------------------------------===// #ifndef XRAY_UTILS_H #define XRAY_UTILS_H #include <cstddef> #include <cstdint> #include <sys/types.h> #include <utility> #include "sanitizer_common/sanitizer_common.h" #if SANITIZER_FUCHSIA #include <zircon/types.h> #endif namespace __xray { class LogWriter { public: #if SANITIZER_FUCHSIA LogWriter(zx_handle_t Vmo) : Vmo(Vmo) {} #else explicit LogWriter(int Fd) : Fd(Fd) {} #endif ~LogWriter(); // Write a character range into a log. void WriteAll(const char *Begin, const char *End); void Flush(); // Returns a new log instance initialized using the flag-provided values. static LogWriter *Open(); // Closes and deallocates the log instance. static void Close(LogWriter *LogWriter); private: #if SANITIZER_FUCHSIA zx_handle_t Vmo = ZX_HANDLE_INVALID; uint64_t Offset = 0; #else int Fd = -1; #endif }; constexpr size_t gcd(size_t a, size_t b) { return (b == 0) ? a : gcd(b, a % b); } constexpr size_t lcm(size_t a, size_t b) { return a * b / gcd(a, b); } constexpr size_t nearest_boundary(size_t number, size_t multiple) { return multiple * ((number / multiple) + (number % multiple ? 1 : 0)); } constexpr size_t next_pow2_helper(size_t num, size_t acc) { return (1u << acc) >= num ? (1u << acc) : next_pow2_helper(num, acc + 1); } constexpr size_t next_pow2(size_t number) { return next_pow2_helper(number, 1); } template <class T> constexpr T &max(T &A, T &B) { return A > B ? A : B; } template <class T> constexpr T &min(T &A, T &B) { return A <= B ? A : B; } constexpr ptrdiff_t diff(uintptr_t A, uintptr_t B) { return max(A, B) - min(A, B); } } // namespace __xray #endif // XRAY_UTILS_H
Upload File
Create Folder