)]}'
{
  "commit": "633a69e363f625c0034d513f3bb87d7ca58b598a",
  "tree": "44870bb62d6fe1ce367508e542498fdfe8d22337",
  "parents": [
    "4d07df833ebbf808f6365cdc96929ed7bf2dad9d"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Thu Mar 30 20:08:11 2017 -0400"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Thu Mar 30 20:08:11 2017 -0400"
  },
  "message": "9ns: Align struct dirtab to 64 bytes\n\ndevvars puts struct dirtabs into a linker table.  Those tables are all\n64 byte aligned, and the objects within the table will be laid out with\n64 byte alignment.\n\nThis was probably the cause of the intermittent startup assertion\nfailure in vars_init() (couldn\u0027t find \".\").  \".\" is at the end of the\nvars table, and any confusion regarding the length, size, or alignment\nof the tables and objects could result in not memcpying that item.\n\nI noticed this when changing the KNAMELEN, which increased the size of\nthe dirtab to 0x120 bytes.  That\u0027s 32-byte aligned, not 64.  However,\nthe objects within the table were laid out (by the linker) in 0x140 byte\nstrides: 0x120 rounded up to 64.  Additionally, before I fixed this\nalignment, vars_init() had a hard time doing pointer arithmetic on the\nstruct dirtab *s, and would come up with a really large number.  Doing\nthe math manually worked.\n\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "eb7fa9cbc6271f4de7d649ad6598951a8871f064",
      "old_mode": 33188,
      "old_path": "kern/include/ns.h",
      "new_id": "2e6fa2fbcfc657f1137889c3007e38d8598f9fdc",
      "new_mode": 33188,
      "new_path": "kern/include/ns.h"
    }
  ]
}
