From owner-cvs-src@FreeBSD.ORG Thu Aug 14 22:41:00 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A767237B404; Thu, 14 Aug 2003 22:41:00 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 137BE43FA3; Thu, 14 Aug 2003 22:41:00 -0700 (PDT) (envelope-from marcel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h7F5ex0U019152; Thu, 14 Aug 2003 22:40:59 -0700 (PDT) (envelope-from marcel@repoman.freebsd.org) Received: (from marcel@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h7F5exxW019151; Thu, 14 Aug 2003 22:40:59 -0700 (PDT) Message-Id: <200308150540.h7F5exxW019151@repoman.freebsd.org> From: Marcel Moolenaar Date: Thu, 14 Aug 2003 22:40:59 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/ia64/ia64 ptrace_machdep.c src/sys/ia64/include ptrace.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Aug 2003 05:41:01 -0000 marcel 2003/08/14 22:40:59 PDT FreeBSD src repository Modified files: sys/ia64/include ptrace.h Added files: sys/ia64/ia64 ptrace_machdep.c Log: Introduce two machine specific ptrace(2) requests: PT_GETKSTACK and PT_SETKSTACK. These requests allow the tracing process to access the dirty registers of the traced process that are on the kernel stack. Note that there's currently no way to access the rnat register for those dirty registers that are not (yet) covered by a nat collection point. The interface for this is still being slept on. Also note that implied by these requests is the division of work: The tracing process has to keep track of where registers are spilled and is responsible to figure out where the NaT bit of the stacked registers are at any time during the execution of the traced process. The kernel provides the interfaces but will not abstract the fact that the register stack can be split. This model does not follow the approach taken in Linux where PT_PEEK and PT_POKE deals with this automagically. Revision Changes Path 1.1 +67 -0 src/sys/ia64/ia64/ptrace_machdep.c (new) 1.4 +8 -2 src/sys/ia64/include/ptrace.h