get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/17620/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 17620,
    "url": "http://patches.dpdk.org/api/patches/17620/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1480846288-2517-2-git-send-email-shreyansh.jain@nxp.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1480846288-2517-2-git-send-email-shreyansh.jain@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1480846288-2517-2-git-send-email-shreyansh.jain@nxp.com",
    "date": "2016-12-04T10:11:16",
    "name": "[dpdk-dev,01/13] eal: define container_of macro",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "3986e383e037019e8f660ac16f1307f27eceb4a7",
    "submitter": {
        "id": 497,
        "url": "http://patches.dpdk.org/api/people/497/?format=api",
        "name": "Shreyansh Jain",
        "email": "shreyansh.jain@nxp.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1480846288-2517-2-git-send-email-shreyansh.jain@nxp.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/17620/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/17620/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 66E205678;\n\tSun,  4 Dec 2016 11:09:54 +0100 (CET)",
            "from NAM02-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam02on0061.outbound.protection.outlook.com [104.47.36.61])\n\tby dpdk.org (Postfix) with ESMTP id 679565598\n\tfor <dev@dpdk.org>; Sun,  4 Dec 2016 11:09:04 +0100 (CET)",
            "from BLUPR0301CA0020.namprd03.prod.outlook.com (10.162.113.158) by\n\tBY2PR0301MB0741.namprd03.prod.outlook.com (10.160.63.19) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id\n\t15.1.747.13; Sun, 4 Dec 2016 10:09:03 +0000",
            "from BY2FFO11OLC008.protection.gbl (2a01:111:f400:7c0c::140) by\n\tBLUPR0301CA0020.outlook.office365.com (2a01:111:e400:5259::30) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.9 via\n\tFrontend Transport; Sun, 4 Dec 2016 10:09:02 +0000",
            "from az84smr01.freescale.net (192.88.158.2) by\n\tBY2FFO11OLC008.mail.protection.outlook.com (10.1.14.255) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.734.4\n\tvia Frontend Transport; Sun, 4 Dec 2016 10:09:01 +0000",
            "from Tophie.ap.freescale.net ([10.232.14.87])\n\tby az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tuB4A8pK5019825; Sun, 4 Dec 2016 03:08:58 -0700"
        ],
        "Authentication-Results": "spf=fail (sender IP is 192.88.158.2)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com;\n\tnxp.com; \n\tdkim=none (message not signed) header.d=none;",
        "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.158.2 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.158.2; helo=az84smr01.freescale.net;",
        "X-IncomingTopHeaderMarker": "OriginalChecksum:; UpperCasedChecksum:;\n\tSizeAsReceived:773; Count:10",
        "From": "Shreyansh Jain <shreyansh.jain@nxp.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<thomas.monjalon@6wind.com>, <david.marchand@6wind.com>, Jan Blunck\n\t<jblunck@infradead.org>, Jan Viktorin <viktorin@rehivetech.com>,\n\tShreyansh Jain <shreyansh.jain@nxp.com>",
        "Date": "Sun, 4 Dec 2016 15:41:16 +0530",
        "Message-ID": "<1480846288-2517-2-git-send-email-shreyansh.jain@nxp.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1480846288-2517-1-git-send-email-shreyansh.jain@nxp.com>",
        "References": "<1480846288-2517-1-git-send-email-shreyansh.jain@nxp.com>",
        "X-IncomingHeaderCount": "10",
        "X-EOPAttributedMessage": "0",
        "X-Matching-Connectors": "131253197419834531;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()",
        "X-Forefront-Antispam-Report": "CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(336004)(339900001)(199003)(189002)(104016004)(50226002)(39380400001)(5003940100001)(81156014)(76176999)(39400400001)(189998001)(38730400001)(86362001)(36756003)(50986999)(39410400001)(47776003)(8936002)(8666005)(81166006)(8676002)(356003)(68736007)(110136003)(2351001)(6916009)(305945005)(92566002)(33646002)(2950100002)(6666003)(97736004)(7846002)(106466001)(69596002)(105606002)(5660300001)(50466002)(2906002)(626004)(77096006)(4326007)(85426001)(39450400002)(48376002)(7059030);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0301MB0741;\n\tH:az84smr01.freescale.net; \n\tFPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BY2FFO11OLC008;\n\t1:N/jc4zUOYMMmhihmJxB7Ku6SWO0/hLfsqInmGNApugq34NTFbtTDxBdh8Uzp3B1nizHy1XaXei6Uo135L35WhMsuZHqQ7XhIex2Dr9NLp55GNtq/NDHF5FvR2bGqY8m7068BvaKDuE661jBDFJ8TFTZGWIckzQAZBjbuRhiVikLNniKrwux9Xi8vG/DNvJkMarPmiMfL6mkNFMDq4yHJ92kxog70qIGuAbFM6TKccumx1TA9sElD/1R1RtgYrzrnQ/qRxkEG7z1JcoB9qYAHtBu7hOJdvnh1XwMEot58ucHAKtCO10zi8EdDM1/KS1T7NrN2uoQe6oaNQZtW4fkxsGPfAkjcqRySE0+URRMkJ2DjGTyutkkxKC7hnBbzj/I2cpkp4TVI6ZXqWC8Xn9SrEiNqkiWZ8czo64d7ktxPlKUGJ+CBifnRfPrDO+KU+5ilXXt6uGzOxPQEL9mhOFYNpLTAfp25VNMyAm12QuIF1wCQRIs4PMYvWyI09xRCJ+CMnH+QsFk+7qyGXUPHq02XHKFNDc4dXUmNDtuEo3KCWt9ISdXqFQ0BMqemGDD5/95Y/KsWkoQwlIlDXR3AGkB7QDr/Pgd22+icuvW5/LxlRpNrkUFM35Ngv7IioE9T1O3l/DqfebVPXymw8w56cWUTKVjOJxfXrlD2+rmLjOMDNeJkWDTjbFXXdi2V/6o90wvH4uAiyPcNnc+p2eqOgh0S2jndwSrScztvmUbHFxh/px0=",
            "1; BY2PR0301MB0741;\n\t3:OYdm0j5wllMfmuJBbMreqZ8DSKcYd2MMplaadLdJUXZIB4B0a5HYzY9fu5hpkREJDT1txaiKdOh4jtVmMFmrvi5hwwR5Q+zhLt19PTsm49p+1HBLEObAMo/UFRcpQ5d4OQymdQBj3CbjpVsn69fiZqjsOkcPtprxzvglR4UoFbMPhO+48saqxd14jj1njikaKGSZMRi2o3xrXKeSl9tuFWsb1A907vMJkctZs/puLVo2LgFD8v7jZpjCw1Q36bA226DjLdhg3xC/DF4P9xR/z2GLzRCQflhZtTiag6J5+cTh12OU0hsJFHF+TG0UXyi/Mj12LWaL1HJXlhEJasptnhZ4TZ6zmiSD/LfBbA4oilBKlX/2Wv5HGz0DCFi24W70",
            "1; BY2PR0301MB0741;\n\t25:xqfAoz11rWNYxjje0COfsSdvR9rHEX4vtSqDNuX+rVQ3Qm/Dw1rCKAlbtFfhFKpmgpTKBF4F4hbgKPmmOucB2TPXHfpdd9hENC84yYG2UuzApmY9YswNdQRRD8vjoMVE8adVzfpN8rOhV0PndBGvBkwsRuQPZxZ6Q2LAvMa930UtkiBJSSu5eYFIVD+govl/APyqIB3RhKmCFyM6ww2Vvw3TULHvyQleC8SgEkdyMDMYRgR5K8ilLPTmm1DqtdqdJ4oQEyzvuDIIRzVQ8aAV/yuh8lpk/4xLL9y8tWsPP6FWU4LQJ4v1DC3lYpE4BLE7kg67DVGtAnf+0Um4hyuURM3riwIAt/07cR5iB64fsqDh2Lq+VXRkbPKhXpzToRBF60COokOdaZ58G8PY7DelIyq1MaDwUTvhPTpO6ouSvbYa2JXa6Yzk5ovn+Mqg+vVHkqHTHu4CQ0d+fzG77542nQpMEgho9nyUm64d99D+4wzlIyvubzOMl9Yhl6KUviQCBjkqgMyY++NW+hgSZrwJCSjjc7spiLKfkRKPoi0j1PiuCxnJ0c8ceyez3ofAtZDdOLU9WhdN2yrx4VtXFDnFBCAZsg3e+EbrX6QD6sEzQ+ubq3Xzf0PRm5VdmxyqR7Zf1RqWo/Z5vmFOhKTGg1E9jBxoWWKHW2j1ywMDiZ29JqNAztuW114bZ9QGLKhx6uz+uJq3u2KAIPKWmjM5D/JFKzb/n0d39+R3/6xRJmIzflqLDKJ3Dl7HtjtKj7JkXsYGKK/zVivaoo246O4KOVS4vg==",
            "1; BY2PR0301MB0741;\n\t31:cXI9la5BCYwMp5Q0YL7GW3EyiXaBdXBlx8pD8lzstyCWTBWGLIV4X5x4EhvIjIfuVFB5JUgK8JMnR6IbS9iiQy5gytdTztp+o/OnM9Knx0aE5+jC+uqlJD1z2+YC0M3L5AMVXRatBHbFmULu7SGS8nsKR7FFpz9mk+zFaVpjJFNUWxOT+Fdefm7V22g/GLZIzxZUhUhTkq82FBrnHcB0u+CSQaCoi2eexZtO/55UL+Jr3jqUnHk/a9WugyexYpkS+8w0Z3FJlhyIOXkTmgzZuidfXxYruF/4ry4K/FGsRdM=",
            "1; BY2PR0301MB0741;\n\t4:bif3DSgj7pUHM37zJP9tOredGoqGaOc+mvHgzYUURlTRh4AAreXMtozK5u5OMzmopGEr+Iey6fc7FsAVmU70Ec/xUIW0T9rjcZA4P20QNM6YoZWhF0BozP1JHosQ1/d1tkjdJM3z4Zjii9fweNveku2syP27KYecXIh4yPi3dq/UA6GFMEY8kcUIVidx5pGNuJaEjCQJd+ONSbpZ91J18SytcwjOs0TTBJQKByyYDVx0/UAeaLzIdSwbD9mrk5K8r5EYxhsI+e08iC0fWc+s9jxjuvw3fcO6x67Ttc7M1MrZ7hKF2v5S4URAqZUjVeh+YeSTDOPLPbwhWgvLE+pxQ7uhkPgCkb0cyzXHxglGVA82IC2dWC3L+0FzQGuZ4lfc/eF9MGJfbZdkLGoEfC74SERnBA4PEXKCPwy2CkkN+x/A2LCrADAPPoNn8waZVsUzNdeO3ixgUFYZIlYZdKYal9lbFGHlGWNkr2JK7FI7a4Y1c7mQrMckZQGfZ2AMmjM3aTFapD/vXsXBnjOzEc05UnYdyBBQNO37UhDnlkCYTrkpeyNRrcns41kihuIW8e2JoliLM67ngscWw0FrkDEeAUbNAJgV+WJFQAE6nUGN4cWZTNsNSbSdwaQIzAznEjUIKf2OtJ8TS9MyK9HQ82B8Ha17EgkaF1LNs1Hmz8BYo5mzpn8McfIZ8RiKnGQIUZ1Wr1zfu/vJ8gTak90QPVtt5XU/cwcJZvg2P4nq68vsZVESWiD6IXKroykzlJkwYT6T",
            "=?us-ascii?Q?1; BY2PR0301MB0741;\n\t23:QjBrTewFRPf31zYLbWu8mH2F4zML8jHIQI4uOBb?=\n\t=?us-ascii?Q?dsX0xM+ATFVUa/mfkKtNsXBap/RxdwKL18i3xoW8H3z/hgXojZAZirizeU1p?=\n\t=?us-ascii?Q?DjBcNThnl8RrOSA4bjM3Zo+7JW4VFV6Whir3jnXq+VTtaaSziUZTiQgiK5MD?=\n\t=?us-ascii?Q?qOnpZPebQkiVqihCx5IdPcFxBE8efMdT+F5GHlisRKf8PMCaCUTUQpEIU6mm?=\n\t=?us-ascii?Q?M2i46Pv8eHEPVh2UiMgkp7TN/emR/XDsf0dqJmad/flWTHRNPEyvCfEKK7MS?=\n\t=?us-ascii?Q?uulpejpIY2TRmngO9GPkFX2CW4QxQ/zyf25RjdFTX9OXkhpicNDCjwwbeLQr?=\n\t=?us-ascii?Q?ZgdpkxP6AbLYVWZQ8OdnTTy1dIsQ5pvnPcV6nWIxdVxrjn4JlF5FdJ442Rgf?=\n\t=?us-ascii?Q?2lyEH7kyElKDSNS0wGuDjHWQNb2OUnH/t28aaMLbb5OO1YIx6CTnXmeiSrvZ?=\n\t=?us-ascii?Q?0YgVc2zxjgFXbJWefYP6wLjWYRF1WsyhzNYHQYeSvoucYzh7UnsNWFHJQ5Dv?=\n\t=?us-ascii?Q?N4UIQas0hxqZ817Gn/bGB0P2V3a1ETp4rK4+Pa+B8o/my2xBqLgNCla3Axl+?=\n\t=?us-ascii?Q?3m3oM0oH9/LezNQtZYrVRlimz3RuVCcI/JKRN9+wJ1EaJmq+9dd6AZ2QvZx+?=\n\t=?us-ascii?Q?oGHMVhOCb3m1kOvw3NkPfV9G2xjERFbbJKU8Ofr5JCIrh65FVGlTo5RhsI3v?=\n\t=?us-ascii?Q?Q1PioZZ5t3H2+52gnpPS88O+SU2AhXcfOelZmCFE6saVJ2mutNOboLiidwLh?=\n\t=?us-ascii?Q?AypoAmtRPHW/MGpbu+EaLUDr0OQZfzgcHsdcS76K1xK2/AaNL1BC+NU2GnED?=\n\t=?us-ascii?Q?nf8W+T8Aluj0dpqDssQJWieAOKNlLoGzQ/CDRjDq5FLuWzy3WCP9weSalzsQ?=\n\t=?us-ascii?Q?TGgtdFeLxlfFv8FYkOBIUgDngy0DyhL46gHpAwg1r3VKnwWukCDLQ2KWHmw8?=\n\t=?us-ascii?Q?OW7i64eCVAu/N58jIFEsRSE4/3voaCHX8MXGxxL8rwwtGL3P2EfoFti2dobi?=\n\t=?us-ascii?Q?ubMEzravWikv2I2Q8BjnlEfityqaBqTjc9Bji5sxAbO+czgA3rozej3+5A6p?=\n\t=?us-ascii?Q?c4m2w5vIzLAoaK44UsiwKK8K6FTnO3vl/40sVqvMpB328l9VYGeWajv6jC+l?=\n\t=?us-ascii?Q?McDSeyTBWJlgZGVHO2hFRQTD95LYVc6xhY7qz0QBSbs+POCbbhoAX9amM013?=\n\t=?us-ascii?Q?7Hm4zPn1KSRYxsjTZQ5DB8+/8bSih+LjQEng73dLISyrCnyMoo2MiptO4r7q?=\n\t=?us-ascii?Q?9up3aIfbTgFyLIR+6KM0=3D?=",
            "1; BY2PR0301MB0741;\n\t6:u42Vgz+BA+Skzdv23tLGUfz9d9qVb+0HPGBA9352Hmx1oDh7b+neb6NTEuWtUBge6QSxCh9q4F1fFRLAVJWYPP5fcSyY4w4uwt2jXwNlDMvbdVO4tsB9ohsPjeJ3aovo1N6CsDTpqRMvKrtVtAOIfMpu4PEJGuCFgZXcjHp9mkZk/TTfGr9WWuGVh947Xuy06IXCRvMrR/p7gKpbeBAVjAxjq9P6SowQbRugK8ozbg1RL1pTwhPelTL1WH7uz0dPAxWksUhLuwIM3cUWwNRFWZoJBtYeEvQT+P+vf431mhvZJ3bvg05T+rY3eaqb+uxcGS1mdPhVk2WVsx2vlrn0HvoWVpZpff642rrQ1W4fHwNMT6Zt5nLPCOA5/kVuIjOA/vd/H+m1heAMjXnPFd4HxNkrND/lziad5k3P2SusisxEyFfvMcrIb5nJAbp6VDYa;\n\t5:YeGzSR+163QozXLsFzYAPpyN+Q5GTWCMUCv+JG7169pIrtJRp6+vuAdrtylUf5xThcGnkhWMZxVM3Xs7ufjjVPEB/CF5NqrkxXuav1pmCi/P0+qk5bVPH5hnUwsKCBFCHmbZGn++ZewUtgLOT268oZJbIM9nYtTTlUC/5Y8LgUEia4qMYXPiUWerhCWdrmRt;\n\t24:JBPnpo/izW7kNnTgMRYg6tzepbHAGzh0M5VgvuufBulH/ci08+XuMbz2jB4COwoGX7uzK4XYn1SNV1od1oiWIwQiegn53fMTff/jOdceg6k=",
            "1; BY2PR0301MB0741;\n\t7:TESZz2DsI3grQF4Q5XPXdALthg8J30IQa3hpxn6xVzt91Jclnr9ala/YaVsLWeKoe9friwqcAgpqgAk8cseqgn8DzoKbfrqYggrO+qAApaU10/dD5nbR7MzfQ7WvI1lME1KrXeG2IZplEAO/dy0SOu+uGwHXdlpXQUI9Eya+BXFKMILs3zRlJpcRRg2Zsln5nhzl1cd7SuRm9IiLvJmnp2YWPChGJg4dJDteDat8ESPgABiYGzkZRlwq2qy0fmfOQ0JCb5xj8dQfTmAOSWiPnBcbWq8moIMp6yG0e8wsupPcyg499hXasAYldWeK4Xc+y/+ZeF8T4zB3DjfWHnqC3HzudZjztGMYbZ2SK2E4hdeJEEnNfm8Jov701jdBT6l/ErDHspd6LTsCaX0Ucg1j7IV81pySI829sJ6484pTGOXRo5MHwckV3WXsG4H5V10haHfSZDhfM5EyzoQOrpdClA=="
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-MS-Office365-Filtering-Correlation-Id": "4d5af448-bbde-4814-eca3-08d41c2d924e",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0; RULEID:(22001);\n\tSRVR:BY2PR0301MB0741; ",
        "X-Microsoft-Antispam-PRVS": "<BY2PR0301MB0741FBE721B2F9FB91D0FB7790800@BY2PR0301MB0741.namprd03.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6095060)(601004)(2401047)(13017025)(13015025)(13023025)(13024025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123556025)(20161123563025)(20161123565025);\n\tSRVR:BY2PR0301MB0741; BCL:0; PCL:0; RULEID:(400006);\n\tSRVR:BY2PR0301MB0741; ",
        "X-Forefront-PRVS": "014617085B",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "04 Dec 2016 10:09:01.5310\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.158.2]; \n\tHelo=[az84smr01.freescale.net]",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BY2PR0301MB0741",
        "Subject": "[dpdk-dev] [PATCH 01/13] eal: define container_of macro",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Jan Blunck <jblunck@infradead.org>\n\nThis macro is based on Jan Viktorin's original patch but also checks the\ntype of the passed pointer against the type of the member.\n\nSigned-off-by: Jan Viktorin <viktorin@rehivetech.com>\nSigned-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>\n[jblunck@infradead.org: add type checking and __extension__]\nSigned-off-by: Jan Blunck <jblunck@infradead.org>\n---\n lib/librte_eal/common/include/rte_common.h | 20 ++++++++++++++++++++\n 1 file changed, 20 insertions(+)",
    "diff": "diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h\nindex db5ac91..8dda3e2 100644\n--- a/lib/librte_eal/common/include/rte_common.h\n+++ b/lib/librte_eal/common/include/rte_common.h\n@@ -331,6 +331,26 @@ rte_bsf32(uint32_t v)\n #define offsetof(TYPE, MEMBER)  __builtin_offsetof (TYPE, MEMBER)\n #endif\n \n+/**\n+ * Return pointer to the wrapping struct instance.\n+ *\n+ * Example:\n+ *\n+ *  struct wrapper {\n+ *      ...\n+ *      struct child c;\n+ *      ...\n+ *  };\n+ *\n+ *  struct child *x = obtain(...);\n+ *  struct wrapper *w = container_of(x, struct wrapper, c);\n+ */\n+#ifndef container_of\n+#define container_of(ptr, type, member)\t__extension__ ({\t\t\\\n+\t\t\ttypeof(((type *)0)->member) *_ptr = (ptr);\t\\\n+\t\t\t(type *)(((char *)_ptr) - offsetof(type, member)); })\n+#endif\n+\n #define _RTE_STR(x) #x\n /** Take a macro value and get a string version of it */\n #define RTE_STR(x) _RTE_STR(x)\n",
    "prefixes": [
        "dpdk-dev",
        "01/13"
    ]
}