)]}'
{
  "log": [
    {
      "commit": "4200e260d266fd0c176e71fbd720d0bab04b02db",
      "tree": "b2c934fc4e2f546504cc02fdccd5f83fd60c6d37",
      "parents": [
        "ef5e647891f1a0aefeab4a87e9225e47087c6301"
      ],
      "author": {
        "name": "Daniel Micay",
        "email": "danielmicay@gmail.com",
        "time": "Tue Nov 03 05:14:08 2015 -0500"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 06 13:14:43 2015 -0800"
      },
      "message": "fix the mremap signature\n\nThe mremap definition was incorrect (unsigned long instead of int) and\nit was missing the optional new_address parameter.\n\nChange-Id: Ib9d0675aaa098c21617cedc9b2b8cf267be3aec4\n"
    },
    {
      "commit": "6f4594d5dc61bb67978c44cd6eeb0e7bfb621c9b",
      "tree": "9c925e99fe826914d93a6c1e00c5f62a8cd8c0a8",
      "parents": [
        "629ed517126b3be32f2b2e8b710e63358691c296"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 13:27:43 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 26 14:48:55 2015 -0700"
      },
      "message": "Add preadv/pwritev.\n\nBug: http://b/12612572\nChange-Id: I38ff2684d69bd0fe3f21b1d371b88fa60d5421cb\n"
    },
    {
      "commit": "5891abdc66aa9578395bc8b8e5740f629a2694b7",
      "tree": "7ce00a1c6da021bf09535dd0d287e76c9efd31fa",
      "parents": [
        "e80369ab0c484a99925a49a81ab0675538fab38a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 07 18:27:47 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 07 19:44:12 2015 -0700"
      },
      "message": "Invalidate cached pid in vfork.\n\nBug: http://b/23008979\nChange-Id: I1dd900ac988cdbe10aad3abc53240c5d352891d5\n"
    },
    {
      "commit": "10726d52ac3a7b34a6e2d9c40532037ca1108485",
      "tree": "49c3613ab638c4f7f322d4ad5d95dfbbd7b82fd2",
      "parents": [
        "3bcfd47c6836a952b2093c64feb9f1e382891256"
      ],
      "author": {
        "name": "Robert Jarzmik",
        "email": "robert.jarzmik@intel.com",
        "time": "Wed Jul 15 15:26:43 2015 +0200"
      },
      "committer": {
        "name": "Mingwei Shi",
        "email": "mingwei.shi@intel.com",
        "time": "Wed Jul 22 01:31:38 2015 +0000"
      },
      "message": "libc: arch-x86: implement kernel vdso time functions\n\nThis patch give the possibility of time vdso support on 32bit kernel.\nIf the 32bit x86 kernel provides gettimeofday() and clock_gettime()\nprimitives in vdso. In this case make bionic use them. If the kernel\ndoesn\u0027t provide them, fallback to the legacy system call versions.\n\nChange-Id: I87b772a9486fa356903e1f98f486ab9eb0b6f6f7\nSigned-off-by: Robert Jarzmik \u003crobert.jarzmik@intel.com\u003e\nSigned-off-by: Mingwei Shi \u003cmingwei.shi@intel.com\u003e\n"
    },
    {
      "commit": "b1304935b64ffcd59cd787cc9ac83a2d14dc587b",
      "tree": "e1f7e44b4fa870796ec762633a6a1a6ec322239b",
      "parents": [
        "df11f340cac2e7aa5ef69c3180d0f4089f46c96b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 19:39:04 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 15 19:39:04 2015 -0700"
      },
      "message": "Hide accidentally-exposed __clock_nanosleep.\n\nBug: http://b/21858067\nChange-Id: Iaa83a5e17cfff796aed4f641d0d14427614d9399\n"
    },
    {
      "commit": "be57a40d2973739c4fb0aa1cfb0014f34aeec2bd",
      "tree": "a4d8bba0773d0b024e1e53dbb4f35214cd3480d5",
      "parents": [
        "72af1235e49fa797987dd719e398f53995a50ec4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 10 17:24:20 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 10 17:24:20 2015 -0700"
      },
      "message": "Add process_vm_readv and process_vm_writev.\n\nBug: http://b/21761353\nChange-Id: Ic8ef3f241d62d2a4271fbc783c8af50257bac498\n"
    },
    {
      "commit": "e1d0810cd7e2aa045d5cc1e7d2b8697acd8467be",
      "tree": "335466a8a2f403dfa11394fa6c0d723873a4acf8",
      "parents": [
        "966f84b11dca7caf53c67664d811b99567cab7ee"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 06 11:23:26 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jun 06 11:25:41 2015 -0700"
      },
      "message": "Add O_PATH support for flistxattr()\n\nA continuation of commit 2825f10b7f61558c264231a536cf3affc0d84204.\n\nAdd O_PATH compatibility support for flistxattr(). This allows\na process to list out all the extended attributes associated with\nO_PATH file descriptors.\n\nChange-Id: Ie2285ac7ad2e4eac427ddba6c2d182d41b130f75\n"
    },
    {
      "commit": "2825f10b7f61558c264231a536cf3affc0d84204",
      "tree": "a5b968e9591cd0aa3289c0d2195e0326ef2e353f",
      "parents": [
        "ef607cdae24363c5e6b6fc72607a4cff78623851"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun May 31 13:43:13 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 01 15:51:56 2015 -0700"
      },
      "message": "libc: Add O_PATH support for fgetxattr / fsetxattr\n\nSupport O_PATH file descriptors when handling fgetxattr and fsetxattr.\nThis avoids requiring file read access to pull extended attributes.\n\nThis is needed to support O_PATH file descriptors when calling\nSELinux\u0027s fgetfilecon() call. In particular, this allows the querying\nand setting of SELinux file context by using something like the following\ncode:\n\n  int dirfd \u003d open(\"/path/to/dir\", O_DIRECTORY);\n  int fd \u003d openat(dirfd, \"file\", O_PATH | O_NOFOLLOW);\n  char *context;\n  fgetfilecon(fd, \u0026context);\n\nThis change was motivated by a comment in\nhttps://android-review.googlesource.com/#/c/152680/1/toys/posix/ls.c\n\nChange-Id: Ic0cdf9f9dd0e35a63b44a4c4a08400020041eddf\n"
    },
    {
      "commit": "c05554ec5c9aff5e0f1e83de9bb62c3569eecca2",
      "tree": "13991325cce91a9fd76f42303946c21e67106aea",
      "parents": [
        "c02bdc76a21f6149c7867982e66ab16982e01c1b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue May 19 18:17:31 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed May 20 14:20:33 2015 -0700"
      },
      "message": "Fix error handling for negative size in ftruncate.\n\nBug: 21309901\nChange-Id: I54692ab8105dd09db6af7a2c0894a17bdd118aa0\n"
    },
    {
      "commit": "40a8f214a5264efe5feaaffd55cea67fb87d097b",
      "tree": "50e1b2ab531de2767251244e8545351384b818de",
      "parents": [
        "a42b5bcd896daa83b479e7964c0fa8cf1abf5a1d"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon May 18 11:19:11 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon May 18 11:29:20 2015 -0700"
      },
      "message": "Hide rt_sigqueueinfo.\n\nBug: 19358804\nChange-Id: I38a53ad64c81d0eefdd1d24599e769fd8a477a56\n"
    },
    {
      "commit": "3391a9ff139d57fe4f8a2ff2d81a5ddc230a6208",
      "tree": "310c54610766a838a0569f8e44b33e7805b2d42c",
      "parents": [
        "ff18108981aa1fa73696d6db1919cdc38788bd4e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 22 21:40:38 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 23 08:41:45 2015 -0700"
      },
      "message": "Simplify close(2) EINTR handling.\n\nThis doesn\u0027t affect code like Chrome that correctly ignores EINTR on\nclose, makes code that tries TEMP_FAILURE_RETRY work (where before it might\nhave closed a different fd and appeared to succeed, or had a bogus EBADF),\nand makes \"goto fail\" code work (instead of mistakenly assuming that EINTR\nmeans that the close failed).\n\nWho loses? Anyone actively trying to detect that they caught a signal while\nin close(2). I don\u0027t think those people exist, and I think they have better\nalternatives available.\n\nBug: https://code.google.com/p/chromium/issues/detail?id\u003d269623\nBug: http://b/20501816\nChange-Id: I11e2f66532fe5d1b0082b2433212e24bdda8219b\n"
    },
    {
      "commit": "fa495d51b02e1575088ed358614d3baa442f455f",
      "tree": "7d44227f43953a5b99d2fc582f917987a5980f56",
      "parents": [
        "ab12dc70f3ef551c490dcfede76033e57ceee64d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 18 15:46:48 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 18 15:46:48 2015 -0700"
      },
      "message": "Hide statfs/fstatfs\u0027 ST_VALID flag from userspace.\n\nSpotted while debugging the strace 4.10 upgrade.\n\nChange-Id: I1af1be9c9440151f55f74a835e1df71529b0e4fe\n"
    },
    {
      "commit": "35778253a5ed71e87a608ca590b63729d9f88567",
      "tree": "d9e6112654bf2faa754abd9f28bc20c2ccccff57",
      "parents": [
        "2aef607b25c463baed5ae70d14212e24ea7bcf2b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 24 13:40:43 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 24 13:40:43 2015 -0800"
      },
      "message": "Fix \"faccessat ignores flags\"\n\nThe kernel system call faccessat() does not have any flags arguments,\nso passing flags to the kernel is currently ignored.\n\nFix the kernel system call so that no flags argument is passed in.\n\nEnsure that we don\u0027t support AT_SYMLINK_NOFOLLOW. This non-POSIX\n(http://pubs.opengroup.org/onlinepubs/9699919799/functions/access.html)\nflag is a glibc extension, and has non-intuitive, error prone behavior.\n\nFor example, consider the following code:\n\n  symlink(\"foo.is.dangling\", \"foo\");\n  if (faccessat(AT_FDCWD, \"foo\", R_OK, AT_SYMLINK_NOFOLLOW) \u003d\u003d 0) {\n    int fd \u003d openat(AT_FDCWD, \"foo\", O_RDONLY | O_NOFOLLOW);\n  }\n\nThe faccessat() call in glibc will return true, but an attempt to\nopen the dangling symlink will end up failing. GLIBC documents this\nas returning the access mode of the symlink itself, which will\nalways return true for any symlink on Linux.\n\nSome further discussions of this are at:\n\n  * http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003617.html\n  * http://permalink.gmane.org/gmane.linux.lib.musl.general/6952\n\nAT_SYMLINK_NOFOLLOW seems broken by design. I suspect this is why this\nfunction was never added to POSIX. (note that \"access\" is pretty much\nbroken by design too, since it introduces a race condition between\ncheck and action). We shouldn\u0027t support this until it\u0027s clearly\ndocumented by POSIX or we can have it produce intuitive results.\n\nDon\u0027t support AT_EACCESS for now. Implementing it is complicated, and\npretty much useless on Android, since we don\u0027t have setuid binaries.\nSee http://git.musl-libc.org/cgit/musl/commit/?id\u003d0a05eace163cee9b08571d2ff9d90f5e82d9c228\nfor how an implementation might look.\n\nBug: 18867827\nChange-Id: I25b86c5020f3152ffa3ac3047f6c4152908d0e04\n"
    },
    {
      "commit": "00490ae3f351e07ed4cc2a94b11cba6a22f37311",
      "tree": "ad09d82701fd1d9cdf44231d8b8789007aa5d8d9",
      "parents": [
        "d57bf449fe6c2dcf35d90d6e4098038ac8a24ecb"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 03 11:27:25 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 03 12:10:30 2015 -0800"
      },
      "message": "Ensure raw fchmod/fchmodat syscalls are hidden.\n\nIn https://android-review.googlesource.com/#/c/127908/5/libc/SYSCALLS.TXT@116\nElliott said:\n\n  for LP64 these will be hidden. for LP32 we were cowards and left\n  them all public for compatibility (though i don\u0027t think we ever\n  dremeled to see whether it was needed). we don\u0027t have an easy\n  way to recognize additions, though, so we can\u0027t prevent adding\n  new turds.\n\nAdd a mechanism to prevent the adding of new turds, and use that\nmechanism on the fchmod/fchmodat system calls.\n\nBug: 19233951\nChange-Id: I98f98345970b631a379f348df57858f9fc3d57c0\n"
    },
    {
      "commit": "3cbc6c627fe57c9a9783c52d148078f8d52f7b96",
      "tree": "ea5b0dc49aaa16f25e2262cd5560070ae65923b9",
      "parents": [
        "21cdd22f035efd50902b7780fc6ea53bd1684357"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 31 19:57:46 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Feb 02 13:17:17 2015 -0800"
      },
      "message": "Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support\n\nMany libc functions have an option to not follow symbolic\nlinks. This is useful to avoid security sensitive code\nfrom inadvertantly following attacker supplied symlinks\nand taking inappropriate action on files it shouldn\u0027t.\nFor example, open() has O_NOFOLLOW, chown() has\nlchown(), stat() has lstat(), etc.\n\nThere is no such equivalent function for chmod(), such as lchmod().\nTo address this, POSIX introduced fchmodat(AT_SYMLINK_NOFOLLOW),\nwhich is intended to provide a way to perform a chmod operation\nwhich doesn\u0027t follow symlinks.\n\nCurrently, the Linux kernel doesn\u0027t implement AT_SYMLINK_NOFOLLOW.\nIn GLIBC, attempting to use the AT_SYMLINK_NOFOLLOW flag causes\nfchmodat to return ENOTSUP. Details are in \"man fchmodat\".\n\nBionic currently differs from GLIBC in that AT_SYMLINK_NOFOLLOW\nis silently ignored and treated as if the flag wasn\u0027t present.\n\nThis patch provides a userspace implementation of\nAT_SYMLINK_NOFOLLOW for bionic. Using open(O_PATH | O_NOFOLLOW),\nwe can provide a way to atomically change the permissions on\nfiles without worrying about race conditions.\n\nAs part of this change, we add support for fchmod on O_PATH\nfile descriptors, because it\u0027s relatively straight forward\nand could be useful in the future.\n\nThe basic idea behind this implementation comes from\nhttps://sourceware.org/bugzilla/show_bug.cgi?id\u003d14578 , specifically\ncomment #10.\n\nChange-Id: I1eba0cdb2c509d9193ceecf28f13118188a3cfa7\n"
    },
    {
      "commit": "86d2feef9f4df517dd5755b39b993bec0c3e1ea5",
      "tree": "ee7cfa061a58041498641c82047d2d5c89fd1cd0",
      "parents": [
        "3780aba6352affc7d2dcdad0737cb4254448fcae"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu.gandham@imgtec.com",
        "time": "Thu Jan 15 11:12:22 2015 -0800"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu.gandham@imgtec.com",
        "time": "Wed Jan 28 16:12:17 2015 -0800"
      },
      "message": "Modify MIPS64 stat structure to match a generic one in AOSP.\n\nThe kernel version of the stat structure is used during the syscalls. After the syscall,\nthe kernel stat structure is converted to match the generic one. Eventually we would like\nthe generic stat structure and related syscalls be added to MIPS64 kernel, removing the\nthunks added to AOSP.\n\nChange-Id: I7764e80278c1cc8254754c3531ec2dda7544a8ec\n"
    },
    {
      "commit": "94926f8cfa0adf37c4e19256ade7261a97f72e51",
      "tree": "8c990320ebf445406d3d50be443db10cd58eee42",
      "parents": [
        "b033761cbf0e79ade9a8c956c2e63b42ee838183",
        "634816055f51c536d24dea30dfe930b7fe2fa603"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Dec 09 20:10:19 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 20:10:19 2014 +0000"
      },
      "message": "Merge \"support _POSIX_REALTIME_SIGNALS\""
    },
    {
      "commit": "634816055f51c536d24dea30dfe930b7fe2fa603",
      "tree": "5d3739b116df16774776010538254c10007c0a76",
      "parents": [
        "f64c43ba6c9244c50e904961dc432f04b1dfcfd9"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 01 17:41:04 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Dec 08 21:52:43 2014 -0800"
      },
      "message": "support _POSIX_REALTIME_SIGNALS\n\nBug: 18489947\nChange-Id: I2e834d68bc10ca5fc7ebde047b517a3074179475\n"
    },
    {
      "commit": "efbb6fb3f7506b48dbb406e3b9a2fc9e865807c6",
      "tree": "0e49334b36726033595725877d1d2c5d7293529e",
      "parents": [
        "baf792bff86f9be6f631eece17d9d104cfe54b41"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Dec 03 11:11:50 2014 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Wed Dec 03 11:11:50 2014 -0800"
      },
      "message": "change argument type in madvise\n\nMake madvise prototype the same as linux man page.\n\nBug: 18539500\nChange-Id: If3fd0e1d9539b9e10531ab9087bc4040e32b6e9b\n"
    },
    {
      "commit": "b86a4c7f651ab347611847e4f5a1a50d6ee1827b",
      "tree": "24d8b5623c4ee06e0b6787b68e3217042a99cb69",
      "parents": [
        "2ed9ee1e938a94b563ab700dc5017a968d2591ad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 07 16:07:13 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 07 16:48:27 2014 -0800"
      },
      "message": "Add sethostname(2).\n\nNot very useful, but helps building stuff like toybox out of the box.\n\nChange-Id: I110e39030452bd093a84278e019c5752d293718d\n"
    },
    {
      "commit": "18160256840e9bb097f17422ea47d54fabbc9f3f",
      "tree": "9e214fedefed00a66099d8cc9abab4dd68cbec80",
      "parents": [
        "c229705051c8b6a06ad81c221ca74ef9aa743e13"
      ],
      "author": {
        "name": "Haruki Hasegawa",
        "email": "h6a.h4i.0@gmail.com",
        "time": "Mon Oct 13 00:50:47 2014 +0900"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 13 17:04:10 2014 -0700"
      },
      "message": "Add clock_settime and clock_nanosleep.\n\nAdd the missing prototypes, fix the existing prototypes to use clockid_t\nrather than int, fix clock_nanosleep\u0027s failure behavior, and add simple\ntests.\n\nBug: 17644443\nBug: https://code.google.com/p/android/issues/detail?id\u003d77372\nChange-Id: I03fba369939403918abcabae9551a7123953d780\nSigned-off-by: Haruki Hasegawa \u003ch6a.h4i.0@gmail.com\u003e\n"
    },
    {
      "commit": "9990b3973bdfcda5419c06886215147a878222f1",
      "tree": "f9b131f9de95399ead9ab2ceedd7e67f74e0543d",
      "parents": [
        "33df10f284a8adbf58f9734c0f43537db4206b2c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 10:10:08 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 10:10:08 2014 -0700"
      },
      "message": "Fix mips __fadvise64.S build failure.\n\nBug: 12449798\nChange-Id: I0663b741108ba2f1d286904d6414b3ff4d475551\n"
    },
    {
      "commit": "b587f339db269abf08a2c311a7263dd218cb23d3",
      "tree": "18fd8a53623d63cae5e98d5aeb59a8aefaa853c2",
      "parents": [
        "c71483c0b38a6b4f2675f0bffa221dcf175c34ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 10 17:39:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 11 08:45:46 2014 -0700"
      },
      "message": "Add posix_fadvise(3).\n\n(cherry-pick of 00008263782e484020420c606f7d145fe7d0a4d8.)\n\nBug: 12449798\nChange-Id: I07cbf3f670a0d1304b68148325a774f266b5c433\n"
    },
    {
      "commit": "47793d6a29f63869e7dbc583576cb8bf351cd504",
      "tree": "a1f8915fd1b5c885263a01159cb7160bf93920ad",
      "parents": [
        "3157211849f808f89a7f1465fd60d6b41917ee4f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 21 12:13:24 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Aug 21 13:32:37 2014 -0700"
      },
      "message": "Remove _flush_cache(2) for mips64.\n\nAlso remove declaration.\n\nThe only user is compiler-rt, and they can replace that call with one to\nsyscall(2). compiler-rt doesn\u0027t currently build on mips64 anyway.\n\nBug: 11156955\nChange-Id: Ieae0ba49c8e7aa50253401fc1d7c2d17bc867d39\n"
    },
    {
      "commit": "6a918870bab1a55a5f57dd7954abd9a8a27c1bc2",
      "tree": "fa02049d5e70ded2d921311a4aa1b0af09bf22bf",
      "parents": [
        "447fe1c23bc5adaded9a51d3b58f3adaf2cce7b3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 05 20:53:31 2014 +0000"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Aug 05 14:11:38 2014 -0700"
      },
      "message": "Revert \"Replaces vfork() implementation with fork()\"\n\nWe\u0027re getting cold feet on this one... let\u0027s put it back.\n\nThis reverts commit 210331d9762037afb9b5ed8413079c6f65872df9.\n\nChange-Id: I6b0d3c2b1dbf7f1dc9566979a91b7504c2189269\n"
    },
    {
      "commit": "79310994d2b3826a10598f7e7795acb5edb42a20",
      "tree": "34a7eec7841aaf4dc12eb33fe6309d078f672819",
      "parents": [
        "c7706a02ad90ab73f3a056040d2c4a3464ab1ab1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 30 15:05:09 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 30 15:19:29 2014 -0700"
      },
      "message": "Implement \u003csys/fsuid.h\u003e.\n\nChange-Id: I1e5e50444a1b5a430ba5b5d9b8b1d91219af5e92\n"
    },
    {
      "commit": "9c07aee83b4ebbf2dba8e23d6896683187b9724e",
      "tree": "b9defb3829557ad1d794a0f4e919e5559ec35b2a",
      "parents": [
        "3c2b71ad5612721c7073a4396cdad2c00e86ba54"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 18 15:55:41 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 18 16:15:32 2014 -0700"
      },
      "message": "Clean up some misinformation around prctl.\n\nprctl shouldn\u0027t be in \u003cunistd.h\u003e.\n\nChange-Id: I29609fc91c033e1ad143b75d9b4eb17aefbd63d6\n"
    },
    {
      "commit": "625993dfbb085a3cde7492eda8ec1cdc1ee39a78",
      "tree": "4385fee1dde6d90f42c616a2afc6766824f72835",
      "parents": [
        "770d0f6177ca1ad242b509151fb612f07ef8a07b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 15 16:53:13 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 16 14:27:43 2014 -0700"
      },
      "message": "Use VDSO for clock_gettime(2) and gettimeofday(2).\n\nBug: 15387103\nChange-Id: Ifc3608ea65060c1dc38120b10b6e79874f182a36\n"
    },
    {
      "commit": "3f525d41c2acde2ae3309cf839d83d7f41ab2fe6",
      "tree": "572f2b5a63ffbbec084c9f048f396856c228b9b0",
      "parents": [
        "52f9b051c8bcb3d723b023a74d7d89ee45cf754c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 24 16:32:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 24 19:03:31 2014 -0700"
      },
      "message": "Add splice, tee, and vmsplice.\n\nChange-Id: I5f43380b88d776a8bb607b47dbbc5db5a2fe6163\n"
    },
    {
      "commit": "7086ad6919feb2415c6027163f5c63323bcca27c",
      "tree": "f32c06d513e90ba1fcb8fe56f9cd055cccc7d01b",
      "parents": [
        "d1bf37780d0bcaca3e6046171f958ebfea34bde1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 19 16:39:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 20 09:06:57 2014 -0700"
      },
      "message": "Cache getpid.\n\nIn practice, with this implementation we never need to make a system call.\nWe get the main thread\u0027s tid (which is the same as our pid) back from\nthe set_tid_address system call we have to make during initialization.\nA new pthread will have the same pid as its parent, and a fork child\u0027s\nmain (and only) thread will have a pid equal to its tid, which we get for\nfree from the kernel before clone returns.\n\nThe only time we\u0027d actually have to make a getpid system call now is if\nwe take a signal during fork and the signal handler calls getpid. (That,\nor we call getpid in the dynamic linker while it\u0027s still dealing with its\nown relocations and hasn\u0027t even set up the main thread yet.)\n\nBug: 15387103\nChange-Id: I6d4718ed0a5c912fc75b5f738c49a023dbed5189\n"
    },
    {
      "commit": "607341e226912d95d03216483bdcef6f8d96f8b4",
      "tree": "3de470c4d40cfab0d173b633929f7b14ddbe8ff9",
      "parents": [
        "346fa721ca20e481a624930425d823d452e11dfe"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 12 18:02:48 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 12 18:10:13 2014 -0700"
      },
      "message": "Remove ioprio_get(2) and ioprio_set(2) from LP64.\n\nBug: 11156955\nChange-Id: I07b596d85e4bd6347d488d1a92c8d0a00b5ef3b3\n"
    },
    {
      "commit": "440bd6bcc308f78b32fcbc4a3ba312dd1343559b",
      "tree": "bc8398b92bb63a367ab8bc0c71f48cc6ed5aefa4",
      "parents": [
        "0ada9388e74693d990bdbb4af92c33bae8b34d4b",
        "210331d9762037afb9b5ed8413079c6f65872df9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jun 11 16:59:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 10 22:08:45 2014 +0000"
      },
      "message": "Merge \"Replaces vfork() implementation with fork()\""
    },
    {
      "commit": "210331d9762037afb9b5ed8413079c6f65872df9",
      "tree": "85e6c875bcd65741da38a7d2b6a47cc24440d8b4",
      "parents": [
        "e2a54ca80e011db21665e9639af4608f58e32fbd"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 05 18:07:03 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jun 10 21:38:52 2014 -0700"
      },
      "message": "Replaces vfork() implementation with fork()\n\nvfork() was removed from POSIX 2008, so this replaces its implementation\nwith a call to fork().\n\nBug: 13935372\nChange-Id: I6d99ac9e52a2efc5ee9bda1cab908774b830cedc\n"
    },
    {
      "commit": "3d5cb30d23cfc6a72f01c00246e69a2c614c8228",
      "tree": "25e525111f2e2181c6544e96eebc4ce6ec11777e",
      "parents": [
        "c3bdc792be78d788663ff9b5e019b4af852dc6f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 06 11:44:55 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 06 15:05:58 2014 -0700"
      },
      "message": "Remove getdents from bionic.\n\nBug: 11156955\nChange-Id: I6c306989801be552d85fba8a50dcdc79282fb9d2\n"
    },
    {
      "commit": "5d9a7ba0dc9c24ed4e4efa9cac0e796fd524b308",
      "tree": "4674df3b5064cb38211453b6e887c364f0c66f05",
      "parents": [
        "831405b749d15a11fb947a40d61fd858e952d860"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 30 19:00:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 02 10:32:55 2014 -0700"
      },
      "message": "Avoid a system call in \u0027gettid\u0027.\n\nSystem calls can be pretty slow. This is mako, which has one of our\nlowest latencies:\n\n                       iterations      ns/op\n  BM_unistd_getpid       10000000        209\n  BM_unistd_gettid      200000000          8\n\nBug: 15297299 (kernel panic from too many gettid calls)\nBug: 15315766 (excessive gettid overhead in liblogd)\nChange-Id: I49656c0fc5b5d092390264a59e4f2c0d8a8b1aeb\n"
    },
    {
      "commit": "b30aff405a220495941f1673b0a5e66c4fa8b84c",
      "tree": "3bf667c009cf468c040ccaae6e81d468b4fd0254",
      "parents": [
        "52f74322b1d72d57146107f32ee2c76c421bf4b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 28 19:35:33 2014 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 28 18:31:15 2014 -0700"
      },
      "message": "Revert \"Revert \"Lose the hand-written futex assembler.\"\"\n\nThe problem with the original patch was that using syscall(3) means that\nerrno can be set, but pthread_create(3) was abusing the TLS errno slot as\na pthread_mutex_t for the thread startup handshake.\n\nThere was also a mistake in the check for syscall failures --- it should\nhave checked against -1 instead of 0 (not just because that\u0027s the default\nidiom, but also here because futex(2) can legitimately return values \u003e 0).\n\nThis patch stops abusing the TLS errno slot and adds a pthread_mutex_t to\npthread_internal_t instead. (Note that for LP64 sizeof(pthread_mutex_t) \u003e\nsizeof(uintptr_t), so we could potentially clobber other TLS slots too.)\n\nI\u0027ve also rewritten the LP32 compatibility stubs to directly reuse the\ncode from the .h file.\n\nThis reverts commit 75c55ff84ebfa686c7ae2cc8ee431c6a33bd46b4.\n\nBug: 15195455\nChange-Id: I6ffb13e5cf6a35d8f59f692d94192aae9ab4593d\n"
    },
    {
      "commit": "75c55ff84ebfa686c7ae2cc8ee431c6a33bd46b4",
      "tree": "17a0bb533344ff11f7401dba76d950b71c7bd1b1",
      "parents": [
        "ced906c849704f379d7191822f6d74993d4fa296"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed May 28 18:02:33 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed May 28 18:03:01 2014 +0000"
      },
      "message": "Revert \"Lose the hand-written futex assembler.\"\n\nThis reverts commit ced906c849704f379d7191822f6d74993d4fa296.\n\nCauses issues on art / dalvik due to a broken return value\ncheck and other undiagnosed issues.\n\nbug: 15195455\n\nChange-Id: I5d6bbb389ecefb0e33a5237421a9d56d32a9317c"
    },
    {
      "commit": "ced906c849704f379d7191822f6d74993d4fa296",
      "tree": "3bac511fef3da9b482019edced149a849a541fbc",
      "parents": [
        "ea7dc32080114af59789c119ca6aa4814426ea42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 19:49:11 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 19:49:11 2014 -0700"
      },
      "message": "Lose the hand-written futex assembler.\n\nAlso stop exporting \u0027futex\u0027.\n\nBug: 12250341\nChange-Id: Icc4fa4296cd04dfe0d1061822c69e2eb40c3433a\n"
    },
    {
      "commit": "6e599a904b1f033cfaf79febff686f6296089a7d",
      "tree": "9a76b32c875febf25ad2d93d0a4c8e98e8c13ca9",
      "parents": [
        "4f6ed4a10951cbd868fec1b0117a276918c60fa1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 13:40:49 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 13:41:36 2014 -0700"
      },
      "message": "Remove the tkill(2) stub.\n\nglibc doesn\u0027t have tkill or tgkill and says \"use syscall(3) instead\".\nI\u0027ve left tgkill since it\u0027s quite widely used, but there\u0027s no reason\nto have tkill as well.\n\nBug: 11156955\nChange-Id: Ifc0af750320086f829bc9914551c172b501f3b60\n"
    },
    {
      "commit": "46a55a4478db9e335bdc7f73ee2cf3a66fe673fd",
      "tree": "b6e2b8723f2d8330895a5bed48777e804365037d",
      "parents": [
        "20177b9fea893ab63a49cf574790ea5e5027e50d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 21:01:00 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 21:01:00 2014 -0700"
      },
      "message": "Remove __syslog; we have the public klogctl API.\n\nBug: 11156955\nChange-Id: I5c2cc02f39f76dd32984135f5c12c10bf2853796\n"
    },
    {
      "commit": "4e631ba5688db2fae7bbc476982055a376102146",
      "tree": "89ba046be0d6572f54de0a930bcac365f0881928",
      "parents": [
        "3d2bc5d6c8f08e587a8dad848829f98776549ba6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 16:24:10 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 20 16:24:55 2014 -0700"
      },
      "message": "Remove perf_event_open.\n\nThis was accidentally added at a time when you couldn\u0027t add a constant\nto \u003csyscall.h\u003e without generating an assembly stub! (You no longer need\nto add the constants at all.)\n\nBug: 11156955\nChange-Id: I053c17879138787976c744a5ecf7d30ee51dc48f\n"
    },
    {
      "commit": "903b78873a744d3fba187e4bd22008ba21162e51",
      "tree": "54927c30d730513d9cfa817448b3184a6b6531ee",
      "parents": [
        "172ab0f65035013565ec57f52ece663082683698"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Mon May 19 13:39:57 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Mon May 19 15:19:16 2014 -0700"
      },
      "message": "Mark sockets on creation (socket()) and accept4().\n\nRemove the separate syscall for accept() and implement it as accept4(..., 0).\n\nChange-Id: Ib0b8f5d7c5013b91eae6bbc3847852eb355c7714\n"
    },
    {
      "commit": "7222b1b594a8fab4b9e744d764b70e4c17767794",
      "tree": "1e533c94afca3c8f5361649368fffde6bd4908b9",
      "parents": [
        "d9b0629868fe4a2ce2e144b826dd869b6d808834"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 16 15:47:29 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 16 15:47:29 2014 -0700"
      },
      "message": "Hide __signalfd4, used to implement signalfd(3).\n\nBug: 11156955\nChange-Id: I50842279cb5b32ec8bd45193435574e415cd806e\n"
    },
    {
      "commit": "8f0cd8aa22906c3e678738eeba20fc1a5c399b6c",
      "tree": "38bbf429b63d34d1d339bcd02689e81f744ef53a",
      "parents": [
        "15c13bd6cc0ce44d8f083f75d0bfa926a88cc169"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 15:40:26 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Wed May 14 11:10:22 2014 -0700"
      },
      "message": "Mark sockets on accept().\n\n(cherry picked from commit 58b1f3f6a30a660ad81637c2b50382c3d279243b)\n\nChange-Id: I5d09be413cf720fbed905f96313b007997ada76c\n"
    },
    {
      "commit": "ceb5bd787c8ce281e5f4343c5d4f77b41c3e2919",
      "tree": "4b91184c22597e1757ba036d30e09f5c5e586a74",
      "parents": [
        "0ccef7ec5294b34902e07c26db55891d3eddb2be"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Mon May 12 11:19:16 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue May 13 11:30:03 2014 -0700"
      },
      "message": "Introduce netd_client, a dynamic library that talks to netd.\n\nThe library exists outside bionic. It is dynamically loaded, to replace selected\nstandard socket syscalls with versions that talk to netd.\n\nChange connect() to use the library if available.\n\n(cherry picked from commit 3a6b627a14df8111b03e452f2df4b5f4938e0e49)\n\nChange-Id: Ib6198e19dbc306521a26fcecfdf6e8424d163fc9\n"
    },
    {
      "commit": "dcbef06ce6bb21d62d5a32148a3e64746b47b449",
      "tree": "193e7494535d26ac5820c17b0993817e709d55b3",
      "parents": [
        "4b57305afe2b54a6afb733361f6fd93cb92ccfa8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 12 16:11:06 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 12 16:11:06 2014 -0700"
      },
      "message": "Remove the useless indirection in mips\u0027 __set_tls.\n\nChange-Id: I12e9d6716c42ccbccc9a186441aca0736bb22d05\n"
    },
    {
      "commit": "9f525644df99cb2f7f81a23ca23840f0a8f82275",
      "tree": "edfe771f84024370aba4988e016534e5c535984e",
      "parents": [
        "ac70d2e1fe71f98232942237c2b463ea3adbf662"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 17:14:01 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 08 17:16:13 2014 -0700"
      },
      "message": "Implement _Exit(3).\n\nChange-Id: Ida6ac844cc87d38c9645b197dd8188bb73e27dbe\n"
    },
    {
      "commit": "8f2a30a92ab6981cccbc1a9e17b738f7542ae33f",
      "tree": "a0ec364f2362051c4d06569ee5706c3165808b78",
      "parents": [
        "c8fc4ddc183060aa979185d5a6845f26beb1a733"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@intel.com",
        "time": "Wed Mar 26 15:50:01 2014 +0200"
      },
      "committer": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@intel.com",
        "time": "Wed Mar 26 15:50:01 2014 +0200"
      },
      "message": "Add accept4() syscall\n\nAdd accept4() using SYSCALLS.TXT and gensyscall\n\nChange-Id: I6f19f29144186d15d46423e10f2cc4b4223719c6\n"
    },
    {
      "commit": "4b558f50a42c97d461f1dede5aaaae490ea99e2e",
      "tree": "c239a686131cdda28272c961ce98febbc0c772f8",
      "parents": [
        "bef5016491eed41521f514d5c5528e2274689948"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 04 15:58:02 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 07 16:49:46 2014 -0800"
      },
      "message": "Rewrite the POSIX timer functions.\n\nThis is a much simpler implementation that lets the kernel\ndo as much as possible.\n\nCo-authored-by: Jörgen Strand \u003cjorgen.strand@sonymobile.com\u003e\nCo-authored-by: Snild Dolkow \u003csnild.dolkow@sonymobile.com\u003e\nChange-Id: Iad19f155de977667aea09410266d54e63e8a26bf\n"
    },
    {
      "commit": "6ff0c75c838e73d2aeccc0102ab58a7b865172ca",
      "tree": "664bed83a31a736af22e3ac37ff36b14e809724c",
      "parents": [
        "000ffd8ab0b4112173ce319869f4111f08fbe975"
      ],
      "author": {
        "name": "Guillaume Ranquet",
        "email": "guillaumex.ranquet@intel.com",
        "time": "Mon Feb 10 13:11:29 2014 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 27 14:29:01 2014 -0800"
      },
      "message": "Add recvmmsg and sendmmsg syscalls.\n\nAlso add the corresponding constant, struct, and function declarations\nto \u003csys/socket.h\u003e, and perfunctory tests so we know that the symbols\nactually exist.\n\nSigned-off-by: Guillaume Ranquet \u003cguillaumex.ranquet@intel.com\u003e\nChange-Id: Ib0d854239d3716be90ad70973c579aff4895a4f7\n"
    },
    {
      "commit": "db1ea3474899ebbd783aba872d3005f95a816d0f",
      "tree": "b70fedd7d69098f5141dbbb09ef41851a61eec8d",
      "parents": [
        "3623d80675e5321b92c2d88a7b7ec6bd998d81d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 17 18:42:49 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 18 15:39:24 2014 -0800"
      },
      "message": "Implement some of the missing LFS64 support.\n\nThis gives us:\n\n* \u003cdirent.h\u003e\n  struct dirent64\n  readdir64, readdir64_r, alphasort64, scandir64\n\n* \u003cfcntl.h\u003e\n  creat64, openat64, open64.\n\n* \u003csys/stat.h\u003e\n  struct stat64\n  fstat64, fstatat64, lstat64, stat64.\n\n* \u003csys/statvfs.h\u003e\n  struct statvfs64\n  statvfs64, fstatvfs64.\n\n* \u003csys/vfs.h\u003e\n  struct statfs64\n  statfs64, fstatfs64.\n\nThis also removes some of the incorrect #define hacks we\u0027ve had in the\npast (for stat64, for example, which we promised to clean up way back\nin bug 8472078).\n\nBug: 11865851\nBug: 8472078\nChange-Id: Ia46443521918519f2dfa64d4621027dfd13ac566\n"
    },
    {
      "commit": "5043212b7615bc4c03463c4d242769de69cd4685",
      "tree": "8d1c8921afa032308492c4425a06ae8ab19c5c83",
      "parents": [
        "e163a3986aa7d1c67fe3274eb9204812be0a6245"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Wed Feb 05 16:59:23 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 06 15:39:38 2014 -0800"
      },
      "message": "[MIPS64] Add syscall related files\n\nChange-Id: I2f5d05df0e767538a6fe467ca0a2386325f8b71f\nSigned-off-by: Chris Dearman \u003cchris.dearman@imgtec.com\u003e\nSigned-off-by: Raghu Gandham \u003craghu.gandham@imgtec.com\u003e\nSigned-off-by: Duane Sand \u003cduane.sand@imgtec.com\u003e\n"
    },
    {
      "commit": "f64b8ea09db3bdd84eed59f7721301743332b3fe",
      "tree": "6d45a510ee831e1bc154170170afe7c931474ebc",
      "parents": [
        "a122c376ef0737454a592cf44f50beabe154e9e3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 16:20:46 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 03 16:20:46 2014 -0800"
      },
      "message": "Add fallocate/fallocate64/posix_fallocate/posix_fallocate64.\n\nBug: 5287571\nBug: 12612860\nChange-Id: I4501b9c6cdf9a830336ce0b3afc4ea716b6a0f6f\n"
    },
    {
      "commit": "d1973ca51325393f304e82a4d79874f33e54ac16",
      "tree": "75a657d895a41aa4855a06ef1e0e986c963e0eef",
      "parents": [
        "5b4884fac90753c68d401de73036c2de919958eb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 21 19:50:58 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jan 23 18:35:39 2014 -0800"
      },
      "message": "bionic: rename aarch64 target to arm64\n\nRename aarch64 build targets to arm64.  The gcc toolchain is still\naarch64.\n\nChange-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3\n"
    },
    {
      "commit": "0f461e35f63200641fc53bba222845a84589c024",
      "tree": "d5b0d3a9e13f4699bdc57dfd422a69ddfdde5090",
      "parents": [
        "8276d2875f64587e266567f5bb2c5e0c70ef0a5d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 10:17:03 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 09 11:00:04 2014 -0800"
      },
      "message": "Fix \u003csys/resource.h\u003e.\n\nThe situation here is a bit confusing. On 64-bit, rlimit and rlimit64 are\nthe same, and so getrlimit/getrlimit64, setrlimit/setrlimit64,\nand prlimit/prlimit64 are all the same. On 32-bit, rlimit and rlimit64 are\ndifferent. 32-bit architectures other than MIPS go one step further by having\nan even more limited getrlimit system call, so arm and x86 need to use\nugetrlimit instead of getrlimit. Worse, the 32-bit architectures don\u0027t have\n64-bit getrlimit- and setrlimit-equivalent system calls, and you have to use\nprlimit64 instead. There\u0027s no 32-bit prlimit system call, so there\u0027s no\neasy implementation of that --- what should we do if the result of prlimit64\nwon\u0027t fit in a struct rlimit? Since 32-bit survived without prlimit/prlimit64\nfor this long, I\u0027m not going to bother implementing prlimit for 32-bit.\n\nWe need the rlimit64 functions to be able to build strace 4.8 out of the box.\n\nChange-Id: I1903d913b23016a2fc3b9f452885ac730d71e001\n"
    },
    {
      "commit": "887e1140fe7596fa1239a0bc802d2cdb51c57d3c",
      "tree": "de277e97257d5397d6ae36287a080477966dac5c",
      "parents": [
        "17c9fe7d2f396294a09344a253b2a16ae400df14"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 02 12:05:50 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 02 12:05:50 2014 -0800"
      },
      "message": "Clean up \u003csched.h\u003e.\n\nThis patch switches to using the uapi constants. It also adds the missing\nsetns system call, fixes sched_getcpu\u0027s error behavior, and fixes the\ngensyscalls script now ARM is uapi-only too.\n\nChange-Id: I8e16b1693d6d32cd9b8499e46b5d8b0a50bc4f1d\n"
    },
    {
      "commit": "ed76a9361cffe6840b05d0ddfe71892bb25ab42e",
      "tree": "8b8ebedea88bd0de9f6523691b6141f8716ce172",
      "parents": [
        "7bd0815371c9bd803ee4ca0981b911b99efd2454"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Dec 12 09:36:27 2013 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 12 10:41:52 2013 -0800"
      },
      "message": "AArch64: Fix mmap64() definition for AArch64, X86_64\n\nFor 64bit Architectures mmap() is equivalent to mmap64(). This patch\nmaps mmap64() to mmap() in a similar way to other syscalls that differ\nbased on the size of off_t and off64_t\n\nChange-Id: If21b21ef71120bad23d9a608d02d4a7de5220a87\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "ed45970ac5a182e512669cfa5c15b9f4fa783ad7",
      "tree": "c8038ea495e3822f652d45eb06efe739b246268b",
      "parents": [
        "ab0b0cdf1b07eb25ad89e0de08d4b3fd453602fe"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 02 17:44:53 2013 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 02 19:13:12 2013 -0800"
      },
      "message": "Add cfi directives to all arm assembly.\n\nSince the ENTRY/END macros now have .cfi_startproc/.cfi_endproc, most of the\ncustom arm assembly has no unwind information. Adding the proper cfi directives\nfor these and removing the arm directives.\n\nUpdate the gensyscalls.py script to add these cfi directives for the generated\nassembly. Also fix the references to non-uapi headers to the proper uapi\nheader.\n\nIn addition, remove the kill.S, tkill.S, tgkill.S for arm since they are not\nneeded at all. The unwinder (libunwind) is able to properly unwind using the\nnormal abort.\n\nAfter this change, I can unwind through the system calls again.\n\nBug: 11559337\nBug: 11825869\nBug: 11321283\n\nChange-Id: I18b48089ef2d000a67913ce6febc6544bbe934a3\n"
    },
    {
      "commit": "36d6188f8cd8b948fb797f11d9620d63d0c2215a",
      "tree": "86b3162cac031151b2ae44b4d554fce4f9456147",
      "parents": [
        "318e86ed887e04e593f3db9b84b402d5501ced9b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 13:31:58 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 19 14:08:54 2013 -0800"
      },
      "message": "Clean up forking and cloning.\n\nThe kernel now maintains the pthread_internal_t::tid field for us,\nand __clone was only used in one place so let\u0027s inline it so we don\u0027t\nhave to leave such a dangerous function lying around. Also rename\nfiles to match their content and remove some useless #includes.\n\nChange-Id: I24299fb4a940e394de75f864ee36fdabbd9438f9\n"
    },
    {
      "commit": "877ec6d90418ff1d6597147d355a2229fdffae7e",
      "tree": "e475221a7fbff1564ad37548e920333c49cc5873",
      "parents": [
        "f246c589d66e5dc0e3cddc3c37261fb0e3fc67e9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 15 17:40:18 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 18 19:48:11 2013 -0800"
      },
      "message": "Fix pthread_join.\n\nLet the kernel keep pthread_internal_t::tid updated, including\nacross forks and for the main thread. This then lets us fix\npthread_join to only return after the thread has really exited.\n\nAlso fix the thread attributes of the main thread so we don\u0027t\nunmap the main thread\u0027s stack (which is really owned by the\ndynamic linker and contains things like environment variables),\nwhich fixes crashes when joining with an exited main thread\nand also fixes problems reported publicly with accessing environment\nvariables after the main thread exits (for which I\u0027ve added a new\nunit test).\n\nIn passing I also fixed a bug where if the clone(2) inside\npthread_create(3) fails, we\u0027d unmap the child\u0027s stack and TLS (which\ncontains the mutex) and then try to unlock the mutex. Boom! It wasn\u0027t\nuntil after I\u0027d uploaded the fix for this that I came across a new\npublic bug reporting this exact failure.\n\nBug: 8206355\nBug: 11693195\nBug: https://code.google.com/p/android/issues/detail?id\u003d57421\nBug: https://code.google.com/p/android/issues/detail?id\u003d62392\nChange-Id: I2af9cf6e8ae510a67256ad93cad891794ed0580b\n"
    },
    {
      "commit": "effaa7824da1af4db5cef50c78079d4c4e1717a7",
      "tree": "75fd1cad053bece3b7df4c45e26e16a36c2de737",
      "parents": [
        "ae5c3dd73844e6a9e1a14dbf893eab5142902f18"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris.dearman@imgtec.com",
        "time": "Wed Nov 13 14:15:31 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 14 16:53:15 2013 -0800"
      },
      "message": "[MIPS] Reimplement syscall to invoke the system call directly\n\nSome MIPS kernels do not correctly restart interrupted system calls that\nhave been invoked using the indirect syscall (NR_syscall).\n\nThe simplest workaround is to handle the indirection in userland and then\ncall the required system call directly.\n\nChange-Id: I8385399621529db9a52b463c96925f6decaaca30\n"
    },
    {
      "commit": "062092543fdbd6fa2676e4f5b37a15f7bba94332",
      "tree": "1363126a8783cca6b0ae3faf7cab2657d1934323",
      "parents": [
        "7115c80231aa88272294076c8775c09727ece85a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 16:20:54 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 16:33:39 2013 -0800"
      },
      "message": "Clean up the 32-bit kernel support, fix LP64 fcntl declaration.\n\nIn practice, thanks to all the registers the stubs don\u0027t actually change,\nbut it\u0027s confusing to have an incorrect declaration.\n\nI suspect that fcntl remains broken for aarch64; it happens to work for\nx86_64 because the first vararg argument gets placed in the right register\nanyway, but I have no reason to believe that\u0027s true for aarch64.\n\nThis patch adds a unit test, though, so we\u0027ll be able to tell when we get\nas far as running the unit tests.\n\nChange-Id: I58dd0054fe99d7d51d04c22781d8965dff1afbf3\n"
    },
    {
      "commit": "8fbf8deb34d0bd1efc22d2b67d660ad32ecc4c5c",
      "tree": "8bd70629fb957b305d7558141aba87817fb1f324",
      "parents": [
        "c4dbc16eb03bcc0a3ea04cd32ce7551ad94b2bfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 13:10:37 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 06 13:10:37 2013 -0800"
      },
      "message": "Fix pread/pwrite for LP64.\n\nUnlike on 32-bit systems where off_t is 32-bit, we don\u0027t want to\nthrow away the top 32 bits of an LP64 system\u0027s 64-bit off_t.\n\nChange-Id: Ib2e0daeb4fc0b8ab3d1b983d0b371d8f81033b50\n"
    },
    {
      "commit": "feaa89a1bcc643a9c3892bb56e020e00779bbb3a",
      "tree": "6dcf3924797a62d3dbcf258ccf67ebc26aa0d268",
      "parents": [
        "07d3c6cecc8016577c9dbd827e85154c077604da"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Mon Oct 07 16:49:09 2013 +0100"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 28 16:16:34 2013 -0700"
      },
      "message": "AArch64: Add support for AArch64 to the syscall interface\n\nThis patch adds support for AArch64 to the syscall interface. The kernel\nimplementation exports a set of canonical syscalls, therefore some of\nthe userspace exported syscalls are implemented as stubs based on the\ncanonical set.\n\nChange-Id: Ia965d71e97769b8be9d7655193fc40303964c4df\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "6b53c2349a5a3fc70a475de6a66131b615e88e48",
      "tree": "3e06ca4bee68b07b1ea57cb564fed82333e997be",
      "parents": [
        "bbefbf1a75052e4c887309299fb4532705aa843d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 22:36:58 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 22:41:50 2013 -0700"
      },
      "message": "Fix the exit syscall stub\u0027s name.\n\nI\u0027ve left the exit_group syscall as _exit because otherwise we\u0027d have to\nconvince the compiler that our _exit (which just calls __exit_group) is\nactually \"noreturn\", and it seems like that would be less clean than just\ncutting out the middleman.\n\nWe\u0027ll just have to trust ourselves not to add anything to SYSCALLS.TXT\nthat ought to be private but that only has a single leading underscore.\nHopefully we can manage that.\n\nChange-Id: Iac47faea9f516186e1774381846c54cafabc4354\n"
    },
    {
      "commit": "11952073af22568bba0b661f7a9d4402c443a888",
      "tree": "c4ae77a40e8e309219cd4ab993a39d92f3d13e50",
      "parents": [
        "cdac5f73aca015287d1f40ff50d4fbf293a0c549"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 15:15:14 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 24 15:48:32 2013 -0700"
      },
      "message": "Remove dependencies on obsolete __ARCH_WANT_SYSCALL_DEPRECATED system calls.\n\n(aarch64 kernels don\u0027t have these system calls.)\n\nChange-Id: I6f64075aa412f71520f2df71c3d69b647f91c1ca\n"
    },
    {
      "commit": "cac7b9d6ec1a09814bc028e2f768db732f018891",
      "tree": "3278eba969b89888065d93f36be63eb68f463242",
      "parents": [
        "ec40edc9188aebe5207e47c0a66e89e1ed368bd6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 09:48:29 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 23 09:48:29 2013 -0700"
      },
      "message": "Remove dependencies on obsolete __ARCH_WANT_SYSCALL_NO_FLAGS syscalls.\n\n(aarch64 kernels only have the newer system calls.)\n\nAlso expose the new functionality that\u0027s exposed by glibc in our header files.\n\nChange-Id: I45d2d168a03f88723d1f7fbf634701006a4843c5\n"
    },
    {
      "commit": "f8fcfbc85a3ce3e195626b90736d3a484331494b",
      "tree": "5742644f2305f27b65ae7d3a4d07a7614c36af2a",
      "parents": [
        "f0ed9bf2537e861ae75e6ab71efb4b4722ad0eee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 13:28:46 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 22 16:31:01 2013 -0700"
      },
      "message": "Move away from the __ARCH_WANT_SYSCALL_NO_AT system calls.\n\nModern architectures only get the *at(2) system calls. For example,\naarch64 doesn\u0027t have open(2), and expects userspace to use openat(2)\ninstead.\n\nChange-Id: I87b4ed79790cb8a80844f5544ac1a13fda26c7b5\n"
    },
    {
      "commit": "9ea4d5f3a852a03b5a2c5676da148a2779821518",
      "tree": "a1dd1b55de4883894098eb7bc6e43b755655aa96",
      "parents": [
        "a5bab412e0bcb4f9e449d594330819c321cf18ad"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 18:21:11 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 18 18:21:11 2013 -0700"
      },
      "message": "Fix the x86_64 vfork implementation.\n\nChange-Id: I599507f5058e6196dc2d5b5653d06d5135dd8ac1\n"
    },
    {
      "commit": "a6519d63063fe3c543bfd3b75b1145ddcd3b36b8",
      "tree": "d08a4bfaf1309a26f3dd92643ba31042bde43aa5",
      "parents": [
        "5b1916043728f7f869f1286b6e04662a3d7d472b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 17 16:56:40 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 17 16:56:40 2013 -0700"
      },
      "message": "Add missing aliases for off64_t functions in 64-bit land.\n\nSee the comment in SYSCALLS.TXT for an explanation.\n\nChange-Id: I33d4056e84160c3cca74b7b588e9924a569753ed\n"
    },
    {
      "commit": "c7e9b2331771e5e87c34a8ee3dc6cc41d35b02fe",
      "tree": "c04816a58f739d9f76c12a0f5acf1676eed6c89c",
      "parents": [
        "f89f1eaa6071111c2ef584e97efb23f1b5dbdd2d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 22:27:54 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 17 11:36:55 2013 -0700"
      },
      "message": "Fix sigaction(3) for 64-bit.\n\nAlso clean up \u003csignal.h\u003e and revert the hacks that were necessary\nfor 64-bit in linker/debugger.cpp until now.\n\nChange-Id: I3b0554ca8a49ee1c97cda086ce2c1954ebc11892\n"
    },
    {
      "commit": "40d105ccb3e6283566ce54b693b3088f31aa4f26",
      "tree": "8a406806f97d14f4d66589dd70ce1e589f779348",
      "parents": [
        "26242bf266fc7ee72a972ff0e4b12c024df4993c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 12:53:58 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 16 14:07:01 2013 -0700"
      },
      "message": "Switch sigpending over to rt_sigpending.\n\nChange-Id: I7b28984796b5fb343cfbcc47e0afc3a84293d417\n"
    },
    {
      "commit": "c9da332cce903ebd4bec97da1d78d363fcf41f6d",
      "tree": "8b89ff33d2f5a9405f7bf43a4ec8e4fab44e6d6b",
      "parents": [
        "608c65f6955213179db4140cc57c40a2a88d5846"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 18:18:58 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 18:18:58 2013 -0700"
      },
      "message": "Remove support for the useless \u0027custom\u0027 option in SYSCALLS.TXT.\n\nThis cruft dates from a time when bionic would only output syscall\ncontants for the syscalls mentioned in SYSCALLS.TXT. I fixed that\na long time ago, but never followed through with the removal of what\nwas then confusingly called \"stub\" and was recently renamed \"custom\".\n\nChange-Id: I8f3872a200b2dc8325e357cc5ee505ea4212ef95\n"
    },
    {
      "commit": "1f5af926fa626734981d6b4dcc0ab54e520032a9",
      "tree": "ec2188086f5ed45089a46e2e36ecf442f477bb69",
      "parents": [
        "c100a10069a16eca57f5f9ab838ff98d7db6eb03"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 18:01:56 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 18:15:19 2013 -0700"
      },
      "message": "Fix sigsuspend to use rt_sigsuspend on all platforms.\n\nChange-Id: I981c1a66d35480d4457a0a08a1b042dac94daa5b\n"
    },
    {
      "commit": "19e62325c268a668692e2b65fde2284079f369aa",
      "tree": "364b827a4b7504b5f00c18a2f1bafc5b7d1d83b8",
      "parents": [
        "abeafbd6d5e11044dd305e48134bc3d84319a3da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 11:23:57 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 15 11:23:57 2013 -0700"
      },
      "message": "Clean up the sigprocmask/pthread_sigmask implementation.\n\nLet\u0027s have both use rt_sigprocmask, like in glibc. The 64-bit ABIs\ncan share the same code as the 32-bit ABIs.\n\nAlso, let\u0027s test the return side of these calls, not just the\nsetting.\n\nBug: 11069919\nChange-Id: I11da99f85b5b481870943c520d05ec929b15eddb\n"
    },
    {
      "commit": "232163cf70712fe00436b70dd495f4cf405e9eab",
      "tree": "53a65d0054d5828646703e80216eb2987b8dfe27",
      "parents": [
        "92f3cc50c8d884d1eb3496ebfba7d3916fc711e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 17:35:36 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 09 17:35:36 2013 -0700"
      },
      "message": "Clean up the cpuacct cruft.\n\nChange-Id: I6ed63af8dfc2368e211420389fa8af4d5dc0908f\n"
    },
    {
      "commit": "6fe4e8795452651862c1e02994f434ec5f0d5832",
      "tree": "5d2989a77bbf0f37e0d02f6c0deec601af1e838c",
      "parents": [
        "a6e9ae80e51bffa40e600beb38e7796d2ef45242"
      ],
      "author": {
        "name": "H.J. Lu",
        "email": "hjl.tools@gmail.com",
        "time": "Fri Oct 04 10:03:17 2013 -0700"
      },
      "committer": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Mon Oct 07 21:37:12 2013 +0400"
      },
      "message": "Add an optional alias list to SYSCALLS.TXT\n\nThis patch adds an optional alias list to SYSCALLS.TXT.  It is used to\ncreate aliases for a syscall.  For x86-64, lseek64 is an alias for lseek.\n\nChange-Id: Icb11fd2bb461ea4f5f0a26bfc585471d7d7cc468\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "4906e5653c57d49f94940f28556009a88c42a583",
      "tree": "5a5505ce1458cb1caf6748d896a08142e45233da",
      "parents": [
        "7021e438771f5328843e35e948838bf74392d353"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 04 14:55:30 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 04 14:55:30 2013 -0700"
      },
      "message": "Add arch-x86_64/bionic.\n\nThis is basically half of I5de76f6c46ac87779f207d568a86bb453e2414de from\nPavel Chupin \u003cpavel.v.chupin@intel.com\u003e, but with the stock upstream\nsetjump/sigsetjmp and H.J. Lu\u0027s suggested changes to __rt_sigreturn.\n\nChange-Id: I8167ec228faeb2065391e5bec0413cca662f3d33\n"
    },
    {
      "commit": "9a4127bb0a174dd0c9d479ebc51c878f31d39ed6",
      "tree": "fae0a6e3aa9911fa050e6801a98d33abc743ada1",
      "parents": [
        "232dff3af296d8b86658a9742288ee487b41dd3f"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Wed Dec 12 13:18:50 2012 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 13:56:21 2013 -0700"
      },
      "message": "x86_64: add new __NR_arch_prctl syscall\n\nThis is used to set/get TLS on x86_64. There\u0027s no public declaration\nof this because it\u0027s not meant to be used outside the C library, like\nglibc (though we don\u0027t currently have any visibility controls to ensure\nthis).\n\nChange-Id: I5fc0a5e3ffc3f4cd597d92ee685ab19568ea18f7\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "f12a18b85061e7121c7534faf3625137e56b770d",
      "tree": "85cadd86aaa5265734dde75a620ebf5da31187b5",
      "parents": [
        "fd152c31586a1f5e6763b06f1182ccd72cb86b69"
      ],
      "author": {
        "name": "Pavel Chupin",
        "email": "pavel.v.chupin@intel.com",
        "time": "Wed Dec 12 13:11:48 2012 +0400"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 01 13:27:07 2013 -0700"
      },
      "message": "x86_64: Add x86_64 syscalls and tune gen scripts for x86_64\n\n* Tune syscall stubs generator for 4th target: x86_64\n* Update SYSCALLS.TXT with x86_64 syscalls:\n - Most of the x86 syscalls are equally supported\n - *32 syscalls are not supported on 64-bit\n - *64 syscalls are replaced accordingly without 64 suffix\n - Some syscalls are not supported, replaced with x86_64 analog\n\nSyscalls are regenerated as separate patch for review convenience.\n\nChange-Id: I4ea2e0f13759b0aa61f05208ca68da8d6bc7c048\nSigned-off-by: Pavel Chupin \u003cpavel.v.chupin@intel.com\u003e\n"
    },
    {
      "commit": "d612165c6705379aa50144afc35aa40c16793728",
      "tree": "211edb774ff41f0983e730b5f8d1eff99a04b61c",
      "parents": [
        "a1c1a3344de1c0a35126ea6f43e1d55184f078da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 25 22:43:36 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 26 08:57:17 2013 -0700"
      },
      "message": "Make it easier to add syscalls for another architecture.\n\nMuch of the per-architecture duplication can be removed, so let\u0027s do so\nbefore we add the 64-bit architectures.\n\nChange-Id: Ieb796503c8e5353ea38c3bab768bb9a690c9a767\n"
    },
    {
      "commit": "5e52279256e9faa25378edf2ed40c18983ed6015",
      "tree": "11619887c13c2d73da74d0b545321f03dfb69d90",
      "parents": [
        "43e5baddbcaf571c1a74149c53d1e70a5a2c9de3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 24 00:30:25 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 24 00:35:31 2013 -0700"
      },
      "message": "Simplify the SYSCALLS.TXT format.\n\nThis will make addition of new architectures less unpleasant.\n\nChange-Id: I77c866a63b686e8e70709d08fcf52e8a2d37310a\n"
    },
    {
      "commit": "b4f7616fd618875768b8fffc122b58bdb84a9969",
      "tree": "7a76517ef594dd73dfe18c388483e504fccb0a3d",
      "parents": [
        "f8e71bac14a4bc52cc95c56adfe042c3938279b5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 19 16:27:24 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 19 16:27:24 2013 -0700"
      },
      "message": "Ensure we have the off64_t variant of every function that takes an off_t.\n\nChange-Id: Ib2eee0cf13162be3b62559b84e90c6dcf5aab1c3\n"
    },
    {
      "commit": "d206b560e72e791b5dfeb339b5f7c18354bf95fd",
      "tree": "43505a7c19af687b367549236c9d12778a263ff7",
      "parents": [
        "7d624e9aff4c6addea7f2275fe58ff0815d95c70"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Jun 06 14:29:40 2013 -0700"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jun 25 13:18:03 2013 -0700"
      },
      "message": "libc: add swapon and swapoff syscalls\n\nChange-Id: Ie79dc8e3f2ff1cd427dd6d95e3850920c4b407b0\nSigned-off-by: Rom Lemarchand \u003cromlem@google.com\u003e\n"
    },
    {
      "commit": "4200e6203aaa67c37874ad2b2271bff920297c7f",
      "tree": "5b2ff689915ec6230345c3d020e4f59da678e08f",
      "parents": [
        "e1c58ab5bb6284b3e3a2d0e54c295a93780b3f70"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed May 08 20:21:00 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 14 14:45:02 2013 -0700"
      },
      "message": "libc: add timerfd calls\n\n(cherry-pick of 04c0ac14a49e0969333008a9522b64046d58fbdc.)\n\nChange-Id: I06d0b6c2a8781602362b81f48faf1cca76b9ec05\n"
    },
    {
      "commit": "a51916b58b2d211bcf8ffdbe9cf7faa58e57382f",
      "tree": "dd14e292645f3ba04ea574ee1cc503371f1da3bd",
      "parents": [
        "162b4411fc79fe906020ebdf9e85883237fac8c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 03 10:08:09 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 03 10:08:09 2013 -0700"
      },
      "message": "Fix the SYSCALLS.TXT documentation and remove a dead script.\n\nWe use the system call constants from the kernel header files now,\nso there\u0027s no need to check that they\u0027ve been correctly transcribed\ninto SYSCALLS.TXT.\n\nThis is a work in progress. I\u0027ve added TODOs to SYSCALLS.TXT explaining\nwhat\u0027s left to do.\n\nChange-Id: I3b86acfe7f84b4da1c802ee5a4ef13a2e83e7939\n"
    },
    {
      "commit": "cda62094ef6ab44d3804954fff75be1246725c36",
      "tree": "b0f9d9a146741e5961cafedaccbc2843e545de2c",
      "parents": [
        "c37dd599561ac07a895bc435d818f000054a498d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 22 13:50:44 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 22 13:53:43 2013 -0700"
      },
      "message": "Use the correct names for the __ARM_NR_* syscalls.\n\nThis lets us move all the ARM syscall stubs over to the kernel \u003casm/unistd.h\u003e.\nOur generated \u003csys/linux-syscalls.h\u003e is now unused, but I\u0027ll remove that in a\nlater change.\n\nChange-Id: Ie5ff2cc4abce1938576af7cbaef615a79c7f310d\n"
    },
    {
      "commit": "17a8b0db63d54e9d79bf11112ace0c4fe9606289",
      "tree": "61b5f1d12776e4843e7ba70df5b20f97970be019",
      "parents": [
        "86c318497270c80a3791b4cd9835367653636377"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 15:43:53 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 21 16:14:06 2013 -0700"
      },
      "message": "Expose wait4 as wait4 rather than __wait4.\n\nThis helps strace(1) compile with one fewer hack.\n\nChange-Id: I5296d0cfec5546709cda990abd705ad33d7c4626\n"
    },
    {
      "commit": "0493a6f7be42e22d68e1d6ddb8eb2edaf818756f",
      "tree": "3d0aacb40e3d21584c3d6617c44cdaccc3208040",
      "parents": [
        "c9f80814259a81dce12ba35d1750fa2b23fef48d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 07 11:48:58 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 07 11:51:10 2013 -0800"
      },
      "message": "Regenerate NOTICE files.\n\nAlso clean up some obsolete cruft.\n\nChange-Id: Iec3b36f6607f7a08b72de99294ed5b6cd910dd5f\n"
    },
    {
      "commit": "a4b2dc016fa62bd172a73c3f8971c805700ffb0f",
      "tree": "e4fdfa1397187776c680825a805ae3672c27c052",
      "parents": [
        "364d9ee62f583bca795a2b40f71a04e272c80389"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Jan 09 15:46:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 10 13:14:46 2013 -0800"
      },
      "message": "Add signalfd call to bionic\n\nAdd signalfd() call to bionic.\n\nAdding the signalfd call was done in 3 steps:\n- add signalfd4 system call (function name and syscall\n  number) to libc/SYSCALLS.TXT\n- generate all necessary headers by calling\n  libc/tools/gensyscalls.py. This patch is adding\n  the generated files since the build system\n  does not call gensyscalls.py.\n- create the signalfd wrapper in signalfd.cpp and add\n  the function prototype to sys/signalfd.h\n\n(cherry-pick of 0c11611c11f4dc1b6d43587b72c3ccbe8c51a51c, modified to\nwork with older versions of GCC still in use on some branches.)\n\nChange-Id: I4c6c3f12199559af8be63f93a5336851b7e63355\n"
    },
    {
      "commit": "58aaaa730b5b33bc4ee524eb04985e5b8cf540bb",
      "tree": "9cc321eaeebff1ba2fe99348d2ac7effd42791b9",
      "parents": [
        "285b02582bc301dede933bf9d161ecd68b1f4257"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris@mips.com",
        "time": "Thu Nov 29 11:23:31 2012 -0800"
      },
      "committer": {
        "name": "Chris Dearman",
        "email": "chris@mips.com",
        "time": "Thu Nov 29 12:05:25 2012 -0800"
      },
      "message": "[MIPS] Fix the MIPS getsid system call\n\nChange-Id: I30a27941125bccb35d73a572a729ecf7dd555389\nSigned-off-by: Chris Dearman \u003cchris@mips.com\u003e\n"
    },
    {
      "commit": "4e75c4b2d745c673f5fe20676f7b53eedbec2853",
      "tree": "c9c6bf19d09422f8ba8a91b8b734867501880bf8",
      "parents": [
        "1ceb9824ab39501e98300bc87f7984ee6b455ce8"
      ],
      "author": {
        "name": "Shuo Gao",
        "email": "shuo.gao@intel.com",
        "time": "Thu Oct 11 13:27:48 2012 +0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 11 10:24:51 2012 -0700"
      },
      "message": "Fix perf_event_open syscall for x86 and mips\n\nperf_event_open syscall has a different syscall number for\nthe 3 supported architectures: arm, x86 and mips. Currenlty\nonly the arm syscall number is defined for all architectures.\nTracing tools like perf will not work on other architectures\nthan arm.\n\nAdd the different values for perf_event_open on x86 and mips\nand run gensyscalls.py to update generated headers.\n\nChange-Id: I2ed78bd42c0e5df8dbc51d784be49cccda5fab30\nAuthor: Irina Tirdea \u003cirina.tirdea@intel.com\u003e\nSigned-off-by: Irina Tirdea \u003cirina.tirdea@intel.com\u003e\nSigned-off-by: Shuo Gao \u003cshuo.gao@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\n"
    },
    {
      "commit": "1ad05db9cef23c1ca28ffd51852fa2a0b0c9b4b7",
      "tree": "23595a588bdd3a9bfb5c223e4cc7bc39b8dd84d9",
      "parents": [
        "6e3b0f2d2e89a8f3bbfc5d26dcdc13233c1111ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 11:24:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 06 11:24:45 2012 -0700"
      },
      "message": "Add mlockall and munlockall for Google TV.\n\nChange-Id: I10e961d701e74aab07211ec7975f61167e387853\n"
    },
    {
      "commit": "1ad10a566e042676c95a0bdbf3cbc48e99ddafb2",
      "tree": "113ce6b3d9940da27f19e77d9234feeafa082671",
      "parents": [
        "8b4e8a937be2e7ac94e52d596813095ef16c9ec8"
      ],
      "author": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Wed Aug 29 11:48:35 2012 +0300"
      },
      "committer": {
        "name": "Irina Tirdea",
        "email": "irina.tirdea@intel.com",
        "time": "Mon Sep 03 01:38:34 2012 +0300"
      },
      "message": "Add getsid system call to bionic\n\nAdd getsid() system call to bionic for\nall architectures. This is needed for various tools\n(e.g. perf).\n\nAdding the getsid system call was done in 3 steps:\n() add getsid system call (function name and syscall\nnumber) to libc/SYSCALLS.TXT\n() generate all necessary headers by calling\nlibc/tools/gensyscalls.py. This patch is adding\nthe generated files since the build system\ndoes not call gensyscalls.py.\n() add the system call signature to libc/include/unistd.h\n\nChange-Id: Id69a257e13ec02e1a44085a6b217a3f19ab025b1\nSigned-off-by: Irina Tirdea \u003cirina.tirdea@intel.com\u003e\n"
    },
    {
      "commit": "316ee626b729e3f66a5505a20128af26440cfd19",
      "tree": "5fb2924dc06c35a0b4d333b95cc07ad6bc9678be",
      "parents": [
        "38a02b4b80f50aa1b3e2ee39e9e98146cf42be3d",
        "abd10011a7a6066df76de7acf5eecb2cc870b0c4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 15:05:35 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 15:05:36 2012 -0700"
      },
      "message": "Merge \"MIPS support to sigsuspend and sigwait routines\""
    },
    {
      "commit": "e36c826f7a6580227e9e70f6ec70aa88ba0f577e",
      "tree": "d36ec57b36b908d06e3d277c0eb1e486ca18da89",
      "parents": [
        "4ec9e343cf445c5032d9a782d2e92b1dba713e61"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 10 11:17:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 10 12:57:43 2012 -0700"
      },
      "message": "Add unshare() syscall.\n\n(cherry-pick of 5467f25f82934d611c60f8bc57a05114f3c1bea0.)\n\nBug: 6925012\nChange-Id: Ic5ea2fbd606311087de05d7a3594df2fa9b2fef9\n"
    },
    {
      "commit": "abd10011a7a6066df76de7acf5eecb2cc870b0c4",
      "tree": "7e292a489e0deb6ff7b684de45cdacd4d4b8deb8",
      "parents": [
        "0836a7ffb13890558fe568119b023007cce66373"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Aug 09 10:49:32 2012 -0700"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Aug 09 18:51:19 2012 -0700"
      },
      "message": "MIPS support to sigsuspend and sigwait routines\n\nChange-Id: I870e798ed7eac5a8c74e5784a670f3a4f24331a9\n"
    },
    {
      "commit": "dbd5ecad26e39281bb83f97664bc32555c5c071a",
      "tree": "1d652ad548a322f09cb77e8f5fce98eb7892fbd0",
      "parents": [
        "58a00b4977b6fa073a8f56d94d741b1e4cb49856",
        "e54089079b123b207e171c14b2b0dca23c9386f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 13:53:37 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 13:53:37 2012 -0700"
      },
      "message": "resolved conflicts for merge of e5408907 to jb-dev-plus-aosp\n\nChange-Id: If4c3f51bf87b28da8074be2e46ae772a374b266f\n"
    },
    {
      "commit": "1fa0d849576555577ffd9675677a3c95f21b754e",
      "tree": "20c015513cd03630c3fe81ddf9b36625c3b26310",
      "parents": [
        "7eb1cc23f8976a2062ba0cf92f030216a8e64e60"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Fri Jan 27 17:51:42 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 09 11:46:28 2012 -0700"
      },
      "message": "[MIPS] Add support for MIPS syscalls\n\nChange-Id: I4deba67e15c865c4c2db03064c04098a09828ea6\nSigned-off-by: Raghu Gandham \u003craghu@mips.com\u003e\nSigned-off-by: Chris Dearman \u003cchris@mips.com\u003e\n"
    },
    {
      "commit": "f848321c4feb0a8b194a2148c3a9d6d65280f924",
      "tree": "87cf90cc1e952a4eb705c521bc9e56620f7d4181",
      "parents": [
        "8ecb4770a0a046e753e16d51d31371b827d20cf1",
        "ef9876569aa5c772439b883a7ee68aa207c98d1e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:26:43 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:26:43 2012 -0700"
      },
      "message": "resolved conflicts for merge of ef987656 to master\n\nChange-Id: I3854de8f4cddaf344444efa6f9da027642a237d9\n"
    }
  ],
  "next": "8ecb4770a0a046e753e16d51d31371b827d20cf1"
}
