From patchwork Fri Aug 16 00:11:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Danilo Krummrich X-Patchwork-Id: 13765302 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 64C49C52D7F for ; Fri, 16 Aug 2024 00:14:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E6FD08D0025; Thu, 15 Aug 2024 20:14:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E1F518D0002; Thu, 15 Aug 2024 20:14:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA3608D0025; Thu, 15 Aug 2024 20:14:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id A94FF8D0002 for ; Thu, 15 Aug 2024 20:14:19 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 6804FC1879 for ; Fri, 16 Aug 2024 00:14:19 +0000 (UTC) X-FDA: 82456186638.22.2DACD10 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf23.hostedemail.com (Postfix) with ESMTP id B5B9F14000B for ; Fri, 16 Aug 2024 00:14:17 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="WqXor/E+"; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf23.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723767244; a=rsa-sha256; cv=none; b=ZLQ1GcrCeXDWiwLhIqMVzPL6yqZdGMpLRZ24zoNRCEK0qA+LObHF0Dts0KVcSfllvwJk7I ZtWb8nNDA4FeJ82Bfdf3x+3yeb2PiK9uwPZfSNS4XDESUlv0HEIEBgHPDbsbtBJ3BoTaF+ PiY1nxddArpeZ+O6xx/Eu8Km1emgGGI= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="WqXor/E+"; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf23.hostedemail.com: domain of dakr@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=dakr@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723767244; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=kChiuJdmdjKhXxG6h+3P8k4QDHFFSxRJ7dbGjLlKHP0=; b=FfdGQSy8pX2NUYopLoARZ6wskCywrHn5C5KyNeN+WgxZQErWMbmxmrmkCfOYs2LbzHwdcW wKqdDnWM1Ot8ukf3rmUJe1RazQrBpjKj+gkEOfE771bMXF0HbwE/0Ae/jfPg2UP7zFso2B pbuzdkie7Zmihl2dUsDYoiASj5dMj9o= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id E7E236204E; Fri, 16 Aug 2024 00:14:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4286C4AF11; Fri, 16 Aug 2024 00:14:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1723767256; bh=rW6cn/nXJ3kgyxI1gVJEu/DxMLK8/5Ne1MREjzDSSjs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WqXor/E+3OtKDVZYS3a96f+AYYecETGqzOUglOaueHa5Vlw+FyhTOgesTNX8DXyYQ feTxEQGGOMjBQtufSDQVIyINAeEt1RX7pEbrHHnkiO8RiwEe8dbS6mnGdfNWQ7XN2G IUb7quUg4sTLPb4vtiLBghpLWRzbWoQhcmHtNF4CoCn8R9OYFU6PyF7Ik1E2/QCVWF nql9dgriy61q8p4Xf3HT6uLmU+s5Xb+pXLQvqrUnRdrVqOBfcp43OqlXmD78rN08JS Svgry7HwrJQxFFW/sX1tgfhx42X71TYl2tFL5OQE67jkSJdsODEa5ddF8COQrbcfg6 4xK7yVyVUgmsQ== From: Danilo Krummrich To: ojeda@kernel.org, alex.gaynor@gmail.com, wedsonaf@gmail.com, boqun.feng@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.com, aliceryhl@google.com, akpm@linux-foundation.org Cc: daniel.almeida@collabora.com, faith.ekstrand@collabora.com, boris.brezillon@collabora.com, lina@asahilina.net, mcanal@igalia.com, zhiw@nvidia.com, cjia@nvidia.com, jhubbard@nvidia.com, airlied@redhat.com, ajanulgu@redhat.com, lyude@redhat.com, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-mm@kvack.org, Danilo Krummrich Subject: [PATCH v6 21/26] rust: alloc: implement `contains` for `Flags` Date: Fri, 16 Aug 2024 02:11:03 +0200 Message-ID: <20240816001216.26575-22-dakr@kernel.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240816001216.26575-1-dakr@kernel.org> References: <20240816001216.26575-1-dakr@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: B5B9F14000B X-Rspamd-Server: rspam01 X-Stat-Signature: pxkrwp83xidbb6cxbysnys1jroi4ywjx X-HE-Tag: 1723767257-55415 X-HE-Meta: U2FsdGVkX1+zLoE4s5ceYJtwRES5tjiBPboGDoWaKYKmVxaGlXNx1vjRVtuLcA7oKlYsXPp6xrnyyQXXr+3aZCZY3qGnXMQ8hjGUYUt/GAUHEKNqPhG5h5IInt8YLDXGfU9KIBIb82aILoC5YDmEkIVI4DOdWjyaKVgRVHEyuLOK0SyZfxb6sqVk4FtKOTf+1EXMgg2+e4EJVJgjbAUKYTQP9C0q1SPqqud5HIssNUN4cefGynueEPvspXlnBS2KsiwEPg9sXVKZmK+kjAjVW6ht4TB+SMrz5Z4TD37ibWl3eLiAWSVU0DOiccbJc7MWBt9RdqhIuNwKajZP06Juzpx/jk/ef7P63KC277fmS3bSJ36K5AjjiuosT3X9s1U16Cw8g8GTHi0dqIe5qK4eT1PZyaSQL+WcR8tdePzOswM1b9jqzMCQ70JPGB76LDepVb6QXf5v175ikaZLWxAT7h46PhV3nveItjYWfOXSFNzqIEWiGBRLqNiGPEd0CbVO69VKEIzRqAR4IumK8RJMo1FpWTfo1A8cSLwEOiwdvkOLAdVkD4Mddo9CHSy7Xy3u105sjNyjiffYCiDyybTmTDcWsUp40OxVWGI4b7WhrLUu7TkV2ZO7xrU6bE2o885viKp17j013bFo3U5art7lUl+0Xg0D9tliAN9w2UVEr4bC6seimrYKZOZ4JrdcUBiUFPvlYY06SrCgvtZPlB5tw55FlMUSkqrTNaX5cuvzynxODZQoMnEH8sajOaQ9Uv3AQ2FoDvj4w8aR1N6BsggzOus2uypdYUe4fTeJ4KL6m+3JO1Af7fSpa8gIpBS9nEYYus2plzIrZCDZFt9Vp3Kx1X5Kjcenl3Xl78aH2eacJ5dy0WikehEVqvLC2XhQ5a3svdywK+KZyEjBW/kd3XqjYhdeH8pXaAAseVHz0672mr+ptOGJ/+urHbiUW9pJA0wOwf1izgjaWh+am70rE5b rcbuLGTf 4ZGd4Nu5FdtA6KjXCGg+E9vxsMj95+PPoIoYRdY5GQumUrTK6e6iB2wHOSr5NnuTrqEdCValAxtJZN8hXekZa9yVAkJA0TG7j6MeSojJywCqLnjtIL532ruFnfnUSWu7GkE+29nKtWshzQDLLjF4M5mzMAG9DRumwcvjK30fvBVs+Qf7Vq5NeaaRffdMSvgKY4NxDe+RiqiPXuUII6M3KX+luxTDQgPuSt/7Dtes5ith+DDDCqVEJ01+6nfYylddnadqwLFndSGZv6E/VxmehHf8CqlWgCjhe7JMU7qc8lpniRHllIZ+7Fnr0ezIVXgK2ZNkvngS9C7pbkOg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Provide a simple helper function to check whether given flags do contain one or multiple other flags. This is used by a subsequent patch implementing the Cmalloc `Allocator` to check for __GFP_ZERO. Reviewed-by: Alice Ryhl Signed-off-by: Danilo Krummrich Reviewed-by: Benno Lossin --- rust/kernel/alloc.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rust/kernel/alloc.rs b/rust/kernel/alloc.rs index 1feabc817d00..5c66229a7542 100644 --- a/rust/kernel/alloc.rs +++ b/rust/kernel/alloc.rs @@ -34,7 +34,7 @@ /// They can be combined with the operators `|`, `&`, and `!`. /// /// Values can be used from the [`flags`] module. -#[derive(Clone, Copy)] +#[derive(Clone, Copy, PartialEq)] pub struct Flags(u32); impl Flags { @@ -42,6 +42,11 @@ impl Flags { pub(crate) fn as_raw(self) -> u32 { self.0 } + + /// Check whether `flags` is contained in `self`. + pub fn contains(self, flags: Flags) -> bool { + (self & flags) == flags + } } impl core::ops::BitOr for Flags {