Skip to content

Commit 0a62ac0

Browse files
author
Sergey Matyukevich
committed
ARCv3: enable HAVE_REGS_AND_STACK_ACCESS_API
All the supporting functions and defines are the same for all three ARC architecture flavors. Define missing regoffset_table for ARCv3. Signed-off-by: Sergey Matyukevich <sergey.matyukevich@synopsys.com>
1 parent bfb98ad commit 0a62ac0

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

arch/arc/include/asm/ptrace.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@ struct pt_regs {
124124
unsigned long status32;
125125
};
126126

127+
#define MAX_REG_OFFSET offsetof(struct pt_regs, status32)
128+
127129
/* ARCv3 callee regs start from r14; gp is r30 not r26 */
128130
struct callee_regs {
129131
unsigned long r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26;

arch/arc/kernel/ptrace.c

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ static const struct pt_regs_offset regoffset_table[] = {
5252
REG_OFFSET_END,
5353
};
5454

55-
#else
55+
#elif defined(CONFIG_ISA_ARCV2)
5656

5757
static const struct pt_regs_offset regoffset_table[] = {
5858
REG_OFFSET_NAME(orig_r0),
@@ -95,6 +95,38 @@ static const struct pt_regs_offset regoffset_table[] = {
9595
REG_OFFSET_NAME(status32),
9696
REG_OFFSET_END,
9797
};
98+
99+
#else /* CONFIG_ISA_ARCV3 */
100+
101+
static const struct pt_regs_offset regoffset_table[] = {
102+
REG_OFFSET_NAME(orig_r0),
103+
REG_OFFSET_NAME(r58),
104+
REG_OFFSET_NAME(r59),
105+
REG_OFFSET_NAME(ecr),
106+
REG_OFFSET_NAME(bta),
107+
REG_OFFSET_NAME(fp),
108+
REG_OFFSET_NAME(gp),
109+
REG_OFFSET_NAME(sp),
110+
REG_OFFSET_NAME(r0),
111+
REG_OFFSET_NAME(r1),
112+
REG_OFFSET_NAME(r2),
113+
REG_OFFSET_NAME(r3),
114+
REG_OFFSET_NAME(r4),
115+
REG_OFFSET_NAME(r5),
116+
REG_OFFSET_NAME(r6),
117+
REG_OFFSET_NAME(r7),
118+
REG_OFFSET_NAME(r8),
119+
REG_OFFSET_NAME(r9),
120+
REG_OFFSET_NAME(r10),
121+
REG_OFFSET_NAME(r11),
122+
REG_OFFSET_NAME(r12),
123+
REG_OFFSET_NAME(r13),
124+
REG_OFFSET_NAME(blink),
125+
REG_OFFSET_NAME(ret),
126+
REG_OFFSET_NAME(status32),
127+
REG_OFFSET_END,
128+
};
129+
98130
#endif
99131

100132
static struct callee_regs *task_callee_regs(struct task_struct *tsk)

0 commit comments

Comments
 (0)