ARM registers

ARM registers

arm register alias

4.19\arch\arm64\kernel\Asm-offsets.c

DEFINE(S_X0, offsetof(struct pt_regs, regs[0]));
DEFINE(S_X1, offsetof(struct pt_regs, regs[1]));

DEFINE(S_X2, offsetof(struct pt_regs, regs[2]));

DEFINE(S_X3, offsetof(struct pt_regs, regs[3]));

DEFINE(S_X4, offsetof(struct pt_regs, regs[4]));

DEFINE(S_X5, offsetof(struct pt_regs, regs[5]));

DEFINE(S_X6, offsetof(struct pt_regs, regs[6]));

DEFINE(S_X7, offsetof(struct pt_regs, regs[7]));

DEFINE(S_X8, offsetof(struct pt_regs, regs[8]));

DEFINE(S_X10, offsetof(struct pt_regs, regs[10]));

DEFINE(S_X12, offsetof(struct pt_regs, regs[12]));

DEFINE(S_X14, offsetof(struct pt_regs, regs[14]));

DEFINE(S_X16, offsetof(struct pt_regs, regs[16]));

DEFINE(S_X18, offsetof(struct pt_regs, regs[18]));

DEFINE(S_X20, offsetof(struct pt_regs, regs[20]));

DEFINE(S_X22, offsetof(struct pt_regs, regs[22]));

DEFINE(S_X24, offsetof(struct pt_regs, regs[24]));

DEFINE(S_X26, offsetof(struct pt_regs, regs[26]));

DEFINE(S_X28, offsetof(struct pt_regs, regs[28]));

DEFINE(S_LR, offsetof(struct pt_regs, regs[30]));

DEFINE(S_SP, offsetof(struct pt_regs, sp));

#ifdef CONFIG_COMPAT

DEFINE(S_COMPAT_SP, offsetof(struct pt_regs, compat_sp));

#endif

DEFINE(S_PSTATE, offsetof(struct pt_regs, pstate));

DEFINE(S_PC, offsetof(struct pt_regs, pc));

 

 

arch/arm64/include/asm/ptrace.h

struct pt_regs {
    union {
        struct user_pt_regs user_regs;
        struct {
            u64 regs[31];
            u64 sp;
            u64 pc;
            u64 pstate;
        };
    };
    u64 orig_x0;
#ifdef __AARCH64EB__
    u32 unused2;
    s32 syscallno;
#else
    s32 syscallno;
    u32 unused2;
#endif
    u64 sdei_ttbr1;
    /* Only valid when ARM64_HAS_IRQ_PRIO_MASKING is enabled. */
    u64 pmr_save;
    u64 stackframe[2];

    /* Only valid for some EL1 exceptions. */
    u64 lockdep_hardirqs;
    u64 exit_rcu;
};

 

posted @ 2021-10-18 15:26  aspirs  阅读(197)  评论(0编辑  收藏  举报