Home
last modified time | relevance | path

Searched refs:regno (Results 1 – 25 of 38) sorted by relevance

12

/arch/m68k/kernel/
Dptrace.c74 static inline long get_reg(struct task_struct *task, int regno) in get_reg() argument
78 if (regno == PT_USP) in get_reg()
80 else if (regno < ARRAY_SIZE(regoff)) in get_reg()
81 addr = (unsigned long *)(task->thread.esp0 + regoff[regno]); in get_reg()
85 if (regno == PT_SR || regno == PT_PC) { in get_reg()
89 if (regno == PT_SR) in get_reg()
98 static inline int put_reg(struct task_struct *task, int regno, in put_reg() argument
103 if (regno == PT_USP) in put_reg()
105 else if (regno < ARRAY_SIZE(regoff)) in put_reg()
106 addr = (unsigned long *)(task->thread.esp0 + regoff[regno]); in put_reg()
[all …]
/arch/h8300/kernel/
Dkgdb.c35 char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs) in dbg_get_reg() argument
37 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_get_reg()
40 switch (regno) { in dbg_get_reg()
46 dbg_reg_def[regno].offset); in dbg_get_reg()
49 if (dbg_reg_def[regno].offset >= 0) in dbg_get_reg()
50 memcpy(mem, (void *)regs + dbg_reg_def[regno].offset, in dbg_get_reg()
51 dbg_reg_def[regno].size); in dbg_get_reg()
53 memset(mem, 0, dbg_reg_def[regno].size); in dbg_get_reg()
56 return dbg_reg_def[regno].name; in dbg_get_reg()
59 int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) in dbg_set_reg() argument
[all …]
Dptrace.c39 long h8300_get_reg(struct task_struct *task, int regno) in h8300_get_reg() argument
41 switch (regno) { in h8300_get_reg()
47 register_offset[regno]); in h8300_get_reg()
50 register_offset[regno]); in h8300_get_reg()
54 int h8300_put_reg(struct task_struct *task, int regno, unsigned long data) in h8300_put_reg() argument
59 switch (regno) { in h8300_put_reg()
64 register_offset[regno]); in h8300_put_reg()
69 register_offset[regno]) = data; in h8300_put_reg()
73 register_offset[regno]); in h8300_put_reg()
78 register_offset[regno]) = data; in h8300_put_reg()
[all …]
Dptrace_h.c169 int regno; in decode() local
191 regno = (*pc >> 4) & 0x07; in decode()
192 if (regno == 0) in decode()
195 addr = h8300_get_reg(child, regno-1 + PT_ER1); in decode()
/arch/mips/kernel/
Dkgdb.c130 int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) in dbg_set_reg() argument
134 if (regno < 0 || regno >= DBG_MAX_REG_NUM) in dbg_set_reg()
137 if (dbg_reg_def[regno].offset != -1 && regno < 38) { in dbg_set_reg()
138 memcpy((void *)regs + dbg_reg_def[regno].offset, mem, in dbg_set_reg()
139 dbg_reg_def[regno].size); in dbg_set_reg()
140 } else if (current && dbg_reg_def[regno].offset != -1 && regno < 72) { in dbg_set_reg()
144 if (regno == 70) { in dbg_set_reg()
147 dbg_reg_def[regno].size); in dbg_set_reg()
149 } else if (regno == 71) { in dbg_set_reg()
153 fp_reg = dbg_reg_def[regno].offset; in dbg_set_reg()
[all …]
/arch/nios2/kernel/
Dkgdb.c71 char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs) in dbg_get_reg() argument
73 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_get_reg()
76 if (dbg_reg_def[regno].offset != -1) in dbg_get_reg()
77 memcpy(mem, (void *)regs + dbg_reg_def[regno].offset, in dbg_get_reg()
78 dbg_reg_def[regno].size); in dbg_get_reg()
80 memset(mem, 0, dbg_reg_def[regno].size); in dbg_get_reg()
82 return dbg_reg_def[regno].name; in dbg_get_reg()
85 int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) in dbg_set_reg() argument
87 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_set_reg()
90 if (dbg_reg_def[regno].offset != -1) in dbg_set_reg()
[all …]
/arch/arm/kernel/
Dkgdb.c51 char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs) in dbg_get_reg() argument
53 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_get_reg()
56 if (dbg_reg_def[regno].offset != -1) in dbg_get_reg()
57 memcpy(mem, (void *)regs + dbg_reg_def[regno].offset, in dbg_get_reg()
58 dbg_reg_def[regno].size); in dbg_get_reg()
60 memset(mem, 0, dbg_reg_def[regno].size); in dbg_get_reg()
61 return dbg_reg_def[regno].name; in dbg_get_reg()
64 int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) in dbg_set_reg() argument
66 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_set_reg()
69 if (dbg_reg_def[regno].offset != -1) in dbg_set_reg()
[all …]
/arch/arc/kernel/
Dkgdb.c17 int regno; in to_gdb_regs() local
19 for (regno = 0; regno <= 26; regno++) in to_gdb_regs()
20 gdb_regs[_R0 + regno] = get_reg(regno, kernel_regs, cregs); in to_gdb_regs()
22 for (regno = 27; regno < GDB_MAX_REGS; regno++) in to_gdb_regs()
23 gdb_regs[regno] = 0; in to_gdb_regs()
40 int regno; in from_gdb_regs() local
42 for (regno = 0; regno <= 26; regno++) in from_gdb_regs()
43 set_reg(regno, gdb_regs[regno + _R0], kernel_regs, cregs); in from_gdb_regs()
/arch/powerpc/kernel/
Dkgdb.c322 char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs) in dbg_get_reg() argument
324 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_get_reg()
327 if (regno < 32 || regno >= 64) in dbg_get_reg()
330 memcpy(mem, (void *)regs + dbg_reg_def[regno].offset, in dbg_get_reg()
331 dbg_reg_def[regno].size); in dbg_get_reg()
333 if (regno >= 32 && regno < 64) { in dbg_get_reg()
337 memcpy(mem, &current->thread.evr[regno-32], in dbg_get_reg()
338 dbg_reg_def[regno].size); in dbg_get_reg()
341 memset(mem, 0, dbg_reg_def[regno].size); in dbg_get_reg()
345 return dbg_reg_def[regno].name; in dbg_get_reg()
[all …]
/arch/arm64/kernel/
Dkgdb.c104 char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs) in dbg_get_reg() argument
106 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_get_reg()
109 if (dbg_reg_def[regno].offset != -1) in dbg_get_reg()
110 memcpy(mem, (void *)regs + dbg_reg_def[regno].offset, in dbg_get_reg()
111 dbg_reg_def[regno].size); in dbg_get_reg()
113 memset(mem, 0, dbg_reg_def[regno].size); in dbg_get_reg()
114 return dbg_reg_def[regno].name; in dbg_get_reg()
117 int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) in dbg_set_reg() argument
119 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_set_reg()
122 if (dbg_reg_def[regno].offset != -1) in dbg_set_reg()
[all …]
/arch/powerpc/kernel/vdso32/
Dsigtramp.S53 #define rsave(regno, ofs) \ argument
55 .uleb128 regno; /* regno */ \
69 #define vsave_msr0(regno) \ argument
71 .uleb128 regno + 77; /* regno */ \
74 .byte 0x30 + regno; /* DW_OP_lit0 */ \
99 #define vsave_msr1(regno) \ argument
101 .uleb128 regno + 77; /* regno */ \
104 .byte 0x30 + regno; /* DW_OP_lit n */ \
110 #define vsave_msr2(regno, ofs) \ argument
112 .uleb128 regno + 77; /* regno */ \
[all …]
/arch/powerpc/kernel/vdso64/
Dsigtramp.S58 #define rsave(regno, ofs) \ argument
60 .uleb128 regno; /* regno */ \
74 #define vsave_msr0(regno) \ argument
76 .uleb128 regno + 77; /* regno */ \
79 .byte 0x30 + regno; /* DW_OP_lit0 */ \
105 #define vsave_msr1(regno) \ argument
107 .uleb128 regno + 77; /* regno */ \
110 .byte 0x30 + regno; /* DW_OP_lit n */ \
116 #define vsave_msr2(regno, ofs) \ argument
118 .uleb128 regno + 77; /* regno */ \
[all …]
/arch/sh/kernel/
Dkgdb.c193 int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) in dbg_set_reg() argument
195 if (regno < 0 || regno >= DBG_MAX_REG_NUM) in dbg_set_reg()
198 if (dbg_reg_def[regno].offset != -1) in dbg_set_reg()
199 memcpy((void *)regs + dbg_reg_def[regno].offset, mem, in dbg_set_reg()
200 dbg_reg_def[regno].size); in dbg_set_reg()
205 char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs) in dbg_get_reg() argument
207 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_get_reg()
210 if (dbg_reg_def[regno].size != -1) in dbg_get_reg()
211 memcpy(mem, (void *)regs + dbg_reg_def[regno].offset, in dbg_get_reg()
212 dbg_reg_def[regno].size); in dbg_get_reg()
[all …]
/arch/alpha/kernel/
Dptrace.c108 get_reg_addr(struct task_struct * task, unsigned long regno) in get_reg_addr() argument
112 if (regno == 30) { in get_reg_addr()
114 } else if (regno == 65) { in get_reg_addr()
116 } else if (regno == 31 || regno > 65) { in get_reg_addr()
120 addr = task_stack_page(task) + regoff[regno]; in get_reg_addr()
129 get_reg(struct task_struct * task, unsigned long regno) in get_reg() argument
132 if (regno == 63) { in get_reg()
133 unsigned long fpcr = *get_reg_addr(task, regno); in get_reg()
139 return *get_reg_addr(task, regno); in get_reg()
146 put_reg(struct task_struct *task, unsigned long regno, unsigned long data) in put_reg() argument
[all …]
/arch/hexagon/kernel/
Dkgdb.c78 char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs) in dbg_get_reg() argument
80 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_get_reg()
84 dbg_reg_def[regno].offset)); in dbg_get_reg()
86 return dbg_reg_def[regno].name; in dbg_get_reg()
89 int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) in dbg_set_reg() argument
91 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_set_reg()
94 *((unsigned long *) ((void *)regs + dbg_reg_def[regno].offset)) = in dbg_set_reg()
/arch/x86/um/
Dptrace_32.c75 int putreg(struct task_struct *child, int regno, unsigned long value) in putreg() argument
77 regno >>= 2; in putreg()
78 switch (regno) { in putreg()
118 panic("Bad register in putreg() : %d\n", regno); in putreg()
120 child->thread.regs.regs.gp[reg_offsets[regno]] = value; in putreg()
143 unsigned long getreg(struct task_struct *child, int regno) in getreg() argument
147 regno >>= 2; in getreg()
148 switch (regno) { in getreg()
170 panic("Bad register in getreg() : %d\n", regno); in getreg()
172 return mask & child->thread.regs.regs.gp[reg_offsets[regno]]; in getreg()
Dptrace_64.c53 int putreg(struct task_struct *child, int regno, unsigned long value) in putreg() argument
55 switch (regno) { in putreg()
103 panic("Bad register in putreg(): %d\n", regno); in putreg()
106 child->thread.regs.regs.gp[reg_offsets[regno >> 3]] = value; in putreg()
129 unsigned long getreg(struct task_struct *child, int regno) in getreg() argument
133 switch (regno) { in getreg()
165 panic("Bad register in getreg: %d\n", regno); in getreg()
167 return mask & child->thread.regs.regs.gp[reg_offsets[regno >> 3]]; in getreg()
/arch/x86/include/asm/
Ddebugreg.h21 static __always_inline unsigned long native_get_debugreg(int regno) in native_get_debugreg() argument
25 switch (regno) { in native_get_debugreg()
63 static __always_inline void native_set_debugreg(int regno, unsigned long value) in native_set_debugreg() argument
65 switch (regno) { in native_set_debugreg()
/arch/riscv/kernel/
Dkgdb.c226 char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs) in dbg_get_reg() argument
228 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_get_reg()
231 if (dbg_reg_def[regno].offset != -1) in dbg_get_reg()
232 memcpy(mem, (void *)regs + dbg_reg_def[regno].offset, in dbg_get_reg()
233 dbg_reg_def[regno].size); in dbg_get_reg()
235 memset(mem, 0, dbg_reg_def[regno].size); in dbg_get_reg()
236 return dbg_reg_def[regno].name; in dbg_get_reg()
239 int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) in dbg_set_reg() argument
241 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_set_reg()
244 if (dbg_reg_def[regno].offset != -1) in dbg_set_reg()
[all …]
/arch/x86/kernel/
Dkgdb.c91 int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) in dbg_set_reg() argument
95 regno == GDB_SS || regno == GDB_FS || regno == GDB_GS || in dbg_set_reg()
97 regno == GDB_SP || regno == GDB_ORIG_AX) in dbg_set_reg()
100 if (dbg_reg_def[regno].offset != -1) in dbg_set_reg()
101 memcpy((void *)regs + dbg_reg_def[regno].offset, mem, in dbg_set_reg()
102 dbg_reg_def[regno].size); in dbg_set_reg()
106 char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs) in dbg_get_reg() argument
108 if (regno == GDB_ORIG_AX) { in dbg_get_reg()
112 if (regno >= DBG_MAX_REG_NUM || regno < 0) in dbg_get_reg()
115 if (dbg_reg_def[regno].offset != -1) in dbg_get_reg()
[all …]
/arch/x86/lib/
Dinsn-eval.c441 int pt_regs_offset(struct pt_regs *regs, int regno) in pt_regs_offset() argument
443 if ((unsigned)regno < ARRAY_SIZE(pt_regoff)) in pt_regs_offset()
444 return pt_regoff[regno]; in pt_regs_offset()
451 int regno = 0; in get_regno() local
462 regno = X86_MODRM_RM(insn->modrm.value); in get_regno()
468 if (!X86_MODRM_MOD(insn->modrm.value) && regno == 5) in get_regno()
472 regno += 8; in get_regno()
476 regno = X86_MODRM_REG(insn->modrm.value); in get_regno()
479 regno += 8; in get_regno()
483 regno = X86_SIB_INDEX(insn->sib.value); in get_regno()
[all …]
/arch/h8300/include/asm/
Dptrace.h34 extern long h8300_get_reg(struct task_struct *task, int regno);
35 extern int h8300_put_reg(struct task_struct *task, int regno,
/arch/um/include/asm/
Dptrace-generic.h36 extern unsigned long getreg(struct task_struct *child, int regno);
37 extern int putreg(struct task_struct *child, int regno, unsigned long value);
/arch/powerpc/kernel/ptrace/
Dptrace-view.c160 int ptrace_get_reg(struct task_struct *task, int regno, unsigned long *data) in ptrace_get_reg() argument
167 if (regno == PT_MSR) { in ptrace_get_reg()
172 if (regno == PT_DSCR) in ptrace_get_reg()
180 if (IS_ENABLED(CONFIG_PPC64) && regno == PT_SOFTE) { in ptrace_get_reg()
186 if (regno < regs_max) { in ptrace_get_reg()
187 regno = array_index_nospec(regno, regs_max); in ptrace_get_reg()
188 *data = ((unsigned long *)task->thread.regs)[regno]; in ptrace_get_reg()
198 int ptrace_put_reg(struct task_struct *task, int regno, unsigned long data) in ptrace_put_reg() argument
203 if (regno == PT_MSR) in ptrace_put_reg()
205 if (regno == PT_TRAP) in ptrace_put_reg()
[all …]
/arch/xtensa/kernel/
Dptrace.c270 static int ptrace_peekusr(struct task_struct *child, long regno, in ptrace_peekusr() argument
279 switch(regno) { in ptrace_peekusr()
281 tmp = regs->areg[regno - REG_AR_BASE]; in ptrace_peekusr()
285 tmp = regs->areg[regno - REG_A_BASE]; in ptrace_peekusr()
337 static int ptrace_pokeusr(struct task_struct *child, long regno, long val) in ptrace_pokeusr() argument
342 switch (regno) { in ptrace_pokeusr()
344 regs->areg[regno - REG_AR_BASE] = val; in ptrace_pokeusr()
348 regs->areg[regno - REG_A_BASE] = val; in ptrace_pokeusr()

12