#include <linux/ioctl.h>
-#define QUADD_SAMPLES_VERSION 25
+#define QUADD_SAMPLES_VERSION 26
#define QUADD_IO_VERSION 12
#define QUADD_IO_VERSION_DYNAMIC_RB 5
#define QUADD_SAMPLE_VERSION_SUPPORT_IP64 23
#define QUADD_SAMPLE_VERSION_SPECIAL_MMAP 24
#define QUADD_SAMPLE_VERSION_UNWIND_MIXED 25
+#define QUADD_SAMPLE_VERSION_UNW_ENTRY_TYPE 26
#define QUADD_MAX_COUNTERS 32
#define QUADD_MAX_PROCESS 64
#define QUADD_SED_UNW_METHOD_SHIFT 1
#define QUADD_SED_UNW_METHOD_MASK (0x07 << QUADD_SED_UNW_METHOD_SHIFT)
+enum {
+ QUADD_UNW_TYPE_FP = 0,
+ QUADD_UNW_TYPE_UT,
+ QUADD_UNW_TYPE_LR_FP,
+ QUADD_UNW_TYPE_LR_UT,
+ QUADD_UNW_TYPE_KCTX,
+};
+
struct quadd_sample_data {
u64 ip;
u32 pid;
#define QUADD_COMM_CAP_EXTRA_SUPPORT_AARCH64 (1 << 4)
#define QUADD_COMM_CAP_EXTRA_SPECIAL_ARCH_MMAP (1 << 5)
#define QUADD_COMM_CAP_EXTRA_UNWIND_MIXED (1 << 6)
+#define QUADD_COMM_CAP_EXTRA_UNW_ENTRY_TYPE (1 << 7)
struct quadd_comm_cap {
u32 pmu:1,