user_pt_regs
void user_regs_reset_single_step(struct user_pt_regs *regs,
#define ELF_NGREG (sizeof(struct user_pt_regs) / sizeof(elf_greg_t))
*(struct user_pt_regs *)&(dest) = (regs)->user_regs;
struct user_pt_regs regs; /* sp = sp_el0 */
regs->user_regs = (struct user_pt_regs) {
struct user_pt_regs user_regs;
int valid_user_regs(struct user_pt_regs *regs, struct task_struct *task);
static inline void arm64_mops_reset_regs(struct user_pt_regs *regs, unsigned long esr)
typedef struct user_pt_regs bpf_user_pt_regs_t;
struct user_pt_regs regs; /* sp = sp_el0 */
static void set_user_regs_spsr_ss(struct user_pt_regs *regs)
static void clear_user_regs_spsr_ss(struct user_pt_regs *regs)
void user_regs_reset_single_step(struct user_pt_regs *regs,
.n = sizeof(struct user_pt_regs) / sizeof(u64),
static int valid_compat_regs(struct user_pt_regs *regs)
static int valid_native_regs(struct user_pt_regs *regs)
int valid_user_regs(struct user_pt_regs *regs, struct task_struct *task)
struct user_pt_regs *uregs = &task_pt_regs(target)->user_regs;
struct user_pt_regs newregs = task_pt_regs(target)->user_regs;
#define perf_arch_bpf_user_pt_regs(regs) (struct user_pt_regs *)regs
typedef struct user_pt_regs bpf_user_pt_regs_t;
struct user_pt_regs __user *data);
struct user_pt_regs __user *data);
int ptrace_setregs(struct task_struct *child, struct user_pt_regs __user *data)
int ptrace_getregs(struct task_struct *child, struct user_pt_regs __user *data)
(struct user_pt_regs __user *) (__u64) data);
(struct user_pt_regs __user *) (__u64) data);
typedef struct user_pt_regs bpf_user_pt_regs_t;
struct user_pt_regs user_regs;
struct user_pt_regs regs; /* entire machine state */
struct user_pt_regs
struct user_pt_regs __user *regs;
membuf_write(&to, &target->thread.ckpt_regs, sizeof(struct user_pt_regs));
sizeof(struct user_pt_regs));
regs_max = sizeof(struct user_pt_regs) / sizeof(unsigned long);
membuf_write(&to, target->thread.regs, sizeof(struct user_pt_regs));
sizeof(struct user_pt_regs));
0, sizeof(struct user_pt_regs),
0, sizeof(struct user_pt_regs),
offsetof(struct user_pt_regs, gpr));
offsetof(struct user_pt_regs, nip));
offsetof(struct user_pt_regs, msr));
offsetof(struct user_pt_regs, orig_gpr3));
offsetof(struct user_pt_regs, ctr));
offsetof(struct user_pt_regs, link));
offsetof(struct user_pt_regs, xer));
offsetof(struct user_pt_regs, ccr));
offsetof(struct user_pt_regs, softe));
offsetof(struct user_pt_regs, mq));
offsetof(struct user_pt_regs, trap));
offsetof(struct user_pt_regs, dar));
offsetof(struct user_pt_regs, dar));
offsetof(struct user_pt_regs, dsisr));
offsetof(struct user_pt_regs, dsisr));
offsetof(struct user_pt_regs, result));
BUILD_BUG_ON(sizeof(struct user_pt_regs) > sizeof(struct pt_regs));
BUILD_BUG_ON(_pt != (offsetof(struct user_pt_regs, _reg) / \
BUILD_BUG_ON(PT_REGS_COUNT != sizeof(struct user_pt_regs) / sizeof(unsigned long));
BUILD_BUG_ON(PT_DSCR < sizeof(struct user_pt_regs) / sizeof(unsigned long));
user_pt_regs user_regs;
typedef user_pt_regs bpf_user_pt_regs_t;
typedef struct user_pt_regs xtensa_gregset_t;
.n = sizeof(struct user_pt_regs) / sizeof(u32),
struct user_pt_regs newregs = {
struct user_pt_regs newregs = {0};
struct user_pt_regs;
if (__builtin_types_compatible_p(bpf_user_pt_regs_t, struct user_pt_regs) &&
struct user_pt_regs regs; /* sp = sp_el0 */
#define __PT_REGS_CAST(x) ((const user_pt_regs *)(x))
#define __PT_REGS_CAST(x) ((const struct user_pt_regs *)(x))
#define __PT_REGS_CAST(x) ((const struct user_pt_regs *)(x))
struct user_pt_regs;
if (__builtin_types_compatible_p(bpf_user_pt_regs_t, struct user_pt_regs) &&
arg->reg_off = offsetof(user_pt_regs, gprs[reg]);
arg->reg_off = offsetof(user_pt_regs, gprs[reg]);
return offsetof(struct user_pt_regs, regs[reg_num]);
return offsetof(struct user_pt_regs, sp);
struct user_pt_regs pt_regs;
struct user_pt_regs *ctx __arg_ctx
# define ARCH_REGS struct user_pt_regs
# define ARCH_REGS struct user_pt_regs
# define ARCH_REGS struct user_pt_regs