From: Dave A. <ai...@us...> - 2001-11-14 09:13:27
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv26007/arch/vax/kernel Modified Files: ptrace.c Log Message: DA: fix SP and clean up warnings Index: ptrace.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/ptrace.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ptrace.c 2001/11/13 23:31:16 1.5 +++ ptrace.c 2001/11/14 09:13:23 1.6 @@ -65,13 +65,17 @@ static int putreg(struct task_struct *child, unsigned long regno, unsigned long value) { - unsigned long retval = ~0UL; struct pt_regs *regs_ptr; regs_ptr = ptrace_find_vax_regs(child); if (!regs_ptr) return 0; + if ((regno>>2) == PT_SP) + { + child->thread.pcb.usp = value; + return 0; + } switch(regno >> 2) { case 0 ... 16: // retval = *(((unsigned long *)regs_ptr) + (regno>>2)); @@ -79,7 +83,7 @@ // *(unsigned long *)((&child->thread.pcb)+4+(regno>>2))=value; break; default: - printk("putreg for %d failed\n", regno); + printk("putreg for %lu failed\n", regno); break; } @@ -98,12 +102,17 @@ if (!regs_ptr) return 0; + if ((regno>>2) == PT_SP) + { + retval = child->thread.pcb.usp; + return retval; + } switch(regno >> 2) { case 0 ... 16: retval = *(((unsigned long *)regs_ptr) + (regno>>2)); break; default: - printk("getreg for %d failed\n", regno); + printk("getreg for %lu failed\n", regno); retval=0; break; } @@ -286,7 +295,7 @@ child->ptrace |= PT_DTRACE; tmp = getreg(child, PT_PSL<<2); - psl = &tmp; + psl = (struct psl_fields *)&tmp; psl->t=1; putreg(child, PT_PSL<<2, *(unsigned long *)psl); // printk("tmp is %8lX, psl is now %8lX\n", tmp, *(unsigned long *)psl); |