• Suresh Siddha's avatar
    ptrace: Add support for generic PTRACE_GETREGSET/PTRACE_SETREGSET · 2225a122
    Suresh Siddha authored
    Generic support for PTRACE_GETREGSET/PTRACE_SETREGSET commands which
    export the regsets supported by each architecture using the correponding
    NT_* types. These NT_* types are already part of the userland ABI, used
    in representing the architecture specific register sets as different NOTES
    in an ELF core file.
    
    'addr' parameter for the ptrace system call encode the REGSET type (using
    the corresppnding NT_* type) and the 'data' parameter points to the
    struct iovec having the user buffer and the length of that buffer.
    
    	struct iovec iov = { buf, len};
    	ret = ptrace(PTRACE_GETREGSET/PTRACE_SETREGSET, pid, NT_XXX_TYPE, &iov);
    
    On successful completion, iov.len will be updated by the kernel specifying
    how much the kernel has written/read to/from the user's iov.buf.
    
    x86 extended state registers are primarily exported using this interface.
    Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    LKML-Reference: <20100211195614.886724710@sbs-t61.sc.intel.com>
    Acked-by: default avatarHongjiu Lu <hjl.tools@gmail.com>
    Cc: Roland McGrath <roland@redhat.com>
    Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
    2225a122
ptrace.c 19.6 KB