| //===-- sanitizer_interface_internal.h --------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file is shared between run-time libraries of sanitizers. |
| // |
| // This header declares the sanitizer runtime interface functions. |
| // The runtime library has to define these functions so the instrumented program |
| // could call them. |
| // |
| // See also include/sanitizer/common_interface_defs.h |
| //===----------------------------------------------------------------------===// |
| #ifndef SANITIZER_INTERFACE_INTERNAL_H |
| #define SANITIZER_INTERFACE_INTERNAL_H |
| |
| #include "sanitizer_internal_defs.h" |
| |
| extern "C" { |
| // Tell the tools to write their reports to "path.<pid>" instead of stderr. |
| // The special values are "stdout" and "stderr". |
| SANITIZER_INTERFACE_ATTRIBUTE |
| void __sanitizer_set_report_path(const char *path); |
| // Tell the tools to write their reports to the provided file descriptor |
| // (casted to void *). |
| SANITIZER_INTERFACE_ATTRIBUTE |
| void __sanitizer_set_report_fd(void *fd); |
| |
| typedef struct { |
| int coverage_sandboxed; |
| __sanitizer::sptr coverage_fd; |
| unsigned int coverage_max_block_size; |
| } __sanitizer_sandbox_arguments; |
| |
| // Notify the tools that the sandbox is going to be turned on. |
| SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE void |
| __sanitizer_sandbox_on_notify(__sanitizer_sandbox_arguments *args); |
| |
| // This function is called by the tool when it has just finished reporting |
| // an error. 'error_summary' is a one-line string that summarizes |
| // the error message. This function can be overridden by the client. |
| SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE |
| void __sanitizer_report_error_summary(const char *error_summary); |
| |
| SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_dump(); |
| SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_init(); |
| SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov(__sanitizer::u32 *guard); |
| SANITIZER_INTERFACE_ATTRIBUTE |
| void __sanitizer_annotate_contiguous_container(const void *beg, |
| const void *end, |
| const void *old_mid, |
| const void *new_mid); |
| SANITIZER_INTERFACE_ATTRIBUTE |
| int __sanitizer_verify_contiguous_container(const void *beg, const void *mid, |
| const void *end); |
| SANITIZER_INTERFACE_ATTRIBUTE |
| const void *__sanitizer_contiguous_container_find_bad_address( |
| const void *beg, const void *mid, const void *end); |
| } // extern "C" |
| |
| #endif // SANITIZER_INTERFACE_INTERNAL_H |