)]}'
{
  "commit": "e7d476dfdf0bcfed478a207aecfdc84f81efecaf",
  "tree": "8adc7f4cf562cd0e283d4abdaa0633686a59d8b2",
  "parents": [
    "5fb5e04926a54bc1c22bba7ca166840f4476196f"
  ],
  "author": {
    "name": "Ulrich Drepper",
    "email": "drepper@redhat.com",
    "time": "Wed Jul 23 21:29:38 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Jul 24 10:47:29 2008 -0700"
  },
  "message": "flag parameters: NONBLOCK in eventfd\n\nThis patch adds support for the EFD_NONBLOCK flag to eventfd2.  The\nadditional changes needed are minimal.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_eventfd2\n# ifdef __x86_64__\n#  define __NR_eventfd2 290\n# elif defined __i386__\n#  define __NR_eventfd2 328\n# else\n#  error \"need __NR_eventfd2\"\n# endif\n#endif\n\n#define EFD_NONBLOCK O_NONBLOCK\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_eventfd2, 1, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"eventfd2(0) failed\");\n      return 1;\n    }\n  int fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (fl \u0026 O_NONBLOCK)\n    {\n      puts (\"eventfd2(0) sets non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_eventfd2, 1, EFD_NONBLOCK);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"eventfd2(EFD_NONBLOCK) failed\");\n      return 1;\n    }\n  fl \u003d fcntl (fd, F_GETFL);\n  if (fl \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((fl \u0026 O_NONBLOCK) \u003d\u003d 0)\n    {\n      puts (\"eventfd2(EFD_NONBLOCK) does not set non-blocking mode\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bd420e6478add9dbe241816cc5dbb8b8045a5052",
      "old_mode": 33188,
      "old_path": "fs/eventfd.c",
      "new_id": "3ed4466177a74929b2fac1cde0b38af8ef0e9f06",
      "new_mode": 33188,
      "new_path": "fs/eventfd.c"
    },
    {
      "type": "modify",
      "old_id": "a6c0eaedb1b091c792bb8b528ddbfe5d1031b890",
      "old_mode": 33188,
      "old_path": "include/linux/eventfd.h",
      "new_id": "a667637b54e3912783c9f1e086c57df74784e05b",
      "new_mode": 33188,
      "new_path": "include/linux/eventfd.h"
    }
  ]
}
