)]}'
{
  "commit": "e17666ba48f78ff10162d7448e7c92d668d8faf6",
  "tree": "7d3e2c99d383a968491178439b638dc1062e5269",
  "parents": [
    "acd89828484db6371202f5d292781ae6f832eda2"
  ],
  "author": {
    "name": "Benjamin Herrenschmidt",
    "email": "benh@kernel.crashing.org",
    "time": "Mon Jun 04 15:15:43 2007 +1000"
  },
  "committer": {
    "name": "Paul Mackerras",
    "email": "paulus@samba.org",
    "time": "Thu Jun 14 22:29:56 2007 +1000"
  },
  "message": "[POWERPC] ptrace updates \u0026 new, better requests\n\nThe powerpc ptrace interface is dodgy at best. We have defined our\n\"own\" versions of GETREGS/SETREGS/GETFPREGS/SETFPREGS that strangely\ntake arguments in reverse order from other archs (in addition to having\ndifferent request numbers) and have subtle issue, like not accessing\nall of the registers in their respective categories.\n\nThis patch moves the implementation of those to a separate function\nin order to facilitate their deprecation in the future, and provides\nnew ptrace requests that mirror the x86 and sparc ones and use the\nsame numbers:\n\n   PTRACE_GETREGS    : returns an entire pt_regs (the whole thing,\n                       not only the 32 GPRs, though that doesn\u0027t\n                       include the FPRs etc... There\u0027s a compat version\n                       for 32 bits that returns a 32 bits compatible\n                       pt_regs (44 uints)\n\n   PTRACE_SETREGS    : sets an entire pt_regs (the whole thing,\n                       not only the 32 GPRs, though that doesn\u0027t\n                       include the FPRs etc... Some registers cannot be\n                       written to and will just be dropped, this is the\n                       same as with POKEUSR, that is anything above MQ\n                       on 32 bits and CCR on 64 bits. There is a compat\n                       version as well.\n\n   PTRACE_GETFPREGS  : returns all the FP registers -including- the FPSCR\n                       that is 33 doubles (regardless of 32/64 bits)\n\n   PTRACE_SETFPREGS  : sets all the FP registers -including- the FPSCR\n                       that is 33 doubles (regardless of 32/64 bits)\n\nAnd two that only exist on 64 bits kernels:\n\n   PTRACE_GETREGS64  : Same as PTRACE_GETREGS, except there is no compat\n                       function, a 32 bits process will obtain the full 64\n                       bits registers\n\n   PTRACE_SETREGS64  : Same as PTRACE_SETREGS, except there is no compat\n                       function, a 32 bits process will set the full 64\n                       bits registers\n\nThe two later ones makes things easier to have a 32 bits debugger on a\n64 bits program (or on a 32 bits program that uses the full 64 bits of\nthe GPRs, which is possible though has issues that will be fixed in a\nlater patch).\n\nFinally, while at it, the patch removes a whole bunch of code duplication\nbetween ptrace32.c and ptrace.c, in large part by having the former call\ninto the later for all requests that don\u0027t need any special \"compat\"\ntreatment.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f0746eca8f4413336fe851d1e5b3871bc9fa506e",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/ptrace-common.h",
      "new_id": "21884535fee61315541c52930c83383ac453a188",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/ptrace-common.h"
    },
    {
      "type": "modify",
      "old_id": "da53b0d4114b57149eef3dbba9c37e5abcf5e54a",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/ptrace.c",
      "new_id": "230d5f5bfab68e7489b48a7d5c6e021a438594bd",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/ptrace.c"
    },
    {
      "type": "modify",
      "old_id": "1bf1f450e1aba2e4c044a2c9cb283e7d78070ad9",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/ptrace32.c",
      "new_id": "98b1580a2bc279ba7488e9c7750a835d23718d46",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/ptrace32.c"
    },
    {
      "type": "modify",
      "old_id": "4ad77a13f8652ebdf69aa2225ceea03346916212",
      "old_mode": 33188,
      "old_path": "include/asm-powerpc/ptrace.h",
      "new_id": "53d24584e9680b844d86c27fd92b24a1f5e7cb27",
      "new_mode": 33188,
      "new_path": "include/asm-powerpc/ptrace.h"
    }
  ]
}
