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...
Functions
llvm::sframe::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()
LLVM_ABI ArrayRef< EnumEntry< Version > > llvm::sframe::getVersions ()
LLVM_ABI ArrayRef< EnumEntry< Flags > > llvm::sframe::getFlags ()
LLVM_ABI ArrayRef< EnumEntry< ABI > > llvm::sframe::getABIs ()
LLVM_ABI ArrayRef< EnumEntry< FREType > > llvm::sframe::getFRETypes ()
LLVM_ABI ArrayRef< EnumEntry< FDEType > > llvm::sframe::getFDETypes ()
LLVM_ABI ArrayRef< EnumEntry< AArch64PAuthKey > > llvm::sframe::getAArch64PAuthKeys ()
LLVM_ABI ArrayRef< EnumEntry< FREOffset > > llvm::sframe::getFREOffsets ()
LLVM_ABI ArrayRef< EnumEntry< BaseReg > > llvm::sframe::getBaseRegisters ()

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 )