Viewing file: perf_regs.h (1.05 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _LINUX_PERF_REGS_H #define _LINUX_PERF_REGS_H
#include <linux/sched/task_stack.h>
struct perf_regs { __u64 abi; struct pt_regs *regs; };
#ifdef CONFIG_HAVE_PERF_REGS #include <asm/perf_regs.h>
#ifndef PERF_REG_EXTENDED_MASK #define PERF_REG_EXTENDED_MASK 0 #endif
u64 perf_reg_value(struct pt_regs *regs, int idx); int perf_reg_validate(u64 mask); u64 perf_reg_abi(struct task_struct *task); void perf_get_regs_user(struct perf_regs *regs_user, struct pt_regs *regs); #else
#define PERF_REG_EXTENDED_MASK 0
static inline u64 perf_reg_value(struct pt_regs *regs, int idx) { return 0; }
static inline int perf_reg_validate(u64 mask) { return mask ? -ENOSYS : 0; }
static inline u64 perf_reg_abi(struct task_struct *task) { return PERF_SAMPLE_REGS_ABI_NONE; }
static inline void perf_get_regs_user(struct perf_regs *regs_user, struct pt_regs *regs) { regs_user->regs = task_pt_regs(current); regs_user->abi = perf_reg_abi(current); } #endif /* CONFIG_HAVE_PERF_REGS */ #endif /* _LINUX_PERF_REGS_H */
|