)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "8ecb4770a0a046e753e16d51d31371b827d20cf1",
      "tree": "29a924ee55909059732fe9903ec809695ddd951d",
      "parents": [
        "8266cf94d399e2bf9f787ac9d6a5ecbfb5af3f5d",
        "6b8fd05414decfbbe46c8ce8e45ab8384594805e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:16:42 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 14:16:42 2012 -0700"
      },
      "message": "resolved conflicts for merge of 6b8fd054 to master\n\nChange-Id: Ifc5a10d9c2f7764ad80d64cc552aad81d5fbf5eb\n"
    },
    {
      "commit": "4994deaef51d5fa1ac12e6160b47d9cbe3b2bc43",
      "tree": "83d2a1780ad295899ea3ed18dea561f107de76c8",
      "parents": [
        "7b8666e683e56549091b86fd7b9c421fd0124dbc",
        "d515ce465be909d830a39462c3f196b5d7f35c66"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 09:09:04 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 16 09:09:05 2012 -0700"
      },
      "message": "Merge \"Bionic: Fix wrong prototype of system call clock_nanosleep\""
    },
    {
      "commit": "d515ce465be909d830a39462c3f196b5d7f35c66",
      "tree": "707c0067ad2351d96bba6fd19f14e04e5223514c",
      "parents": [
        "6bc18fa58849a4307cf6ddcfd526d9258e8175fc"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Tue Apr 17 11:20:15 2012 +0800"
      },
      "committer": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Mon Apr 16 23:53:05 2012 +0800"
      },
      "message": "Bionic: Fix wrong prototype of system call clock_nanosleep\n\nIn bionic/libc/SYSCALLS.TXT, the prototype of system call\nclock_nanosleep is incorrect.\n\nAccording to man page:\nint clock_nanosleep(clockid_t clock_id, int flags,\n                    const struct timespec *request,\n                    struct timespec *remain);\n\nChange-Id: Ic44c6db3d632293aa17998035554eacd664c2d57\nSigned-off-by: Jin Wei \u003cwei.a.jin@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "41070dd15f2c5916dfc96da4c256dd04d7f9c837",
      "tree": "6900905494d40539c9b2fe1ea03f349fa24f4c5b",
      "parents": [
        "6bc18fa58849a4307cf6ddcfd526d9258e8175fc"
      ],
      "author": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Tue Apr 17 11:16:18 2012 +0800"
      },
      "committer": {
        "name": "Jack Ren",
        "email": "jack.ren@intel.com",
        "time": "Mon Apr 16 23:45:36 2012 +0800"
      },
      "message": "bionic: Fix wrong prototype of system call getresuid/getresgid\n\nIn bionic/libc/SYSCALLS.TXT, the prototypes of system call\ngetresuid/getresgid are incorrect.\n\nAccording to man page, they should be:\n    int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);\n    int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);\n\nChange-Id: I676098868bb05a9e1fe45419b234cf397626fdad\nSigned-off-by: Jin Wei \u003cwei.a.jin@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "f0ec06ba609a15cf9343aabd5b2486f9a8af9adb",
      "tree": "63612c38daa434ed182266d38a630914e6882933",
      "parents": [
        "e54cc75f5907684dfd7b1df89b39b4d8375e23a3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 13 14:56:25 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 13 15:45:42 2012 -0700"
      },
      "message": "Add faccessat to syscall list\n\nChange-Id: I427a18811089cb280769ac8da3ed8adc00a65a10\n"
    },
    {
      "commit": "1a823691a21519014daf252691a314f0726d7c3a",
      "tree": "aaf44aebed27ae43e9a9e2682b22f42c99d7201a",
      "parents": [
        "654325de026a2ca5b76b8b40e576c959d8211fdc"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Mar 13 12:28:40 2012 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Mar 13 12:28:40 2012 -0700"
      },
      "message": "Update kernel headers and add syscall \"perf_event_open\"\n\nChange-Id: I43f12b727881df002a8524f2738586c043833bae\n"
    },
    {
      "commit": "7c38f53d1911e04acf6398921a7bd4444d585c2b",
      "tree": "8956d2f496db464333e6a18c8c3775e4c78857b7",
      "parents": [
        "17edd38f03300af28c89f9031dad177af8232c3a",
        "7f28e0b4501de7c4f8f627fd3e4be323d737ae82"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 15:38:55 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 29 15:38:55 2012 -0800"
      },
      "message": "am 7f28e0b4: Merge \"Clean up the remnants of SuperH support\"\n\n* commit \u00277f28e0b4501de7c4f8f627fd3e4be323d737ae82\u0027:\n  Clean up the remnants of SuperH support\n"
    },
    {
      "commit": "b69060f1ae0bd14c93caed2d113a72cf81d98f1d",
      "tree": "3eb4e37e676fd676e35ff3d8eea3d532e3c23254",
      "parents": [
        "177a77067b6d3326dbcf88fd93d0664e48e27f9f"
      ],
      "author": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Feb 09 15:58:46 2012 -0800"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Thu Feb 09 15:58:46 2012 -0800"
      },
      "message": "Clean up the remnants of SuperH support\n"
    },
    {
      "commit": "25b7a16a6ee73248192909862f03f95d2363ad14",
      "tree": "97d420779e6b79917ba5ac65b9bc182a8ceaa68d",
      "parents": [
        "b118b9c5cd6a99fd3368a01ee9de8849d869afc7",
        "c4cb87f367fc33b36c9988b4f42fc07876abccd1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 09:46:08 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 09:46:08 2012 -0800"
      },
      "message": "Merge c4cb87f3\n\nChange-Id: I4cc14eba43fde75a7702fdc7ad07d3d949e9c092\n"
    },
    {
      "commit": "c4cb87f367fc33b36c9988b4f42fc07876abccd1",
      "tree": "04772e71faec8bb3b1a4f35ac8c2e0d57e134ff3",
      "parents": [
        "cc12c74f7f65c571778989cd902eb5b9fa74fb11",
        "5b892aa7e581c0b247262a95d70db20991121afe"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 07:12:13 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 01 07:12:13 2012 -0800"
      },
      "message": "Merge 5b892aa7\n\nChange-Id: Ic82bc2866bdb0c93822c94281301fa127fd4bb0c\n"
    },
    {
      "commit": "70b1668a76d3b719ae690903ea790fda964a5458",
      "tree": "674232e6152fa67c0db8b07b0083bb3ac6c9bd8c",
      "parents": [
        "e80044455961005ac95e405c8d553f2418d8e50c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Jan 30 17:17:58 2012 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Tue Jan 31 20:28:23 2012 +0100"
      },
      "message": "remove obsolete SuperH support\n\nWe don\u0027t have a toolchain anymore, we don\u0027t have working original\nkernel headers, and nobody is maintaining this so there is really\nno point in keeping this here. Details of the patch:\n\n- removed code paths from Android.mk files related to the SuperH\n  architecture (\"sh\")\n\n- removed libc/arch-sh, linker/arch-sh, libc/kernel/arch-sh\n\n- simplified libc/SYSCALLS.TXT\n\n- simplified the scripts in libc/tools/ and libc/kernel/tools\n\nChange-Id: I26b0e1422bdc347489e4573e2fbec0e402f75560\n\nSigned-off-by: David \u0027Digit\u0027 Turner \u003cdigit@android.com\u003e\n"
    },
    {
      "commit": "73fa5fdaf9ec27741a17b0b793ff6890e6dcecd5",
      "tree": "6ea04b41beb695e792e21018b1e7c0ea6e79a5b5",
      "parents": [
        "d8545e2690c0c179f36c0e4a15c5589bdd6265ce",
        "2f80f07d8106782ac94b05f529c8cbb1fd1c6f64"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 16:47:01 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 16:47:01 2012 -0800"
      },
      "message": "Merge 2f80f07d\n\nChange-Id: Iff51b8530dbee01499ba4af0ecd6ab837c8c94fb\n"
    },
    {
      "commit": "2f80f07d8106782ac94b05f529c8cbb1fd1c6f64",
      "tree": "9617b50e1bf6a35cbaf55cd0d5003595c41bc2c0",
      "parents": [
        "8eb948d8c8b66d8442a45d398db4e970fb3bf68b",
        "23f56bbb6ae053996dd821f29379aea0c7166055"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jan 20 11:54:47 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 20 11:54:47 2012 -0800"
      },
      "message": "am 23f56bbb: Merge \"Add extended attribute (xattr) system call wrappers to bionic.\"\n\n* commit \u002723f56bbb6ae053996dd821f29379aea0c7166055\u0027:\n  Add extended attribute (xattr) system call wrappers to bionic.\n"
    },
    {
      "commit": "5eb686d105ebd7cea332fd1ef0bb3af9386e19f7",
      "tree": "3df9e137dcdcc8b78cb9ca78aee8c5de50316e87",
      "parents": [
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Fri Jan 13 07:45:16 2012 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Jan 18 08:02:23 2012 -0500"
      },
      "message": "Add extended attribute (xattr) system call wrappers to bionic.\n\nThe xattr system calls are required for the SE Android userspace in\norder to get and set file security contexts.  In particular, libselinux\nrequires these calls.\n\nChange-Id: I78f5eb3d8f3384aed0a5e7c6a6f001781d982017\n"
    },
    {
      "commit": "023e5409df07a5d5ead6efb1825f6df92bcf50da",
      "tree": "fb62c1b226535e429cd337ec4114372c1a097649",
      "parents": [
        "697011d3c4d3bfb6b8b070ea9ac7c393b85f9f5e",
        "06f51ba1af2fafeec7fdfcba5d635bd001a31b3e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 13:09:53 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 13:09:53 2012 -0800"
      },
      "message": "am 06f51ba1: am f44de270: add personality() system call.\n\n* commit \u002706f51ba1af2fafeec7fdfcba5d635bd001a31b3e\u0027:\n  add personality() system call.\n"
    },
    {
      "commit": "06f51ba1af2fafeec7fdfcba5d635bd001a31b3e",
      "tree": "f8221ac70c84c7708a97e9963aa772e83f11923f",
      "parents": [
        "82c4be54da0825ebe74b524932c9db733419057a",
        "f44de270bba32c9b1b5eff8a34be07b10ddff238"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 17 11:45:25 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 17 11:45:25 2012 -0800"
      },
      "message": "am f44de270: add personality() system call.\n\n* commit \u0027f44de270bba32c9b1b5eff8a34be07b10ddff238\u0027:\n  add personality() system call.\n"
    },
    {
      "commit": "f44de270bba32c9b1b5eff8a34be07b10ddff238",
      "tree": "79597af69be025eb643e495bf9a635077717cc8a",
      "parents": [
        "ecd0e95a0276c1ba72c7331f5e4617815f015f22"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 13 14:03:01 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 13 15:50:40 2012 -0800"
      },
      "message": "add personality() system call.\n\nChange-Id: Ie899def8ea1d705930ed83adae1343c1353e7c57\n"
    },
    {
      "commit": "6519c8124ee9f2b1ed341cc683b78cf26809678d",
      "tree": "2dc3f350fa429f85e263ab913b534ac4dc7972ab",
      "parents": [
        "334379dadaf481785909367cfc26600514b6119c",
        "e30e909363c5c706f394050d9cd00ce222caadbf"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue Jan 03 18:37:28 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 03 18:37:28 2012 -0800"
      },
      "message": "am e30e9093: sreadahead: adding readahead system call into bionic libc\n\n* commit \u0027e30e909363c5c706f394050d9cd00ce222caadbf\u0027:\n  sreadahead: adding readahead system call into bionic libc\n"
    },
    {
      "commit": "e30e909363c5c706f394050d9cd00ce222caadbf",
      "tree": "33dcf8fcbca380db7910ff3519cfc4cf362ab917",
      "parents": [
        "a37f3729730e4e7345977915d67adc3eea93dfe4"
      ],
      "author": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Wed Jul 13 10:23:50 2011 -0700"
      },
      "committer": {
        "name": "Bruce Beare",
        "email": "bruce.j.beare@intel.com",
        "time": "Tue Jan 03 15:18:04 2012 -0800"
      },
      "message": "sreadahead: adding readahead system call into bionic libc\n\nAdd bionic libc to support readahead system call.\nThis is needed to enable sreadahead to work.\n\nChange-Id: I3856e1a3833db82e6cf42fd34af7631bd40cc723\nAuthor: Winson Yung \u003cwinson.w.yung@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "10c8ce59a40a1d8ae8f49145eca365b364aabe58",
      "tree": "5157c1d270cda4e2933a0e7fedf8b5ed6b920f96",
      "parents": [
        "4b469eae40368913b2841b390dada6c58296c602"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 18 15:17:07 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 18 16:40:48 2011 -0800"
      },
      "message": "Add tgkill syscall.\n\nUse tgkill instead of tkill to implement pthread_kill.\nThis is safer in the event that the thread has already terminated\nand its id has been reused by a different process.\n\nChange-Id: Ied715e11d7eadeceead79f33db5e2b5722954ac9\n"
    },
    {
      "commit": "4aa321538afde20a632ed666f83f40f892505550",
      "tree": "234af69149de574035abf0a58a6f39db2cef50ae",
      "parents": [
        "204d1f65dbfc6d5a14a90627d9d1efcfce8261ee",
        "2cae7967e6049e45eaef71207481b6f8b2456025"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Mon Jun 06 12:27:10 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 06 12:27:10 2011 -0700"
      },
      "message": "am 2cae7967: Merge \"libc: Fix prctl() declaration.\"\n\n* commit \u00272cae7967e6049e45eaef71207481b6f8b2456025\u0027:\n  libc: Fix prctl() declaration.\n"
    },
    {
      "commit": "b083bb57f5cae6b1fa3fd756a2720a3de806da2b",
      "tree": "918c37c39340083d7737e56cea44903f54470555",
      "parents": [
        "9062a2369107eadb2b45973adc3246cba35640e6"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu May 26 02:46:41 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu May 26 02:46:41 2011 +0200"
      },
      "message": "libc: Fix prctl() declaration.\n\nThis change fixes the prctl() declaration to match GLibc, and allow us\nto build gcc-4.6 for Android (among other things). Note that this does\nnot change the source and binary interfaces.\n\nChange-Id: I3900c957f0da8b3548cbe9da8c41d50099dc19d6\n"
    },
    {
      "commit": "ae2d5ba31412c4f382ef405000baa866f35dd736",
      "tree": "54338fc3fa81d2ff665cf259570b7684c0453269",
      "parents": [
        "ec7e8cc9dddafc624cd28939c1a38ea336c89455"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Mar 18 11:55:12 2011 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Thu Mar 24 18:18:48 2011 -0700"
      },
      "message": "Add support for the utimensat(2) syscall to bionic.\n\nThe kernel has supported this syscall for quite some time now,\nbut bionic did not.  Now that there is a need for it, let\u0027s\nadd it to bionic.\n\nChange-Id: Ifcef3e46f1438d79435b600c4e6063857ab16903\n"
    },
    {
      "commit": "fc2693110ee8a2ba22a445ad9855fbe9e118d439",
      "tree": "6bbfcf0620780f454b5c0ac2dbd5341a00cfa157",
      "parents": [
        "040e18f362716c0bab1d9c39a869b98d6c61584c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Oct 11 22:11:06 2010 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Feb 03 18:07:41 2011 +0100"
      },
      "message": "libc: Update auto-gen scripts\n\nMake the scripts use external/kernel-headers/original by default.\n\nclean_header.py:  Document -k\u003cpath\u003e, add -d\u003cpath\u003e\nfind_headers.py:  Make kernel config files optional\nupdate_all.py:    Allow setting the path to kernel headers on the command-line\nupdate_all.py:    Better formatting of output on ttys\nupdate_all.py:    Automatically perform \"git add/rm\" on affected files.\nSYSCALLS.TXT:     Fix typo in __socketcall definition.\nchecksyscalls.py: Add support for superH architecture in the checks.\ngensyscalls.py:   Automatically perform \"git add/rm\" on affected files.\ncpp.py:           Fixed a bug that prevented certain type definitions to\n                  be kept in the generated clean header (e.g.\n                  struct ethtool_drvinfo in \u003clinux/ethtool.h\u003e)\n\nAll scripts will use the content of external/kernel-headers/original by default now.\n\nThe generated code removes all empty lines and trailing whitespace. This is useful\nto ensure a unified output even if we change the parser again in the future.\n\nThe top-level disclaimer has been edited with update instructions to regenerate\nthe headers when needed.\n\nAlso, a warning is now inserted every 8th line in the final output:\n\n/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */\n\nChanges under kernel/arch-arm and kernel/arch-x86 should correspond to whitespace\ndifferences and additionnal struct definitions that were missed by the previous\nparser implementation.\n\nChange-Id: Icd1c056bacd766759f3e9b7bb5d63a246f3d656a\n\nWARNING: If you run these script, do not submit the result to gerrit for now.\n         It seems there are discrepancies between the content of original headers\n         and those currently commited under bionic/libc/kernel/.\n\n         (This problem is the main motivation to insert the warning repeatedly).\n\n         Current list of issues:\n\n           - Missing SuperH headers (i.e. external/kernel-headers/original/asm-sh)\n"
    },
    {
      "commit": "95d751feacdb58d3fbc36f3f21a895a3ec2f065b",
      "tree": "fc598e3e60c32a6bb576e224d27f37905769f0e8",
      "parents": [
        "4a7f31fad74417696ce740b1f5c14e4de0740e33"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Dec 16 16:47:14 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Dec 16 17:04:41 2010 +0100"
      },
      "message": "libc: Add ftruncate64 and improve 64-bit parameter syscall handling.\n\nThis patch improves the handling of 64-bit parameters in syscalls on ARM.\nThe ARM EABI mandates that 64-bit quantities be passed in even/odd register\npairs, which requires special treatment.\n\nThis allows us to simplify our implementations of pread() and pwrite()\nand remove the C stubs for pread64() and pwrite64().\n\nAlso add ftruncate64() to \u003cunistd.h\u003e\n\nChange-Id: I407e2fd223ba0093dd2d0b04c6152fadfc9ce3ef\n\nBug 3107933\n"
    },
    {
      "commit": "4a7f31fad74417696ce740b1f5c14e4de0740e33",
      "tree": "cbe1f4b710dc9a003970f704776fa492a18eb035",
      "parents": [
        "6dba546e531b8f5bf45b19b330ec7cb960325075"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Dec 16 14:57:31 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Dec 16 14:57:31 2010 +0100"
      },
      "message": "libc: Remove duplicate eventfd declaration from SYSCALLS.TXT\n\nThe second declaration came from an incorrect change in AOSP.\nThe eventfd stubs are not affected by this, they are already correct.\n\nChange-Id: Icfc7612a68fc37a48dde2687137960a5d1dbc534\n"
    },
    {
      "commit": "72e6fd42421dca80fb2776a9185c186d4a04e5f7",
      "tree": "322fe185cb1e6bee163cb5c99ed5e1d545ae3c33",
      "parents": [
        "6481b91520150e9664a3c4abc5d2aebdce422f93"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Dec 03 18:04:01 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 06 13:42:54 2010 +0100"
      },
      "message": "\u003csched.h\u003e: Add sched_getcpu() and cpu_set_t\n\nThis adds the cpu_set_t type definition and related functions\nand macros used to handle CPU thread affinity.\n\n  sched_getcpu()\n  sched_setaffinity()\n  sched_getaffinity()\n\nChange-Id: If382ecafde8926341a88478062b275553645065b\n"
    },
    {
      "commit": "686af0b3a5978356be3b1a97187c765d63f11623",
      "tree": "f0fcad6936e22c50d5fadb314efc8b3388e6b0db",
      "parents": [
        "a511f245614d8e6c7700df624e13a41a084ad7e4",
        "defd162212de3789d2268a1f3339c2a6097fa825"
      ],
      "author": {
        "name": "repo sync",
        "email": "digit@google.com",
        "time": "Tue Sep 28 12:23:55 2010 +0200"
      },
      "committer": {
        "name": "repo sync",
        "email": "digit@google.com",
        "time": "Tue Sep 28 12:23:55 2010 +0200"
      },
      "message": "resolved conflicts for merge of defd1622 to gingerbread-plus-aosp\n\nConflicts:\n\tlibc/arch-arm/syscalls/eventfd.S\n\tlibc/include/sys/eventfd.h\n\tlibc/include/sys/linux-syscalls.h\n\nChange-Id: I02f6e9536aa5478322240c199ff4c2f4367922d0\n"
    }
  ],
  "next": "a511f245614d8e6c7700df624e13a41a084ad7e4"
}
