Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2229194/?format=api
{ "id": 2229194, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2229194/?format=api", "web_url": "http://patchwork.ozlabs.org/project/rtc-linux/patch/20260427214127.406067-2-ynorov@nvidia.com/", "project": { "id": 9, "url": "http://patchwork.ozlabs.org/api/1.1/projects/9/?format=api", "name": "Linux RTC development", "link_name": "rtc-linux", "list_id": "linux-rtc.vger.kernel.org", "list_email": "linux-rtc@vger.kernel.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260427214127.406067-2-ynorov@nvidia.com>", "date": "2026-04-27T21:41:18", "name": "[v2,1/9] bitfield: add FIELD_GET_SIGNED()", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "2bdfe98d05486f1def27cd568a45d656e4d748f6", "submitter": { "id": 92516, "url": "http://patchwork.ozlabs.org/api/1.1/people/92516/?format=api", "name": "Yury Norov", "email": "ynorov@nvidia.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/rtc-linux/patch/20260427214127.406067-2-ynorov@nvidia.com/mbox/", "series": [ { "id": 501729, "url": "http://patchwork.ozlabs.org/api/1.1/series/501729/?format=api", "web_url": "http://patchwork.ozlabs.org/project/rtc-linux/list/?series=501729", "date": "2026-04-27T21:41:17", "name": "bitfield: add FIELD_GET_SIGNED()", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/501729/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2229194/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2229194/checks/", "tags": {}, "headers": { "Return-Path": "\n <linux-rtc+bounces-6433-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-rtc@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=ey1tjxvj;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-rtc+bounces-6433-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=\"ey1tjxvj\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.61.1", "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com", "smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=nvidia.com", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nvidia.com;" ], "Received": [ "from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g4HB325MWz1xrS\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 07:43:23 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id E7BB130AB45A\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 27 Apr 2026 21:41:54 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id D619138AC8A;\n\tMon, 27 Apr 2026 21:41:53 +0000 (UTC)", "from DM1PR04CU001.outbound.protection.outlook.com\n (mail-centralusazon11010001.outbound.protection.outlook.com [52.101.61.1])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F7BF37C939;\n\tMon, 27 Apr 2026 21:41:52 +0000 (UTC)", "from CY8PR12MB8300.namprd12.prod.outlook.com (2603:10b6:930:7d::16)\n by LV9PR12MB9829.namprd12.prod.outlook.com (2603:10b6:408:2eb::9) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.16; Mon, 27 Apr\n 2026 21:41:46 +0000", "from CY8PR12MB8300.namprd12.prod.outlook.com\n ([fe80::ce75:8187:3ac3:c5de]) by CY8PR12MB8300.namprd12.prod.outlook.com\n ([fe80::ce75:8187:3ac3:c5de%3]) with mapi id 15.20.9870.013; Mon, 27 Apr 2026\n 21:41:45 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777326113; cv=fail;\n b=KeHsh3Qcc5B+3UvmwySorqtXfnwvihaUCVAT3tovM6fU2gTKGm6OHk1H773MrPdHLSbk2R9gyrTi7Xd+/+HqlDaKyq4SpWCKwCHPpXhUX2UByVxlPU0ho4FreE2GT5Gem2jlame9sY7f0cuu1NPDmEmzgRn0wPbAqQkhlmVbDhA=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=QeJjnRGfETn4MvVW57obZD25CK1dZPGpAyFvDQFTqGe+r3/5RBoewBhlUqJ5cA0l4MAaquUITtJf/gY1smbXbo+HLlfnidC+H88j9irv+cCPTC+wK2U7f2TH9NUsgRo2wTZ3FPzVS5FCvsKNxSompuJjUqkiFYuWRiHGpNUOK1xIpH4a554UVoOmT37EIBsLrQ6TznN8EhlLXPFTDOuLF+lb3VR5WNgiR2QN8lLBLsArRpGsSAawqBXBZrzf/101Sg/EXthvdXSVi7EkIy4oHVfyETrZwOj8xSnNOK949FSh25MAg/lKyaZBd4W88klxODyrMhwtF5XSscv7djWO0A==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777326113; c=relaxed/simple;\n\tbh=djiLW62A+9+XHsg6ekXJjvdMvy7fp7CTHANd+skRqhk=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=WrfasYnKoYGU3wI3iF7hbb26mQQvLOJn+LVEv8l4JTU+KNer61iB4KwD75oNbj6z0B9Y83ydmCpZrMTLuiumHzhv/O214LmxYffpwk3fZ9HogsaXr+z5Y868jd4RWQAwnsOQWhsVQp/dtd2seCCiGniv9u3oIPr1YNqyrU48chA=", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=PF86IjnLk7u6qiOLwmi5ggjeNCS4nXYc5WQ5CMAQ2Jk=;\n b=luVd6ZCcTVJ9+wdQQQuFgZxUa4MAOWJc206GATMOBc76qE7rGuj7sMR9YFvtA6DHY3S7qwPgI8qWl8eHSVr/ZT5cDEvElw43OXe/W6bZRtOhGx0WDacGHkfee14ddYuo507HS1HSQG8WuO4Lfy9/uE6HG3ZLJgdxGMrS8udATkG9Y+ZUIQdJN0x1FMJIXODMyM00YPrK9x28XLGWsaCDMckaC2kTM9Vjg1cYEt7qUH8POfeDhMNO3nmgeNwduxJvOKyuB4kNuo4wDr/VG4lVYxmKMJWxsZAcqYb3aIXGULOFx0O3tk6BrxXEfdivemiBbON9s3p1cWULo7gmHsA3Fw==" ], "ARC-Authentication-Results": [ "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n spf=fail smtp.mailfrom=nvidia.com;\n dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=ey1tjxvj; arc=fail smtp.client-ip=52.101.61.1", "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;\n dkim=pass header.d=nvidia.com; arc=none" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=PF86IjnLk7u6qiOLwmi5ggjeNCS4nXYc5WQ5CMAQ2Jk=;\n b=ey1tjxvjHWQiS+vTWg0tf1e643NLldxgoDUZNxjP71/sC0tBrq5s/g6VxZft2qTaGD2LU2Wv3JSLunrSyCp/l1wqD/fPsnp/0EzTtInf0WQmdxBh9+9HgIj8eBV63jFDQ7LS+LlSMuH3GPx8xr/vOxEKMUzHaSoCYDN5QdptCWtkWkj7PLMYVhFzn7THAIfgrbhzPq2pCF8DTa3A6G/9ADNGNRaSzbbqpK4dzMzFmc85PAARvh79A0815KNhGFWvYmfFaXGRyBjwey0Fcs1SUfwSv3BFNWk+6c7Zpn1BUf0X3y5ur+Rh4Wbwjvw3XLQq2JZFlmHCWN4erStZrQthTw==", "From": "Yury Norov <ynorov@nvidia.com>", "To": "Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,\n Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,\n \"H. Peter Anvin\" <hpa@zytor.com>, Andy Lutomirski <luto@kernel.org>,\n Peter Zijlstra <peterz@infradead.org>, Jonathan Cameron <jic23@kernel.org>,\n David Lechner <dlechner@baylibre.com>,\n Johannes Berg <johannes@sipsolutions.net>,\n David Laight <david.laight.linux@gmail.com>,\n =?utf-8?q?Nuno_S=C3=A1?= <nuno.sa@analog.com>,\n Andy Shevchenko <andy@kernel.org>, Ping-Ke Shih <pkshih@realtek.com>,\n Richard Cochran <richardcochran@gmail.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>, \"David S. Miller\" <davem@davemloft.net>,\n Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,\n Paolo Abeni <pabeni@redhat.com>,\n Alexandre Belloni <alexandre.belloni@bootlin.com>,\n Yury Norov <yury.norov@gmail.com>,\n Rasmus Villemoes <linux@rasmusvillemoes.dk>,\n Hans de Goede <hansg@kernel.org>, Linus Walleij <linusw@kernel.org>,\n Sakari Ailus <sakari.ailus@linux.intel.com>,\n Salah Triki <salah.triki@gmail.com>, Achim Gratz <Achim.Gratz@Stromeko.DE>,\n Ben Collins <bcollins@watter.com>, x86@kernel.org,\n linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org,\n linux-wireless@vger.kernel.org, netdev@vger.kernel.org,\n linux-rtc@vger.kernel.org", "Cc": "Yury Norov <ynorov@nvidia.com>", "Subject": "[PATCH v2 1/9] bitfield: add FIELD_GET_SIGNED()", "Date": "Mon, 27 Apr 2026 17:41:18 -0400", "Message-ID": "<20260427214127.406067-2-ynorov@nvidia.com>", "X-Mailer": "git-send-email 2.51.0", "In-Reply-To": "<20260427214127.406067-1-ynorov@nvidia.com>", "References": "<20260427214127.406067-1-ynorov@nvidia.com>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "BN9PR03CA0117.namprd03.prod.outlook.com\n (2603:10b6:408:fd::32) To DS7PR12MB8290.namprd12.prod.outlook.com\n (2603:10b6:8:d8::15)", "Precedence": "bulk", "X-Mailing-List": "linux-rtc@vger.kernel.org", "List-Id": "<linux-rtc.vger.kernel.org>", "List-Subscribe": "<mailto:linux-rtc+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-rtc+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "CY8PR12MB8300:EE_|LV9PR12MB9829:EE_", "X-MS-Office365-Filtering-Correlation-Id": "b6dc1d92-cfdd-483a-2fd0-08dea4a5c736", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|10070799003|376014|7416014|1800799024|366016|921020|22082099003|18002099003|56012099003;", "X-Microsoft-Antispam-Message-Info": "\n\th77wBTyfXpAko00N2CmGlWRdJ9kLR8x1mHhEKT9aGsbGGG3EQX240nAGxcCKHJmyd43qBxBTZ/+9/prS/3X1B/0pSlIDizzJAxkjZnYEUKNXEuJGK3irPXCHekI3Mz3sTyinNFmJj5W7hfUjKeWiKdIVpoMQyKW/LJIBMMeFCqRt0vbRjKQnIopHq8VBejRRJ08azrhuKJbXkJrr7rrdsK0HZ3lA3AKOHUyNV9VLzU2YmGmWZJUsF53GtWHIgVWya8bMTiF4iHuh/0CkqT6fHUq8y9wNfxStH6ZJc6suU3seFWF0zQTbfSa09XFsTyAWKskaiB9abLR4Aqxa/x+uv8PZDuYoefRcBmqs3fEfCH7jKRSsAfNbj6xRiRe64N634JiNgQPwGGvy7nlUjZP5Bnex+i+tOM3fGBbCtsuv8lIayuBfJapfYrYPHxaH1bVqXObbGgdeyqvQmsnn/Xuy6Lijb9fUgOSEdn81Ajpn79QilwYu7d6Vfabj7kohTZZkHu035yl5nngQuxoihkDQulCz5zvy59wTQ5hGPeTGRC1EzdDLdAmn/BgX7bp6DbC7GCtEoOjAWvRqCjdXAnt6ZQTZNqfb4hcc42lxjhlMhx+Y6Jq9HX25Vgm9BAQJMOKq7wIOSABGyHp7EzXAWV9HmL1ag4Ge54B2IApVMz/BzgCw3gxcyfalNCbsCvDHTlDR9/XhJzxgar3n7o/XybRahB4yp2zdhTJXS6tINNzm9DwyL36fukagalCRv19j+dJswgFKV14BBG7E8Fugpi+8wQ==", "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR12MB8300.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(1800799024)(366016)(921020)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n mVALzdwk70NZrxvyQWrvj45+MRNCVUc7DjMjFjnQtyKu6n4qIGQz32j/gIe7woVt++3j8FRiUt98ivtAQOHA7wAiKTjl1rPSZi0rfn4cdqqBxI+/6jDeRGlDUZ5Od7Hp9MCVJt4FCzRpzJnM5gFuq2I/guMMkOV9GguFHdJbhZNUPQMFrH+liNS9mGGsm2qTCJEgz0tjG/eq+/cjhp29c/819ULS7V7ikYUW4N5j4aMe68ho4U5ALmebSwTvPvhtOglubRI2xXDEUHDdZHPkuy3IOSasRPS5KflQfAgq2/CKZ4BUWfhCxCz0DMBaLCpooUgwv+BoNDIjaZxhgCr8UoSIGQe9zPF7A8DL5pj6wj2zadgbsHDiPHjZrrKcKS3XuJNtZz6SrmXwYWfUL6QDSW4BlYTY0rOD2zB5GFvP7HqJ9tHv3elIiVmfv4Nq92qWZf1UwCGt4NMf7M05h9NhaqePlf8a+e0hTnlB864bICpSc7Qn0OalgmErrvAKQU14e7qo99V3kfEjWl+5nk8EZAMU7kzhi5rJ/Sg6L59zDEfljhdo9NXJX+GLVW9jgufLQTu+/XCa/hGQD1T+y2ZeaFUZrMfn7mRUYVOl5t0FgWY+FRhwMP74MjJgngmKiEL5kyoU4HnJdsMuEgocR6DjGT3UoodmoHRmBSft+1CBmMI5oMsGnPqq5oj10dPZpmVlsVux/8lffFFh/sPa4h8XFf4dEbEKs6d9x45vnRLk8EMxsO9LOfI15Udg3kjTg73wr5YSTWnCRyQaF45IpacpJa6DDWM6qen+ygfccCiBIOJ06Kxe5HWogSumltTk22ZxtkzzCSPsrsbaehzkeyneZ+d9juJY6mK6EB3zhagLoW62kbfgh+tY2MiHOA/nyrof2jO7CxH/6KxdtwkwGWFbgmblPMvAGQnUnMQl8XWzdcH6jXTo1E1NYfr5JVP3Xn0LJy8b0DX+cYGOmp0YmCiTt+QwvDVUS69g40+lBtkc5wvdJN4XiKIRQ73OGulasm3Xt/skMSx6jskG3s6/9W+gRQLP9Iz6xHU1uvpyCMhRZDttgJcCPurlYfdnZG+yT1MTwPgI2FbYDlyB3T4iGYQdINV4kylUXFkz9hqCJg11ouVBAhP4cjQinYxEi5C+fxBDZUbzBGoy6r9mp69Dkjo8HEkZXKZVt90w8YntAEtcvoBeVkST5Zl0Awv6zkdXBeyASc4Pu9bFqaV7LUnpg22bhxVLzoI3VyyzmQtS1obkJQ4e1sHiTFfVgUVKTQEhGmYdooHj/x6zDXru6W7Q42ETcb0+CtD9Xcy/Ys010Nh0/V2fnRptOuHN2LLfhdoaFEnNo1eOB9Hsw6UyolZFp2/WtSYdNgoAh9ZY+kU8V34GiQn5gGa9EcRTlnSGDuXVSPqtvJ1qak7Olp5OrUwu1LBzNjexyNDyttucwDrRznGFs/EWBc95XRMI6E0KY2kQRbYqMsdXTUeanX/+tcPYkw79Xj2RF+HW2yonfL0CTerNeBNTu/jL7dWLbRBq0lxU5Sr4hsNhjGXnyUapjxNlZSXq/C9zZwatzTLzNGSKSEAIkPSBFoECpNDkt+oJo3lod5LaprMncJxaV1OEYv2SyYIba6AD7stCj8Fume9JfMHeFNtHbjOadw/4WatiuGwp4i8lRDmreW3O/gJdz1uf3NEdf4CJL9S/T0wcHQbJ8bYk+6IMOvDdIQVqYdA13qhiCsCN9UObY/eSNISgs7mX8+LfCyEL11ROUzLKVxv24yKM/jS6FuMbVVwjrbhsjzZ1m7Gu", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n b6dc1d92-cfdd-483a-2fd0-08dea4a5c736", "X-MS-Exchange-CrossTenant-AuthSource": "DS7PR12MB8290.namprd12.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Apr 2026 21:41:45.9215\n (UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a", "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED", "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n HtginAblZ4qsYaPt8R0D+8pQWviedceo0YGFcI7ONgObNlmdsofNqYU5zj8QU+2MT11J89x8hZedpxwtrv8IDQ==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "LV9PR12MB9829" }, "content": "The bitfields are designed in assumption that fields contain unsigned\ninteger values, thus extracting the values from the field implies\nzero-extending.\n\nSome drivers need to sign-extend their fields, and currently do it like:\n\n\tdc_re += sign_extend32(FIELD_GET(0xfff000, tmp), 11);\n\tdc_im += sign_extend32(FIELD_GET(0xfff, tmp), 11);\n\nIt's error-prone because it relies on user to provide the correct\nindex of the most significant bit and proper 32 vs 64 function flavor.\n\nThus, introduce a FIELD_GET_SIGNED(). With the new API, the above\nsnippet turns into the more convenient:\n\n\tdc_re += FIELD_GET_SIGNED(0xfff000, tmp);\n\tdc_im += FIELD_GET_SIGNED(0xfff, tmp);\n\nIt compiles (on x86_64) into just a couple instructions: shl and sar.\nWhen the mask includes MSB, the '<< __builtin_clzll(mask)' part becomes\na NOP, and the compiler only emits a single sar:\n\n long long foo(long long reg)\n {\n 10: f3 0f 1e fa endbr64\n return FIELD_GET_SIGNED(GENMASK_ULL(63, 60), reg);\n 14: 48 89 f8 mov %rdi,%rax\n 17: 48 c1 f8 3c sar $0x3c,%rax\n }\n\n32-bit code generation is equally well. On arm32:\n\n long long foo(long long reg)\n {\n return FIELD_GET_SIGNED(0x00f00000ULL, reg);\n }\n\ngenerates:\n\n foo(long long):\n lsls r1, r0, #8\n asrs r0, r1, #28\n asrs r1, r1, #31\n bx lr\n\nSigned-off-by: Yury Norov <ynorov@nvidia.com>\n---\n include/linux/bitfield.h | 16 ++++++++++++++++\n 1 file changed, 16 insertions(+)", "diff": "diff --git a/include/linux/bitfield.h b/include/linux/bitfield.h\nindex 54aeeef1f0ec..cd44013281c7 100644\n--- a/include/linux/bitfield.h\n+++ b/include/linux/bitfield.h\n@@ -178,6 +178,22 @@\n \t\t__FIELD_GET(_mask, _reg, \"FIELD_GET: \");\t\t\\\n \t})\n \n+/**\n+ * FIELD_GET_SIGNED() - extract a signed bitfield element\n+ * @mask: shifted mask defining the field's length and position\n+ * @reg: value of entire bitfield\n+ *\n+ * Returns the sign-extended field specified by @_mask from the\n+ * bitfield passed in as @_reg by masking and shifting it down.\n+ */\n+#define FIELD_GET_SIGNED(mask, reg)\t\t\t\t\t\\\n+\t({\t\t\t\t\t\t\t\t\\\n+\t\t__BF_FIELD_CHECK(mask, reg, 0U, \"FIELD_GET_SIGNED: \");\t\\\n+\t\t ((__signed_scalar_typeof(mask))\t\t\t\\\n+\t\t (((long long)(reg) << __builtin_clzll(mask)) >>\t\\\n+\t\t (__builtin_clzll(mask) + __builtin_ctzll(mask))));\t\\\n+\t})\n+\n /**\n * FIELD_MODIFY() - modify a bitfield element\n * @_mask: shifted mask defining the field's length and position\n", "prefixes": [ "v2", "1/9" ] }