1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- //===-- report.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
- //
- //===----------------------------------------------------------------------===//
- #ifndef SCUDO_REPORT_H_
- #define SCUDO_REPORT_H_
- #include "internal_defs.h"
- namespace scudo {
- // Reports are *fatal* unless stated otherwise.
- // Generic error.
- void NORETURN reportError(const char *Message);
- // Flags related errors.
- void NORETURN reportInvalidFlag(const char *FlagType, const char *Value);
- // Chunk header related errors.
- void NORETURN reportHeaderCorruption(void *Ptr);
- void NORETURN reportHeaderRace(void *Ptr);
- // Sanity checks related error.
- void NORETURN reportSanityCheckError(const char *Field);
- // Combined allocator errors.
- void NORETURN reportAlignmentTooBig(uptr Alignment, uptr MaxAlignment);
- void NORETURN reportAllocationSizeTooBig(uptr UserSize, uptr TotalSize,
- uptr MaxSize);
- void NORETURN reportOutOfMemory(uptr RequestedSize);
- void NORETURN reportSoftRSSLimit(uptr RssLimitMb);
- void NORETURN reportHardRSSLimit(uptr RssLimitMb);
- enum class AllocatorAction : u8 {
- Recycling,
- Deallocating,
- Reallocating,
- Sizing,
- };
- void NORETURN reportInvalidChunkState(AllocatorAction Action, void *Ptr);
- void NORETURN reportMisalignedPointer(AllocatorAction Action, void *Ptr);
- void NORETURN reportDeallocTypeMismatch(AllocatorAction Action, void *Ptr,
- u8 TypeA, u8 TypeB);
- void NORETURN reportDeleteSizeMismatch(void *Ptr, uptr Size, uptr ExpectedSize);
- // C wrappers errors.
- void NORETURN reportAlignmentNotPowerOfTwo(uptr Alignment);
- void NORETURN reportInvalidPosixMemalignAlignment(uptr Alignment);
- void NORETURN reportCallocOverflow(uptr Count, uptr Size);
- void NORETURN reportPvallocOverflow(uptr Size);
- void NORETURN reportInvalidAlignedAllocAlignment(uptr Size, uptr Alignment);
- } // namespace scudo
- #endif // SCUDO_REPORT_H_
|