)]}'
{
  "commit": "e130873a4709b6e28b3533c967d961b429c32c4e",
  "tree": "be37c537795d139afdc1ea81927c17c6c5c20291",
  "parents": [
    "ecef0caf4f46613c68388ebcfc1407ea0a1b4f1b"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Mon Oct 28 15:09:13 2019 -0400"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Tue Mar 03 15:13:29 2020 -0500"
  },
  "message": "pci: add support for assigning and resetting devices\n\nThis support is rather limited.  The intent is to allow devices to be\nassigned to a process, to initialize the driver, use it as a process,\nand then tear down when the process exits.\n\nUltimately, the driver\u0027s lifecycle is a subset of the time it is\nassigned to a process.  Drivers that can support repeatedly\ninitializing and resetting their device publish this when they tell PCI\nabout their init/reset ops.\n\nBy having the driver only exist when the process exists, we can create\nan arena for DMA allocs from the user\u0027s address space that will exist\nfor the life of the driver.\n\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "41a3be8421ee65c28ac3df678a54acf63695a899",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/pci.c",
      "new_id": "58f16e8d5f712bd9144efa6b2696f897dd98e239",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/pci.c"
    },
    {
      "type": "modify",
      "old_id": "a9e50a3ebcdf0a950a1c8feb2324daea671ac30e",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/pci.h",
      "new_id": "86b9793e65e7112161446e333917f617236e0d5f",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/pci.h"
    },
    {
      "type": "modify",
      "old_id": "85c2f19f2cccd1e3250a1559fc90fb6bf181421d",
      "old_mode": 33188,
      "old_path": "kern/include/kthread.h",
      "new_id": "2c75b7f5e289b1d0ad2fad79bfc2168947147049",
      "new_mode": 33188,
      "new_path": "kern/include/kthread.h"
    },
    {
      "type": "modify",
      "old_id": "f014f8338d78f70e1df7bd1bd0d190aa3228d6dc",
      "old_mode": 33188,
      "old_path": "kern/include/slab.h",
      "new_id": "fb0c5d908f24a5b855dd7062a92ddb6084a48dd4",
      "new_mode": 33188,
      "new_path": "kern/include/slab.h"
    }
  ]
}
