)]}'
{
  "log": [
    {
      "commit": "666f62e1c77566beacf597edfb21d0c1053df6f6",
      "tree": "630f2b2b05cca5e40a966d0efa0d6207bd5cae5c",
      "parents": [
        "c2a89f396bf4a9601508cec7365ce33495cb4bd6",
        "f2570c2f92f1d7b92dbbb438987f716c66258ef4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 05 19:38:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 05 19:38:25 2018 +0000"
      },
      "message": "Merge \"libsync: OWNERS.\""
    },
    {
      "commit": "f2570c2f92f1d7b92dbbb438987f716c66258ef4",
      "tree": "b8343ffb3f80b6a967b701d139804261713e6552",
      "parents": [
        "d580c441ab45a6b7278da003e19af64e9ea2cc71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 05 10:56:38 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 05 10:56:38 2018 -0700"
      },
      "message": "libsync: OWNERS.\n\nBased on git shortlog and my memory.\n\nBug: N/A\nTest: N/A\nChange-Id: I2e821a1214c349fd75f2971f632de3d30c602b83\n"
    },
    {
      "commit": "eed25df46a22a143a0341113759894c23a9b6cbf",
      "tree": "258eea596705e2709354471eace7f3b135c1cfac",
      "parents": [
        "798ba95bda14f9f28561a2a27ba406537f8bb8a8"
      ],
      "author": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Tue Jun 05 17:22:32 2018 +0000"
      },
      "committer": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Tue Jun 05 17:22:32 2018 +0000"
      },
      "message": "Revert \"sync: remove legacy sync info API\"\n\nThis reverts commit 798ba95bda14f9f28561a2a27ba406537f8bb8a8.\n\nBrodcom uses the sync_fence_info_data directly.\nhttps://android-build.googleplex.com/builds/submitted/4821789/elfin-userdebug/latest/view/logs/build_error.log\n\nChange-Id: I72fed683397e9b10007b71253e20ded43726d377\n"
    },
    {
      "commit": "798ba95bda14f9f28561a2a27ba406537f8bb8a8",
      "tree": "cc40d34a10ca49f5e8bb7dc5034eb6f383a0205d",
      "parents": [
        "2576a439e6c4a750e001e70d73a33d9519bb7660"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri May 04 15:17:39 2018 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 23 16:45:48 2018 -0700"
      },
      "message": "sync: remove legacy sync info API\n\nThe legacy fence/pt info API has been deprecated for a while. This\nchange removes it from headers, so remaining users will have to switch\nto the modern API when they\u0027re re-compiled. The functions are still\nprovided by libsync.so and tests remain, so existing binaries should\ncontinue to work. Eventually these will be removed too, though, once\nit\u0027s reasonable to expect those binaries to have been recompiled.\n\nBug: 35326015\nTest: make checkbuild\nTest: adb shell dumpsys SurfaceFlinger --latency\nChange-Id: Id086fafe37c2bc1cfdca4a21107bc9208ed61f89\n"
    },
    {
      "commit": "2576a439e6c4a750e001e70d73a33d9519bb7660",
      "tree": "258eea596705e2709354471eace7f3b135c1cfac",
      "parents": [
        "8cf185e5429523055c4de6c71deabd603b95b2de"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 23 16:22:46 2018 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 23 16:45:48 2018 -0700"
      },
      "message": "Remove obsolete sync_test.c\n\nTests in this file depends on long out-of-date behavior of the sync\napi. More current tests are in tests/sync_test.cpp.\n\nTest: quis custodiet ipsos custodes?\nChange-Id: Ia0a0970dde17c1ae4e1d79fac1a9fe3b54e8fcd6\n"
    },
    {
      "commit": "55a76719e28740c289f553978d5c4226faf5ca05",
      "tree": "7e0d3932636eacbda7ffdb9bedd0f0ab41f260b9",
      "parents": [
        "07de83831f9a2bf67e1c4a4df72baed42b26c7e9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 13 14:49:41 2018 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Apr 13 14:49:41 2018 -0700"
      },
      "message": "Add missing @addtogroup tags.\n\nThese NDK docs weren\u0027t in any groups, so they don\u0027t show up in the\nnew site.\n\nTest: https://irina-dot-devsite.googleplex.com/ndk/reference/group/logging\nTest: https://irina-dot-devsite.googleplex.com/ndk/reference/group/sync\nBug: http://b/77236573\nChange-Id: I300f96585dec94359ecf96fbf39c6dc3ec4579e5\n"
    },
    {
      "commit": "6832535cd5c409325aa4f257fdebf03080f0f9dc",
      "tree": "f77a417efea578a0c8dfeb7c5290c50c97996ab2",
      "parents": [
        "a0dd1adab0010b61ea7ad2ebce3e9cc598cbe5bd",
        "68223500ea8a7608b1446ac39428118e9b16f625"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 26 23:46:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 26 23:46:32 2017 +0000"
      },
      "message": "Merge \"libsync: Add fence info tests\""
    },
    {
      "commit": "68223500ea8a7608b1446ac39428118e9b16f625",
      "tree": "23ab6a3926746612d0f6207cb86634b62ec145fa",
      "parents": [
        "dea5e081ac0f94a83650a600af881b529817b6fd"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@collabora.com",
        "time": "Fri Sep 15 09:45:40 2017 +0300"
      },
      "committer": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@collabora.com",
        "time": "Tue Sep 26 13:09:35 2017 +0300"
      },
      "message": "libsync: Add fence info tests\n\nThis patch adds regression tests to check that the fence info returned\nby libsync contains valid data.\n\nTest: sync-unit-tests\n\nChange-Id: I0c57c49b7be563efc9a43f12381059f20e0a4e52\nSigned-off-by: Alexandros Frantzis \u003calexandros.frantzis@collabora.com\u003e\n"
    },
    {
      "commit": "90a74600d772ee578aaf5c63005e2d80b0d223c9",
      "tree": "f8ac4b2019959b65429abfdc2ad3c52b3574d5c7",
      "parents": [
        "22a10f6766cd3ae07217b9a93c44381f52aa7018"
      ],
      "author": {
        "name": "Saurabh Shah",
        "email": "saurshah@quicinc.com",
        "time": "Tue Aug 01 13:54:21 2017 -0700"
      },
      "committer": {
        "name": "Marissa Wall",
        "email": "marissaw@google.com",
        "time": "Mon Sep 25 15:51:46 2017 -0700"
      },
      "message": "sync: store the num_fences from first SYNC_IOC_FILE_INFO\n\nFixes a bug with the signal time of devices using the\nmodern sync file interface. The bug only affects kernels running\nan Android kernel 4.9 and later.\n\nb/63395253\n\nTest: tests/sync_test.cpp\n\nChange-Id: I6fb00bcb8e16a3268c357153edd8e35a44546caa\n"
    },
    {
      "commit": "b87f884b99e5daa74a845b3b3e8881cda88a389e",
      "tree": "fda64b434b9a8b72b2237f5e780c7fcdf638ae95",
      "parents": [
        "b5ec6a032c254bbbb8508e870035660c86485b5d"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Aug 14 15:21:28 2017 +0900"
      },
      "committer": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Fri Sep 15 00:33:52 2017 +0000"
      },
      "message": "Mark libsync as LL-NDK\n\nlibsync is used both by platform (e.g. libui.so) and by same-process\nHALs (e.g. android.hardware.graphics.mapper@2.0-impl.so). Therefore it\nis eligible for either VNDK-SP or LL-NDK. Among the two choices, LL-NDK\nwas selected because it is already an NDK and is just a thin wrapper\naround a few kernel ioctls.\n\nHowever, since libui (which is a vendor_available:true library) is using\nmore symbols that are not available to NDK clients, the extra symbols\nare exposed as # vndk tag so that they are only available to VNDK\nclients, but not to NDK clients.\n\nBug: 63866913\nTest: BOARD_VNDK_VERSION\u003dcurrent m -j successful (2017 pixel)\nTest: the built image is bootable\nMerged-In: I60f883c049bd9b4562e6ce34d34ead47ba28af5f\nChange-Id: I60f883c049bd9b4562e6ce34d34ead47ba28af5f\n(cherry picked from commit 058e0919f6aff67d32d00591a7040fc069c6e40f)\n"
    },
    {
      "commit": "b5ec6a032c254bbbb8508e870035660c86485b5d",
      "tree": "191947eb8f175dc6bfe14e7d4ae88a955efd018f",
      "parents": [
        "0a01830612762e226570f73d54c415a621e88297"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Jun 12 10:51:34 2017 -0700"
      },
      "committer": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Fri Sep 15 00:32:27 2017 +0000"
      },
      "message": "Fix NDK libsync to match ndk/sync.h\n\nThe header names were changed during review, but the library map file\nwasn\u0027t updated.\n\nBug: 62229958\nTest: CtsGraphicsTestCases:android.graphics.cts.SyncTest\nMerged-In: Ie5955865667b35067f1ee209933f159f170419cd\nChange-Id: Ie5955865667b35067f1ee209933f159f170419cd\n(cherry picked from commit 59d9ee5d020c54d89cbb520b30fa19765a68646d)\n"
    },
    {
      "commit": "4ff5ff29d26cd028d5d78f5b764dab380fd7c9f4",
      "tree": "283434227e4125590c2e3cd0346b6394854cb685",
      "parents": [
        "f899548cdb18a56db9ad0c0c5ecd1941a6b23255"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Sep 05 16:26:36 2017 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Sep 05 16:26:36 2017 -0700"
      },
      "message": "libsync: Fix a double-free.\n\nsync_file_info, the only caller of legacy_fence_info_to_sync_file_info,\nunconditionally frees legacy_info after\nlegacy_fence_info_to_sync_file_info is called. So, if this calloc\nfails, we\u0027ll end up freeing legacy_info twice.\n\nBug: 27101951\nTest: mma. Static analyzer complaint about double-free is gone.\nChange-Id: I43bf820af9aadf30cb8eabce57416f69a8fccf89\n"
    },
    {
      "commit": "f7b315c985a9822ea279f65262fe03e2dabefb14",
      "tree": "9080b714ce6903ca167e4c1eee8d5dd834f9e64a",
      "parents": [
        "f23f21a2311e1c254456607de0d83ae1153ba4c8",
        "80ec81cf4b9f4e9a529df618ea38a3f995a2f249"
      ],
      "author": {
        "name": "Lennart Wieboldt",
        "email": "lennart.1997@gmx.de",
        "time": "Tue Jul 25 22:28:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 25 22:28:56 2017 +0000"
      },
      "message": "Merge \"Remove LOCAL_CLANG and clang: true\"\nam: 80ec81cf4b\n\nChange-Id: Ia7f79d8e25ee9870fe44d198568d0e5dabdff811\n"
    },
    {
      "commit": "cd15fc7ba80b31539e85792ec35d7ebe0c8ff764",
      "tree": "b834af3b7e5dbb8562b06face0bd2bbaecf0e10a",
      "parents": [
        "603cae8b4812c21b92f559d190c7d21534dbeef7"
      ],
      "author": {
        "name": "Lennart Wieboldt",
        "email": "lennart.1997@gmx.de",
        "time": "Mon Jul 24 19:32:07 2017 +0200"
      },
      "committer": {
        "name": "Lennart Wieboldt",
        "email": "lennart.1997@gmx.de",
        "time": "Tue Jul 25 14:29:50 2017 +0200"
      },
      "message": "Remove LOCAL_CLANG and clang: true\n\nclang is the default compiler since Android nougat\n\nTest: mma \u0026 verified it´s still build with clang\nChange-Id: I34adaeef2f6558a09f26027271222bad94780507\nSigned-off-by: Lennart Wieboldt \u003clennart.1997@gmx.de\u003e\n"
    },
    {
      "commit": "9990de1f643c9dc581e2977ae7222a21c39389b0",
      "tree": "2ccce25533378a065bfb96aaab37c47199dce123",
      "parents": [
        "2bd434223415b09ce7d0e21eb74e81c8c2174b3d"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 23:27:20 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Apr 19 10:32:51 2017 -0700"
      },
      "message": "libsync: vendor_available\n\nBy setting vendor_available, the following may become true:\n\n* a prebuilt library from this release may be used at runtime by\n  in a later releasse (by vendor code compiled against this release).\n  so this library shouldn\u0027t depend on runtime state that may change\n  in the future.\n* this library may be loaded twice into a single process (potentially\n  an old version and a newer version). The symbols will be isolated\n  using linker namespaces, but this may break assumptions about 1\n  library in 1 process (your singletons will run twice).\n\nBackground:\n\nThis means that these modules may be built and installed twice --\nonce for the system partition and once for the vendor partition. The\nsystem version will build just like today, and will be used by the\nframework components on /system. The vendor version will build\nagainst a reduced set of exports and libraries -- similar to, but\nseparate from, the NDK. This means that all your dependencies must\nalso mark vendor_available.\n\nAt runtime, /system binaries will load libraries from /system/lib*,\nwhile /vendor binaries will load libraries from /vendor/lib*. There\nare some exceptions in both directions -- bionic(libc,etc) and liblog\nare always loaded from /system. And SP-HALs (OpenGL, etc) may load\n/vendor code into /system processes, but the dependencies of those\nlibraries will load from /vendor until it reaches a library that\u0027s\nalways on /system. In the SP-HAL case, if both framework and vendor\nlibraries depend on a library of the same name, both versions will be\nloaded, but they will be isolated from each other.\n\nIt\u0027s possible to compile differently -- reducing your source files,\nexporting different include directories, etc. For details see:\n\nhttps://android-review.googlesource.com/368372\n\nNone of this is enabled unless the device opts into the system/vendor\nsplit with BOARD_VNDK_VERSION :\u003d current.\n\nBug: 33241851\nTest: build and flash internal marlin\nTest: m -j libsync\nTest: build with BOARD_VNDK_VERSION :\u003d current\n(cherry picked from commit d0b26edf309cc090569dae65aa3ab6bf8361b020)\nMerged-In: I5b23d2c1f41b842e5a9b7ea257921133b80c3f98\nChange-Id: I5b23d2c1f41b842e5a9b7ea257921133b80c3f98\n"
    },
    {
      "commit": "5bebf84845bbe1fd7fa9b12592589b443b3615a2",
      "tree": "2cec75911623d76be5c1b19c6f53330db2a12919",
      "parents": [
        "54cd7e0d2c874f962b63c7a06ea58c97686465fc"
      ],
      "author": {
        "name": "Alistair Strachan",
        "email": "alistair.strachan@imgtec.com",
        "time": "Mon Mar 06 17:11:43 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Apr 14 15:12:06 2017 -0700"
      },
      "message": "libsync: ndk: Fix compilation in C mode.\n\nUse of \u0027inline\u0027 without \u0027static\u0027 may allow the C compiler to uninline it\nwithin the compilation unit, depending on the C standard level. Always\nusing \u0027static inline\u0027 avoids this problem.\n\nTest: build + boot to launcher\nChange-Id: Ifb6e1fa6b84286067ddc2daca4c8942c410e56ab\n"
    },
    {
      "commit": "d0b26edf309cc090569dae65aa3ab6bf8361b020",
      "tree": "3bef8aa1d5fd939f2c301d5f4376ec376e3c568b",
      "parents": [
        "5975d4e33724047d73883ca84fda8b360f2fe000"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 23:27:20 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 13 23:28:39 2017 -0700"
      },
      "message": "libsync: vendor_available\n\nBy setting vendor_available, the following may become true:\n\n* a prebuilt library from this release may be used at runtime by\n  in a later releasse (by vendor code compiled against this release).\n  so this library shouldn\u0027t depend on runtime state that may change\n  in the future.\n* this library may be loaded twice into a single process (potentially\n  an old version and a newer version). The symbols will be isolated\n  using linker namespaces, but this may break assumptions about 1\n  library in 1 process (your singletons will run twice).\n\nBackground:\n\nThis means that these modules may be built and installed twice --\nonce for the system partition and once for the vendor partition. The\nsystem version will build just like today, and will be used by the\nframework components on /system. The vendor version will build\nagainst a reduced set of exports and libraries -- similar to, but\nseparate from, the NDK. This means that all your dependencies must\nalso mark vendor_available.\n\nAt runtime, /system binaries will load libraries from /system/lib*,\nwhile /vendor binaries will load libraries from /vendor/lib*. There\nare some exceptions in both directions -- bionic(libc,etc) and liblog\nare always loaded from /system. And SP-HALs (OpenGL, etc) may load\n/vendor code into /system processes, but the dependencies of those\nlibraries will load from /vendor until it reaches a library that\u0027s\nalways on /system. In the SP-HAL case, if both framework and vendor\nlibraries depend on a library of the same name, both versions will be\nloaded, but they will be isolated from each other.\n\nIt\u0027s possible to compile differently -- reducing your source files,\nexporting different include directories, etc. For details see:\n\nhttps://android-review.googlesource.com/368372\n\nNone of this is enabled unless the device opts into the system/vendor\nsplit with BOARD_VNDK_VERSION :\u003d current.\n\nBug: 33241851\nTest: build and flash internal marlin\nTest: m -j libsync\nTest: build with BOARD_VNDK_VERSION :\u003d current\nChange-Id: I5b23d2c1f41b842e5a9b7ea257921133b80c3f98\n"
    },
    {
      "commit": "db9b260096dc13f3733dceba9d0935f0323b9b36",
      "tree": "67fa0ce8d0c1b127b3f244e8cc2854d500a1a9b3",
      "parents": [
        "c8202dc5f72e45079f71b7b52e11d58d16bb7409"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 10 12:58:03 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 10 12:58:03 2017 -0700"
      },
      "message": "Remove .(ll)ndk suffix from (ll)ndk_library\n\nSoong handles these automatically now.\n\nBug: 33241851\nTest: Android-aosp_arm.mk is the same before/after\nTest: build.ninja is the same before/after\nTest: build-aosp_arm.ninja is the same before/after\nChange-Id: Ia039812817495c00e450eec7292447d5e8f93adb\n"
    },
    {
      "commit": "6cd0fc56c0a2cb8fdf897f49f013f86dc698d793",
      "tree": "95b08eab695324bf4b9ba22c3940857ff74e5097",
      "parents": [
        "dec150ff58e0c48fc96c9e0222bda6c2afd23869"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sat Feb 18 21:51:04 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Mar 08 17:34:14 2017 -0800"
      },
      "message": "sync: Cache knowledge of kernel uapi version\n\nPreviously all libsync calls would try first the modern/mainline uapi\nand if that failed try the legacy uapi, or vice versa. This is\ninefficient, and confusing when looking at strace. With this change,\nafter the first successful syscall, libsync know\u0027s what uapi version\nthe kernel supports, and will only try that version in the future.\n\nTest: sync-unit-tests on bullhead\nChange-Id: I8b5de0194da0cfc6c080c0180318e16bb673d3c9\n"
    },
    {
      "commit": "41129a2526d4a8bc3510bc65c0e39e1e9d4700d2",
      "tree": "2e0ffa0c4c47072e77e8214c53d223078907ce64",
      "parents": [
        "b7fdb2a1284143b8cee11483646b8753262ad165"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Feb 13 15:19:24 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: rename sync/sync.h to android/sync.h\n\nLeave a temporary symlink from the old name to avoid having to change\nall dependencies simultaneously.\n\nBug: 1901466\nTest: m\nChange-Id: Id210f0091457e52e1a6e048d241a723bdbe8779b\n"
    },
    {
      "commit": "b7fdb2a1284143b8cee11483646b8753262ad165",
      "tree": "e6ae6d912d3a674900bdf789fb79581c1729b652",
      "parents": [
        "836661616fcf4bc023b192d1c320f0727a9dfef9"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Feb 12 16:42:11 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: move declarations from sync/sync.h to sync.c\n\nNone of these should be needed or used outside of sync.c.\n\nTest: lunch bullhead-eng ; m\nChange-Id: I548a499d0e2ada2ab4987e63a8116327c3be0076\n"
    },
    {
      "commit": "836661616fcf4bc023b192d1c320f0727a9dfef9",
      "tree": "49e82464c7eca7aa4774f45ae099918ddb66d0e9",
      "parents": [
        "89530820d7f5837f00f3f04e18dfa05c7506eb68"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Feb 12 16:32:39 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: implement sync_file_info\n\nAlso modifies sync-unit-test to use sync_file_info instead of the\ndeprecated sync_fence_info, but check that they match in several tests.\n\nBug: 35138793\nTest: sync-unit-tests on bullhead\nChange-Id: Ic672d1c89798435a8b71469500e82c770a66bf4d\n"
    },
    {
      "commit": "89530820d7f5837f00f3f04e18dfa05c7506eb68",
      "tree": "139b29fe359550c6999821b9dd499ed228849ed7",
      "parents": [
        "081806e5f2e9f8b573827b0f3d4b35d8ddb64cb9"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Feb 12 16:17:22 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: refactor sync_fence_info\n\nSplit the sync_fence_info implementation into multiple functions. This\nclarifies the logic, and allows the parts to be reused in the upcoming\nsync_file_info function.\n\nTest: sync-unit-tests on bullhead\nChange-Id: I0ea37067dddf41b831670f08eb99e0b7fd52adce\n"
    },
    {
      "commit": "081806e5f2e9f8b573827b0f3d4b35d8ddb64cb9",
      "tree": "435c00fbdaa48dac5440db4f91b9a433d5f1abb5",
      "parents": [
        "077ffd5055538e79d20fb5de964083cfbe10dc3f"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sat Feb 11 22:50:02 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: Add NDK sync.h and libsync\n\nThe new header provides an updated interface to libsync appropriate\nfor the NDK. Clients use existing syscalls where possible (e.g. poll()\ninstead of sync_wait()), and the remaining functions return structures\nused in mainline Linux kernels rather than the Android staging sync\nframework.\n\nOver time, framework clients will be migrated to using the NDK\ninterface, which will eventually replace the current internal\ninterface. The only difference is the header will be named\n\u003candroid/sync.h\u003e in the NDK and \u003csync/sync.h\u003e internally.\n\nBug: 35138793\nTest: sync-unit-tests on bullhead\nChange-Id: Ieb3649b80565393e26b604416158438d32c2a256\n"
    },
    {
      "commit": "077ffd5055538e79d20fb5de964083cfbe10dc3f",
      "tree": "d86e67a7aeeb7b9db62a38391a9e56d1cdd10950",
      "parents": [
        "917cca2f04a88c1b307e9a4b75582ca9ecf34444"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Feb 12 16:01:36 2017 -0800"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Feb 23 18:44:50 2017 -0800"
      },
      "message": "sync: Use correct type in size calculation\n\nThe previous and current types are the same size, so this wouldn\u0027t\nhave caused a bug in practice, but it is confusing, and would have\nbeen a problem in the unlikely event we changed the size of one of the\ntypes.\n\nTest: sync-unit-tests on bullhead\nChange-Id: Ic43b81f3b4ff214af86b6b6d4d02c648f95d0c4b\n"
    },
    {
      "commit": "380b2f4fea745f4db30e5cb2ac7f5a638b33c652",
      "tree": "34ed433f94141e53e955cac62302b17cec64d75c",
      "parents": [
        "9cd890e9b7a1ae1d354815f529a0b3df1dd07aea"
      ],
      "author": {
        "name": "mtezych",
        "email": "mte.zych@gmail.com",
        "time": "Sun Jan 29 19:45:57 2017 +0100"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Jan 30 23:39:03 2017 +0000"
      },
      "message": "libsync: Replace inserting tuple into unordered_map in favour of pair.\n\nInserting tuple into unordered_map relies on non standard libc++ extension:\nhttp://stackoverflow.com/a/21313229\nThis change removes this dependency.\n\nTest: sync-unit-tests (on hikey with SW_SYNC_USER built into kernel)\n"
    },
    {
      "commit": "801492b8a66a8f08f99667a4123ce07aa4c0a4f7",
      "tree": "0e2178b062d36bd70952d97b8f82ea17a79ffe21",
      "parents": [
        "e4682802cbeeefe8e870e5b7b110515659a6a14f"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Tue Dec 06 16:13:17 2016 -0200"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:29:41 2017 -0800"
      },
      "message": "libsync: tests: redefine PollOnDestroyedTimeline()\n\nOn mainline if the sw_sync timeline is destroyed the fences doesn\u0027t not\nsignal or error. So change the test to check if the fence is still there\nby polling the fence with timeout zero and asserting if it is not\nsignalled.\n\nTest: Sync unit tests still passes.\nChange-Id: Icb8e629018eef35074ae91d0f29ed1f12e90492b\n"
    },
    {
      "commit": "e4682802cbeeefe8e870e5b7b110515659a6a14f",
      "tree": "5eee4186ed48c7d301e979471ae460d41852ac02",
      "parents": [
        "61ab0d74d218d0be32d0cab1c7ee22c5e12216fe"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Tue Dec 06 16:09:51 2016 -0200"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:29:18 2017 -0800"
      },
      "message": "libsync: tests: remove WaitOnDestroyedTimeline test\n\nThe mainline Sync File implementation doesn\u0027t have wait ioctl anymore.\nOnly poll is supported now, and we already have a test for that.\n\nTest: Sync unit tests still passes.\nChange-Id: Iadde7b2173024af9b8d20316e640297cf214c645\n"
    },
    {
      "commit": "61ab0d74d218d0be32d0cab1c7ee22c5e12216fe",
      "tree": "6525b8365ea63de8459cef0727fe63757d492424",
      "parents": [
        "ffc687baad033ecc96f6c560b205fea61afe9e41"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Sat Jun 11 11:11:19 2016 -0300"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:29:01 2017 -0800"
      },
      "message": "libsync: add support to new Sync API\n\nChange libsync functions in a way that it can run dynamically on both\nAPIs.\n\nv2: fix whitespace changes and poll return handling\n\nv3: handle error cases on sync_wait()\n\nTest: Sync unit tests still passes.\nChange-Id: I743ab92ce39cbfa75dca41dd0a435efa9f2aab66\nhange-Id: Ib56f2c6441b41028bc9f66998676790b7713988a\n"
    },
    {
      "commit": "ffc687baad033ecc96f6c560b205fea61afe9e41",
      "tree": "2f361fc5832adc9145a21dbab1bb5f88d4f8edfd",
      "parents": [
        "6786575d42e78c8faa51393871eb958d87d57e08"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Fri Jun 10 16:51:29 2016 -0300"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:28:45 2017 -0800"
      },
      "message": "libsync: open new location of sw_sync file\n\nsw_sync file for debug was moved to debugfs. Try to open it and if it\nfails try to open /dev/sw_sync.\n\nTest: Sync unit tests still passes.\nChange-Id: Ie078fbc2eb5294f28b916a9e65b7fcd3a18a8580\nhange-Id: I216874964368d939bed2779d98cd89e527a57d45\n"
    },
    {
      "commit": "6786575d42e78c8faa51393871eb958d87d57e08",
      "tree": "a02b3e2883566bec3a1edbe70e25537c8f5b5e1b",
      "parents": [
        "d6bbc5de66fc7ac51773bc92d6a48a94e622f9b1"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Fri Jun 10 16:24:49 2016 -0300"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:28:26 2017 -0800"
      },
      "message": "libsync: add new Sync kernel API\n\nAdd the new API to the internal sync.h file. As there is two different\nAPIs we will need to discovery dynamically which one to use.\n\nv2: Fix Documentation\n\nTest: Sync unit tests still passes.\nChange-Id: I2ab3cd46e48ba5d9c73d54f9583b1a8141566581\n"
    },
    {
      "commit": "d6bbc5de66fc7ac51773bc92d6a48a94e622f9b1",
      "tree": "8d28229412eb8edf4bb4906ce5a94e38a0e0d1d9",
      "parents": [
        "60c763ed52004a3c2330fd8ab7c5b2b6968e7822"
      ],
      "author": {
        "name": "Gustavo Padovan",
        "email": "gustavo.padovan@collabora.com",
        "time": "Fri Jun 10 16:09:36 2016 -0300"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 17 14:28:00 2017 -0800"
      },
      "message": "libsync: move kernel headers for sync ioctls to sync.h\n\nThis patch moves the legacy API to the internal sync.h header\nand add documentation to it.\n\nTest: Sync unit tests still passes.\nChange-Id: I9b17eb23af30043b3df5fb9e857affad68ba8521\n"
    },
    {
      "commit": "1514bb4f2f6a238b48092b61e55a8a8909e059cc",
      "tree": "85c0e569bd036c669b15764d2aef6a8d61955c7f",
      "parents": [
        "b0a15d83191c69f9a1279a09a40929b8b9fa6720"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 12 17:32:55 2016 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 12 18:59:42 2016 -0800"
      },
      "message": "Update for kernel headers v4.8.14.\n\nUpdate sync.c to include the structurs from sw_sync.h. This uapi\nheader has been deleted.\n\nTest: Built mips/arm/arm64/x86/x86_64. Built and booted angler.\nChange-Id: I2495cb17b35f697fb8a2a00f6633ccb53f78293f\n"
    },
    {
      "commit": "36e0d390a2de7d13cdf667d9a7d125f0d66b3107",
      "tree": "b7ae89c6bbe40c5e820b8ddc2e2f073a67794911",
      "parents": [
        "0d762648d0b9cb29f13f3f8cb7815236078fafbd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 14:31:12 2016 -0700"
      },
      "message": "Rely on the platform -std default.\n\nBug: http://b/32019064\nTest: builds\nChange-Id: I18a1d816d63b64601485045070851f32d44e85eb\n"
    },
    {
      "commit": "10348cbeb916811dd64facfec2620e91df97476d",
      "tree": "864f8d3e7cb9667cac8b0af954543f872207de54",
      "parents": [
        "73d2cc570d10e527af60cfb7fe94cc4902189e66",
        "194edf772e4df2ade86acf97f616243aaef205fc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 29 20:32:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 29 20:32:12 2016 +0000"
      },
      "message": "Merge \"Convert to Android.bp\""
    },
    {
      "commit": "f83c7923f956328a022cddcfcd2d13d797a22a63",
      "tree": "5e2cc230d68bd45de2e2c9de9d36edf7c0a3fb75",
      "parents": [
        "091b631915c68c801bbded01ac8bb3a7af18436e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 24 14:49:18 2016 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 26 16:48:18 2016 -0700"
      },
      "message": "Update for kernel headers v4.7.2.\n\nThe new uapi kernel headers added a new SEGV reason code, so\nadd it to the tombstone code.\n\nUpdate sync.c to include the needed data structures itself. Someone\nelse will be fixing this to work on old versus new kernels.\n\nChange-Id: Icb27713ea38a20003c7671a9bca262eebd96099b\n"
    },
    {
      "commit": "194edf772e4df2ade86acf97f616243aaef205fc",
      "tree": "32bb95c53295dcccdde4afa28eeb1cec46f36f39",
      "parents": [
        "091b631915c68c801bbded01ac8bb3a7af18436e"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Aug 26 15:01:36 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Aug 26 16:19:21 2016 -0700"
      },
      "message": "Convert to Android.bp\n\nSee build/soong/README.md for more information.\n\nI tested the following tests on a Nexus9 and linux host, and they\ncontinued to pass:\n\n/data/nativetest{,64}/bootstat_tests/bootstat_tests\nout/host/linux-x86/bin/nativetest{,64}/bootstat_tests/bootstat_tests\n/data/nativetest64/memunreachable_test/memunreachable_test\nout/host/linux-x86/bin/nativetest{,64}/memunreachable_test/memunreachable_test\n\nThese continue to fail just like before this change:\n\n/data/nativetest{,64}/sync_test/sync_test (was /system/bin/sync_test)\n/data/nativetest{,64}/sync-unit-test/sync-unit-test\n/data/nativetest/memunreachable_test/memunreachable_test\n\nTest: See above\nChange-Id: I691e564e0cf008dd363e3746223b153d712e024d\n"
    },
    {
      "commit": "d86dd3b8383f02e6bd7e01561b87411ebf08c670",
      "tree": "31b9f2a1c51134f8420ac7cca2dd8dea85b8ca3d",
      "parents": [
        "a90aa13b5b8783be8491095ae11c653e5df807b3"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Aug 05 13:47:32 2016 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Aug 05 15:03:58 2016 -0700"
      },
      "message": "libsync: add static library for recovery\n\nChange-Id: If43188c3b4b16c698c077338ea0ef1dfd16b9c56\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "a90aa13b5b8783be8491095ae11c653e5df807b3",
      "tree": "d824190cf3f89ad2345982fa64bffe275d1a36c6",
      "parents": [
        "5f851752d36eb6b15ecf4e18871624810f771810"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Aug 05 10:07:28 2016 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Fri Aug 05 14:50:39 2016 -0700"
      },
      "message": "libsync: remove unused liblog dependency\n\nChange-Id: I69840ece3f13809b2440edbe6cfa412a56aee4aa\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "e7aa2b2c8378b458345477d1f6d9904490263bb6",
      "tree": "125b6116858579422945357b40930b5738a94eab",
      "parents": [
        "d1ec9c450d8dc9d24b5f0254111449ecfcbeaea6"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Mar 02 14:02:55 2016 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Mar 07 18:40:40 2016 -0800"
      },
      "message": "Cleanup uses of sprintf so we can deprecate it.\n\nAlso cleans up two instances of open() with useless mode params, and\nchanges a few uses of snprintf to use sizeof(buffer) instead of\nhardcoded buffer sizes.\n\nChange-Id: If11591003d910c995e72ad8f75afd072c255a3c5\n"
    },
    {
      "commit": "a7c7bce252a6bce1539e9caa84420de3698029e7",
      "tree": "e9118ab62eaecc0309cc2daf9a70736de15d8074",
      "parents": [
        "1e2382a0277eb36fb57a3a54202945556dfd234b"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Nov 05 10:07:53 2015 -0800"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Nov 05 10:07:53 2015 -0800"
      },
      "message": "Fix isValid() condition for libsync tests\n\nUpstream modifications in K3.12 to the sw_sync driver set O_CLOEXEC on\nthe fd\u0027s returned by the SW_SYNC_IOC_CREATE_FENCE ioctl, therefore we\ncheck the return of fcntl() for a non-negative value instead of strictly 0.\n\nChange-Id: If4c82750fcc0aa3a57f243fa2a94691e3150e4a4\n"
    },
    {
      "commit": "bcc2b5f44a39c5843eea2449cad66b8dce8721ee",
      "tree": "f82035e8ebdd668b117c47f1db8f65469b5b91f2",
      "parents": [
        "2159318647b6032a9d752012b923c579dc1f80da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 02 14:31:07 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 02 14:31:07 2015 -0700"
      },
      "message": "Remove LOCAL_ADDITIONAL_DEPENDENCIES in cases where it\u0027s not needed.\n\nChange-Id: I720b8ef1050da45a7833adef8219b6acb2cf3a38\n"
    },
    {
      "commit": "d0a793dca3c208ab04b67cd7dc0126a3d394d8dd",
      "tree": "603590d040d6f6c5dd775fa2955be082343a9350",
      "parents": [
        "42f1192273f3d05531c3fcfc8ce0fe5c437f6b7f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 27 11:23:07 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Mar 27 11:24:04 2015 -0700"
      },
      "message": "Remove uses of libcxx.mk.\n\nThis is a no-op.\n\nChange-Id: Iecbcd5f6d818abbf98767a2e996c10f454b652e4\n"
    },
    {
      "commit": "a744b05984a963966cec08758ffe582d241be9d7",
      "tree": "f9bde7bcbcc5f3e49cafe045b5951d3acdf27d23",
      "parents": [
        "9c4c5a6ed934490ba0fcce661594975a6f4c2c89"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 11:37:57 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 28 11:37:57 2015 -0800"
      },
      "message": "Add missing \u003cmalloc.h\u003e and \u003cstring.h\u003e includes.\n\nChange-Id: Ia41756e607663d056e7d2fdd7ecbec7e5841a913\n"
    },
    {
      "commit": "d0d7f6ac082184ee88bb34224f41537c140d98e5",
      "tree": "4df3219a7c5f63919da483a03f799c04daf4479e",
      "parents": [
        "6b66025f6f3e48d182e8d6aeb989d0f39eb551e3"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Thu Jun 05 19:34:40 2014 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Sat Oct 11 02:10:23 2014 +0000"
      },
      "message": "Add gtest conformance tests for libsync.\n\nNot complete yet, but substantially more comprehensive than the\ninteractive test that was there before.\n\n(cherry-picked from internal master, same change-id).\nChange-Id: I9019b0a8babbc91f78aa850e0e288bbf05f93500"
    },
    {
      "commit": "af7749891a9cd44b0ecbf7caceb87e70ed208c69",
      "tree": "ba69dc0724b577e0a5b5cb96d461eec00004a44d",
      "parents": [
        "249c26de823be0f9a84a9f092c776bcd9830fba5"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 15 15:09:45 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 21 12:58:38 2014 -0700"
      },
      "message": "libsync: Turn on -Werror\n\nChange-Id: Ie34f935694034a069e844be64d6011eb9e3f9869\n"
    },
    {
      "commit": "ddc20de1483028ee0b4401266499a59631e9d659",
      "tree": "afe715bfbf684fcb3fe9c38b490eb80c857329f6",
      "parents": [
        "f5447b0eb9cd2157f4935477f05d4c92dcda37c8"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Jan 02 19:31:53 2014 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@android.com",
        "time": "Fri Jan 03 21:27:05 2014 +0000"
      },
      "message": "move sync headers from include to libsync\n\nMake sw_sync.h private\n\nChange-Id: I0b120ebe81fd4a191b7aa4b6a8de4f64d16e2b3e\n"
    },
    {
      "commit": "984d35703d5c6738253193bd53da9dedb3b58243",
      "tree": "0f1d442fab3c7bde6497e6aba2adacbfad487fe8",
      "parents": [
        "6302b420554724c1434e27e2cd46cb43f5fb7bca"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Aug 21 18:21:18 2012 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Aug 21 18:21:18 2012 -0700"
      },
      "message": "update libsync to support new timeout semantics\n\nChange-Id: Ibedbd261bb96a84785c4e679b6fc4061287d5d7d\n"
    },
    {
      "commit": "a4ad73480896c6bc7960331dcfca87a358cc5782",
      "tree": "f1ef9b52acc8cbae4e112c2af7808cbe18a9d063",
      "parents": [
        "3fc95a991805feba257a396c13548776fd36f34f",
        "00f0691107dfde589bd23a7d079b4e05998833b0"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 21 09:12:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 21 09:12:12 2012 -0700"
      },
      "message": "am 00f06911: am c6620cb3: Merge \"Fixing unused param warnings in sync_test\"\n\n* commit \u002700f0691107dfde589bd23a7d079b4e05998833b0\u0027:\n  Fixing unused param warnings in sync_test\n"
    },
    {
      "commit": "b6279689edecc898bd9622f4ac562239650815bc",
      "tree": "712e67a483f44bba2c19541cca66ddae4dbd929e",
      "parents": [
        "605f8706c88b2cd5d024b0a6b7253a78d968ba72"
      ],
      "author": {
        "name": "Edwin Vane",
        "email": "edwin.vane@intel.com",
        "time": "Thu Jul 26 15:36:21 2012 -0400"
      },
      "committer": {
        "name": "Edwin Vane",
        "email": "edwin.vane@intel.com",
        "time": "Mon Aug 13 12:42:26 2012 -0400"
      },
      "message": "Fixing unused param warnings in sync_test\n\nChange-Id: Ia37a0118397ddece376bfbad7627d83263c1993f\nAuthor: Edwin Vane \u003cedwin.vane@intel.com\u003e\nReviewed-by: Kevin P Schoedel \u003ckevin.p.schoedel@intel.com\u003e\n"
    },
    {
      "commit": "3be33e46187bfb1e42099bb4ba061a494356576c",
      "tree": "c98cfa51f4f167a22c3e72f1bb5ab293166df603",
      "parents": [
        "4d4cc9ecc74ca7df7453b73e8ed62ff36c658f09"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jun 13 16:40:54 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Jun 19 09:52:24 2012 -0700"
      },
      "message": "libsync: remove linux includes from sync/sync.h\n\nThis change removes the #includes of \"linux/*.h\" headers from the libsync\nheader.  It currently does this by copying the needed structs that are in the\nlinux headers.  This is intended to be a temporary solution.\n\nChange-Id: Ie7e1a8e05fcf8809ba4aa0e2427efe141dae5327\n"
    },
    {
      "commit": "196b3a5f6f48649500909c66177967abaf05b898",
      "tree": "0451a808b8172db8bfdc37afedc335e7cd71f66c",
      "parents": [
        "545ab46063f083239b29e59b8b491656d93f2a38"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Mar 07 15:30:33 2012 -0800"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Apr 18 13:36:17 2012 -0700"
      },
      "message": "sync: Add lib sync helper library\n\nUsed to talk to kernel synchronization framework\n\nChange-Id: I66e1f4a90f5d58d384bf1cec09db52101f182c5e\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    }
  ]
}
