Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051/* 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 */