From: Jeremy S. <js...@mv...> - 2002-09-11 17:39:31
|
Niibe et. al., The recent changes for syscall restart on signal use r8 and r9 to pass the "from syscall" status and "original r0" value to do_signal from entry.S, eliminating the need for the "tra" field of pt_regs (formerly "syscall_nr") to carry the "from syscall" information. Therefore, the "tra" field was removed from the pt_regs structure. However: REG_SYSCALL (and its successors) were not updated; I think this implies that using them as arguments to sys_ptrace() (e.g. 4*REG_FPUL) would yield unexpected results. And from what I see in some of the GDB and GLIBC versions we're working with, there are defines for these values in other files which would need to be updated independently. Unless someone's already submitted such updates, I suggest we just put back a field at the end of pt_regs, even if it's empty; only its presence is required so ptrace() users like gdb have a view of "user" space consistent with the kernel. [Actually, I'd like to fill it in with info like the old syscall_nr, i.e. system call and argcount; then "get_wchan()" might be able to return something more useful, and strace could consistency-check the argument count if desired.] (On the other hand, I suppose we can just modify sys_ptrace() to account for the missing field when deciding what to return (or modify) based on the offset argument...) Any comments? Since I think adding an empty field is easiest, if there are no objections I'll assume that's the way to go... Thanks, --Jeremy |