LLVM: include/llvm/BinaryFormat/SFrame.h File Reference (original) (raw)
This file contains data-structure definitions and constants to support unwinding based on .sframe sections. More...
Go to the source code of this file.
| Classes | |
|---|---|
| struct | llvm::sframe::Preamble< E > |
| struct | llvm::sframe::Header< E > |
| struct | llvm::sframe::FDEInfo< E > |
| struct | llvm::sframe::FuncDescEntry< E > |
| struct | llvm::sframe::FREInfo< E > |
| struct | llvm::sframe::FrameRowEntry< T, E > |
| Macros | |
|---|---|
| #define | HANDLE_SFRAME_VERSION(CODE, NAME) |
| #define | HANDLE_SFRAME_FLAG(CODE, NAME) |
| #define | HANDLE_SFRAME_ABI(CODE, NAME) |
| #define | HANDLE_SFRAME_FRE_TYPE(CODE, NAME) |
| #define | HANDLE_SFRAME_FDE_TYPE(CODE, NAME) |
| #define | HANDLE_SFRAME_AARCH64_PAUTH_KEY(CODE, NAME) |
| #define | HANDLE_SFRAME_FRE_OFFSET(CODE, NAME) |
| Typedefs | |
|---|---|
| template<typename T, endianness E> | |
| using | llvm::sframe::detail::packed |
| template<endianness E> | |
| using | llvm::sframe::FrameRowEntryAddr1 = FrameRowEntry<uint8_t, E> |
| template<endianness E> | |
| using | llvm::sframe::FrameRowEntryAddr2 = FrameRowEntry<uint16_t, E> |
| template<endianness E> | |
| using | llvm::sframe::FrameRowEntryAddr4 = FrameRowEntry<uint32_t, E> |
| Enumerations | ||
|---|---|---|
| enum class | llvm::sframe::Version : uint8_t | |
| enum class | llvm::sframe::Flags : uint8_t { llvm::sframe::V2AllFlags = FDESorted | FramePointer | FDEFuncStartPCRel , llvm::sframe::LLVM_MARK_AS_BITMASK_ENUM =(0xff) } |
| enum class | llvm::sframe::ABI : uint8_t | |
| enum class | llvm::sframe::FREType : uint8_t | |
| SFrame FRE Types. Bits 0-3 of FuncDescEntry.Info. More... | ||
| enum class | llvm::sframe::FDEType : uint8_t | |
| SFrame FDE Types. Bit 4 of FuncDescEntry.Info. More... | ||
| enum class | llvm::sframe::AArch64PAuthKey : uint8_t | |
| Speficies key used for signing return addresses. More... | ||
| enum class | llvm::sframe::FREOffset : uint8_t | |
| Size of stack offsets. Bits 6-7 of FREInfo.Info. More... | ||
| enum class | llvm::sframe::BaseReg : uint8_t { llvm::sframe::FP = 0 , llvm::sframe::SP = 1 } | |
| Stack frame base register. Bit 0 of FREInfo.Info. More... |
This file contains data-structure definitions and constants to support unwinding based on .sframe sections.
This only supports SFRAME_VERSION_2 as described at https://sourceware.org/binutils/docs/sframe-spec.html
Definition in file SFrame.h.
◆ HANDLE_SFRAME_AARCH64_PAUTH_KEY
| #define HANDLE_SFRAME_AARCH64_PAUTH_KEY | ( | CODE, |
|---|---|---|
| NAME ) |
◆ HANDLE_SFRAME_ABI
| #define HANDLE_SFRAME_ABI | ( | CODE, |
|---|---|---|
| NAME ) |
◆ HANDLE_SFRAME_FDE_TYPE
| #define HANDLE_SFRAME_FDE_TYPE | ( | CODE, |
|---|---|---|
| NAME ) |
◆ HANDLE_SFRAME_FLAG
| #define HANDLE_SFRAME_FLAG | ( | CODE, |
|---|---|---|
| NAME ) |
◆ HANDLE_SFRAME_FRE_OFFSET
| #define HANDLE_SFRAME_FRE_OFFSET | ( | CODE, |
|---|---|---|
| NAME ) |
◆ HANDLE_SFRAME_FRE_TYPE
| #define HANDLE_SFRAME_FRE_TYPE | ( | CODE, |
|---|---|---|
| NAME ) |
◆ HANDLE_SFRAME_VERSION
| #define HANDLE_SFRAME_VERSION | ( | CODE, |
|---|---|---|
| NAME ) |