)]}'
{
  "log": [
    {
      "commit": "96c1db7b9d601c31d103389cac074a6cce0d7633",
      "tree": "510f40be13090fa582b61aed7c3eb7e70d3ff559",
      "parents": [
        "6c01208e902b18aad4b0254ccb95b94a2b5fc341"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 25 13:48:01 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 25 13:48:01 2017 -0700"
      },
      "message": "Remove the repetitive warnings from the uapi headers.\n\nHaving\n\n  WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS\n\nevery four lines made the headers harder to read, made the diffs much worse\neach time we upgraded, and wasn\u0027t really providing any benefit. Before the\nnext uapi update, let\u0027s just stop doing this.\n\nBug: N/A\nTest: builds, manually inspected files look right\nChange-Id: Id7088cf750894c9d24950f3d53587fe3156c4f7d\n"
    },
    {
      "commit": "15d3fef0da03a8548fd25ec75381e86eea5c6882",
      "tree": "49c2f1e85deed4d19f4d4b42c62cb616d0fff18a",
      "parents": [
        "3f76dadf15aa8ca4f2eaf471a9a1f1c661b353c2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 24 12:26:48 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 02 15:21:42 2017 -0800"
      },
      "message": "Refactor the kernel update scripts.\n\nThe previous versions of the scripts did a lot of redundant changes\nand were hard to follow.\n\nI rewrote most of update_all.py so that it\u0027s clear about what\u0027s going on.\n\nI updated clean_header.py to change the cleanupFile function so that\nthere is no magic about where the destination file is going to wind up.\nNow the caller specifies the final location.\n\nI updated utils.py so that if you are trying to do an update in one\nlocation, but your lunch target is from another location, it causes\nan error.\n\nBug: 35726570\n\nChange-Id: Ic5a44d90c2774a627eecde34c0c403bc925a497c\nTest: Ran the updater and verified it works properly.\nTest: Verified that doing an update in one tree to another tree\nTest: fails.\n"
    },
    {
      "commit": "5956b4e31441399430b990ecf006e694703f4c5f",
      "tree": "a8e4122cb297e42663a9f0b0832a0b62e674c46d",
      "parents": [
        "237366867a4fbd8c2fed74512ca26d2ce3b39b82"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 20 12:28:56 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 22 12:21:25 2016 -0700"
      },
      "message": "More kernel header cleanup.\n\nModify the generate script to add a new option and copy the types.h\narm header file since it\u0027s not currently being created properly. Also\nmanually generate the arm types.h uapi header since it\u0027s not being\nproperly generated right now.\n\nModify both generate scripts to delete the target directories before\nadding the files to handle moved/deleted header files.\n\nMove the common/scsi headers into android and delete the common\ndirectory. Change the scripts to reflect this change.\n\nUpdate the scsi headers since they\u0027ve been modified in upstream kernels.\n\nBug: 30072483\n\nChange-Id: Ia43d4b238b6a041350d60cc30184ecbd4829d7d5\n"
    },
    {
      "commit": "d12c332018143e731337292910b03fa0f41b2ca2",
      "tree": "e87bc9b2828da12f90cdf15bd7f07a00ff8de4a2",
      "parents": [
        "14545d4ce3dd446f20a14dcff37d60ff8d756f7a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 15 14:13:17 2015 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 17 21:02:52 2015 -0700"
      },
      "message": "Add support for manually modified kernel headers.\n\nThis changes the scripts so that if some kernel files exists\nin external/kernel-headers/modified, that they will be preferred\nover the same files found in original. This is to support the case\nwhere the kernel headers cannot be taken without some small modifications.\n\nIncluded with this change, is a general cleanup of the python scripts.\n\nThis also modifies the generate uapi headers script to indicate if the\nsource of the modified headers has changed.\n\nChange-Id: Id13523b244ced52a2ecd9f1399c43996dd8296fa\n"
    },
    {
      "commit": "d7db594b8d1dab36b711bd887a9dd21675c87243",
      "tree": "214b4e6e4510386ffc05c9a43dd3c153c6cf89a0",
      "parents": [
        "11829be3e1a9e9e2271ba64a78c327bde6e044eb"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Wed Jan 28 10:07:51 2015 -0800"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Fri Feb 06 14:48:41 2015 -0800"
      },
      "message": "Switch kernel header parsing to python libclang\n\nReplace the tokenizer in cpp.py with libclang.\n\nBug: 18937958\nChange-Id: I27630904c6d2849418cd5ca3d3c612ec3078686d\n"
    },
    {
      "commit": "dc1fb7000adb77c647f70428fd6ce224e3938220",
      "tree": "b1fb3ac1fd01134601776f82b5d13a2651ed66ec",
      "parents": [
        "55244a9bdbc661212999655644c374352ae92040"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 20 11:16:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 20 11:16:11 2014 -0700"
      },
      "message": "Clean up some of our python scripts.\n\nChange-Id: Ifa75345db43434298cfb6113fbe2f7a33b88c79d\n"
    },
    {
      "commit": "08b60747fe99623f3ae6d5f351a4c08c7b020207",
      "tree": "196e891e7307556d3af662434fda9a2aa3661ec5",
      "parents": [
        "9c101eb9d12a87c9b68fce9052751df75e36d172"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 05 11:17:06 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 06 13:54:36 2014 -0700"
      },
      "message": "Update kernel header generation docs.\n\nAlso move the description of the cleanup data to the cleanup script.\n\nBug: 15433575\nChange-Id: I21e2cbbfab55da483af1bbe36bbe59126b518e3c\n"
    },
    {
      "commit": "fddbafdc0a63a1b4c5e9252719a913197a4eecfa",
      "tree": "f108fcc8076996cac4950f9e217b796bacd047dc",
      "parents": [
        "9fb53dd4dbaa7633c234d9da8417827fa3d3c32f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 01 10:17:27 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 01 10:27:49 2014 -0700"
      },
      "message": "Keep the kernel header scrubber\u0027s data structures in sync.\n\nIf you rewrite the tokens of a #if you need to rewrite the expression to match\nbecause either might be used later. This was showing up as SIGRTMAX being\nrewritten in a #define but not in the #ifndef that guarded it, for which case\nI\u0027ve added a unit test.\n\nChange-Id: I6929675461a1afe272edd667594529fd84a3dc4d\n"
    },
    {
      "commit": "8bea2b6faca554a145bdafc6f3afafec1f3120b6",
      "tree": "f79aa40bf5642dc106cf4041402e935a4a92d165",
      "parents": [
        "1f29c2f51097b68110bc2766a7c1560d6a8831d0"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Oct 16 15:28:56 2013 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Oct 16 15:28:56 2013 -0700"
      },
      "message": "Tweaked the cleanup scripts to handle uapi and aarch64 headers.\n\nThe processed uapi directory is now placed at libc/kernel/uapi as\nopposed to libc/kernel/common/uapi as it contains\narchitectural-dependent headers now.\n\nChange-Id: I53f814704a4d231b452fde398cd94257a0fb2eea\n"
    },
    {
      "commit": "a864c2c23486e4ab7235829d8c9574426794298a",
      "tree": "1666c13eb53aab178af4d5d2f4d177e2bd3e1ea2",
      "parents": [
        "f3fe19459fd9263e8cc8a413a5313b1ec3cf3975"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Wed Jan 16 16:42:47 2013 -0800"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Jan 17 14:39:09 2013 -0800"
      },
      "message": "Add functionlity to the scripts to replace tokens in kernel headers\nbased on architecture.\n"
    },
    {
      "commit": "126601dd3f5303b50033dcb88945d928aa764aa4",
      "tree": "36f80c2aaa18e794fc65cd4a756a28146bd50b5e",
      "parents": [
        "eaae81082cb76efa43a2c3fb57997b28ca270634"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Fri Mar 23 23:07:36 2012 +0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Fri Mar 23 23:07:36 2012 +0800"
      },
      "message": "Fixed to #include correct 32-bit headers; Refreshed libc/kernel headers\n\nThis patch fixes an issue where 64-bit hreaders are incorrectly included\nin kernel headers.  For example, file \"libc/kernel/arch-x86/asm/io.h\"\nincorreclty includes \"io_64.h\" (missing, BTW) instead of \"io_32.h\".\n\nThe reason is because CONFIG_X86_32 isn\u0027t considered pre-defined in\n\"kernel_default_arch_macros\" for x86, and clean_header.py doesn\u0027t\nlook at it at all anyway (ie. __i386__ is also ignored, but it\u0027s\nokay since x86 cross compiler defines it back)\n\nFixed 2 tools/*py, README.TXT, and refreshed libc/kernel headers\n\nChange-Id: Iac834cc8b3548f055d3f2a214af36072dd679fe8\n"
    },
    {
      "commit": "c61f99056634119806916d5dfb58505d432e6732",
      "tree": "e0122e41506b805eb153c7185aa49826df0f5f31",
      "parents": [
        "e4ade69654d9026310ce7a895f14aa67947b4f31"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 19 11:27:50 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 13 07:41:20 2012 -0800"
      },
      "message": "Fix misspelled Python variable name and typos\n\nTypos:\n - Update pathname in README.txt\n - Fix missing newlines in header update script.\n\nChange-Id: Ib0e053f92a27ff10071b9805fa64e5653ab31b0c\n"
    },
    {
      "commit": "7b6795dad91988d76a282fc2b033f0cc5585ee65",
      "tree": "6865006286576b39f02115f2fae1ac72791706ec",
      "parents": [
        "9d918606123cbf8656517868a65437b0a832aa9e"
      ],
      "author": {
        "name": "Frank Maker",
        "email": "ffrank@google.com",
        "time": "Wed May 25 11:07:04 2011 -0700"
      },
      "committer": {
        "name": "Frank Maker",
        "email": "ffrank@google.com",
        "time": "Wed May 25 17:28:37 2011 -0700"
      },
      "message": "Fixed bug where -k option would not be passed to cleanupFile function\nChanged cleanupFile to have no default original path, forcing it to be passed instead, thereby conforming to the Google Python style guide.\n"
    },
    {
      "commit": "fc2693110ee8a2ba22a445ad9855fbe9e118d439",
      "tree": "6bbfcf0620780f454b5c0ac2dbd5341a00cfa157",
      "parents": [
        "040e18f362716c0bab1d9c39a869b98d6c61584c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Oct 11 22:11:06 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Feb 03 18:07:41 2011 +0100"
      },
      "message": "libc: Update auto-gen scripts\n\nMake the scripts use external/kernel-headers/original by default.\n\nclean_header.py:  Document -k\u003cpath\u003e, add -d\u003cpath\u003e\nfind_headers.py:  Make kernel config files optional\nupdate_all.py:    Allow setting the path to kernel headers on the command-line\nupdate_all.py:    Better formatting of output on ttys\nupdate_all.py:    Automatically perform \"git add/rm\" on affected files.\nSYSCALLS.TXT:     Fix typo in __socketcall definition.\nchecksyscalls.py: Add support for superH architecture in the checks.\ngensyscalls.py:   Automatically perform \"git add/rm\" on affected files.\ncpp.py:           Fixed a bug that prevented certain type definitions to\n                  be kept in the generated clean header (e.g.\n                  struct ethtool_drvinfo in \u003clinux/ethtool.h\u003e)\n\nAll scripts will use the content of external/kernel-headers/original by default now.\n\nThe generated code removes all empty lines and trailing whitespace. This is useful\nto ensure a unified output even if we change the parser again in the future.\n\nThe top-level disclaimer has been edited with update instructions to regenerate\nthe headers when needed.\n\nAlso, a warning is now inserted every 8th line in the final output:\n\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\n\nChanges under kernel/arch-arm and kernel/arch-x86 should correspond to whitespace\ndifferences and additionnal struct definitions that were missed by the previous\nparser implementation.\n\nChange-Id: Icd1c056bacd766759f3e9b7bb5d63a246f3d656a\n\nWARNING: If you run these script, do not submit the result to gerrit for now.\n         It seems there are discrepancies between the content of original headers\n         and those currently commited under bionic/libc/kernel/.\n\n         (This problem is the main motivation to insert the warning repeatedly).\n\n         Current list of issues:\n\n           - Missing SuperH headers (i.e. external/kernel-headers/original/asm-sh)\n"
    },
    {
      "commit": "c9205dba43c45dc5a185aa26e1160c3f62e9b471",
      "tree": "fdc369cc402eacf20c904fc278bd376af94b1f87",
      "parents": [
        "d32c8052fc2b2d3c5da344eb673df35d4a5bc052"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Dec 08 11:39:05 2010 +0100"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Dec 08 11:41:37 2010 +0100"
      },
      "message": "Replace all occurrances of asm with __asm__ in the output headers\n\nasm() conflicts with userland code compiled with -std\u003dc99, the userland\nlibc should only use __asm__() instead. Therefore, this transformation\nhas to be applied to all exported headers.\n\nThis only changes arch-arm/asm/byteorder.h.\n\nChange-Id: I1cf88c37201c3a91668d387293a18885c316d53c\n"
    },
    {
      "commit": "4c4a9632bdb5189011b74d63847ee4bbd6daea4b",
      "tree": "c053b4789786d00aad7c3cabdfb0ac7c64db94bf",
      "parents": [
        "6e36f86333486ac60dfa9684d1af9475e5a90a11"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Aug 05 17:55:30 2009 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Aug 05 17:56:55 2009 -0700"
      },
      "message": "libc: kernel: let clean_header tool take path to kernel originals as argument\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "6d6c82c7a0a6b9a89f61b61c66f9b90d9c7177dc",
      "tree": "8de86895228b63728c3a134c8b1fcab003db467d",
      "parents": [
        "4e468ed2eb86a2406e14f1eca82072ee501d05fd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:50:54 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:50:54 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
