Received: by 2002:a05:7412:8521:b0:e2:908c:2ebd with SMTP id t33csp646809rdf; Fri, 3 Nov 2023 10:36:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEdpGwU3KLHs89I3Vn4gfYcGW0o6mLvBl2W0OEI/6V4rhjFhc6fyYxU+mRkpasH43fV1ljU X-Received: by 2002:a05:6a00:244b:b0:68f:dcc1:4bef with SMTP id d11-20020a056a00244b00b0068fdcc14befmr25703700pfj.7.1699032988385; Fri, 03 Nov 2023 10:36:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1699032988; cv=none; d=google.com; s=arc-20160816; b=DbWN+28GSr/LloVyCJA40BnDRPla5v1YflYJVXcBbRHbh12fUJ8HGlbM6Hur8Ps/3i Jmdq+qtPpltfS/FofoDHMyMbrZLoxRiy502WLZ2igZjbX5SqB2wS19ejiKbfR//m7frr 6EupuITRqg1dAwvt+JVlVpMStESjKdPfmjFr9tCndSgyaRU+qW0+ADKYCm0zHz0sTU4S PqXHxTia9LRsdr6Ajws/7XAz485PUCzztGvYWtI7Gtyu4D9nsFndHKpOIWR3M1ubodT2 zu2okl29G0MdOCYh7HANJY1SClSMdYLjxdilxJ5uWgLESsw3k6I2QfEbZmfyYYf2v0Fs JVxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:feedback-id :dkim-signature; bh=lUwsWoeHAo55a1n3qauNOQy9fcQJhbfyl72sCPND1PU=; fh=4zfrJpe64wFUaZp7O+OzwG1XRY1Nht1+DPuHNSqMcWY=; b=Curcl/Txnk8q0cXjOhBMX7JNp7RVyulT2fRf47Z0YiZNu1DEdGsTkxBRunCGPJrnB9 mPabPGgrGSqzvM8jgjK6bJGZ4gG7IaMhv6fNYUptBrUUngbuYlX5Rv2GryCZUtpEF+On 4eRoq9X5YBXTbS/TUke91VaKjoqgtlY47GJICpd0AGipFLSKB4LFYtSkSQ0SJBkk1G99 g1nz/oEYOwplcFnX/3lnsX7HaUltWeRCodicE5fghSTQaiQsQNEzHj6lkxwQLwy2W3QL krSqnW34tMkB14gC82xELtZFqAZ+sKDvl1ERZSyhoh+J07ALn4BxG2Swfn+O4sYY7vta XNNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=PT1fgG7Y; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id fc41-20020a056a002e2900b006c34028e37dsi1896039pfb.219.2023.11.03.10.36.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Nov 2023 10:36:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=PT1fgG7Y; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id B6C9A809716B; Fri, 3 Nov 2023 10:35:57 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229730AbjKCRfp (ORCPT + 99 others); Fri, 3 Nov 2023 13:35:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52540 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229729AbjKCRfo (ORCPT ); Fri, 3 Nov 2023 13:35:44 -0400 Received: from mail-oi1-x22f.google.com (mail-oi1-x22f.google.com [IPv6:2607:f8b0:4864:20::22f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1824136; Fri, 3 Nov 2023 10:35:41 -0700 (PDT) Received: by mail-oi1-x22f.google.com with SMTP id 5614622812f47-3b3f55e1bbbso1440107b6e.2; Fri, 03 Nov 2023 10:35:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699032940; x=1699637740; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:feedback-id:from:to:cc:subject:date :message-id:reply-to; bh=lUwsWoeHAo55a1n3qauNOQy9fcQJhbfyl72sCPND1PU=; b=PT1fgG7YsNpp9usDusCO4dgMc7yOJWHkU+MLzmWpRPV0alGf+j7x5yfwFOYdKWnPU+ DntaC8gWL8JOnPfYDf1x/Y1vYl6HBza11w28Aga+/BNgD53yiYvpfByYhpEsjrf9k5dM j37nTCKEdFEyGmjPoCJF5c2bBKIA6WAgBmqA5nNT8bo7VAD6Ur5KI0sFe+PyW7S/zqng 3qBmXTSY55wo+rEbp/XjwC25oJTF8wTKRV9caJmwDYVY/kVop4/qqHpPpeJ99qp3WJw4 5KPNKCn4dXCdsdB4nw/LNTFyK8oZJT5SNi7mYZ/KnuWzq3dLNFvg6cfHb3wWw4l6cbYY UE3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699032940; x=1699637740; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:feedback-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lUwsWoeHAo55a1n3qauNOQy9fcQJhbfyl72sCPND1PU=; b=QOKubI8d6FjSsLfPIDclt1e23PWquEqu4xVdOiObE5ah3fTHb5c6mu8ZYG4Tn5j+RZ XpQ/QphjgkNhWD+6WbilmnZJiDc3tbxe4sWPAu65FMCDV620QZTdAYVNpxNY3LlYsgZR f+iposx9SomGQjNchUDJqfAPwHXkGSk421+pb1hSDXZVvvWk4PJWPJ0ooMmiS+m2dWHA Q7HmOY0T0SEpk91mcCcpPRe5FCPZoFlYdtdey0DGR9F/BjRg0H8MYtspAlKeRKjRn7ej aTdC8ekcJvIEWOb2eYPAVHHDUmAsio+2PRd67rtCtBlt4OMvesNo59/o+eYcqSLwkWTm LIww== X-Gm-Message-State: AOJu0YxelNrkbqSKRBxXvHLvOBYk/x1BW+8gTp6lrXDxtv8pEfFb7Fzh zfDE810YIT0GGlLmPuLVOPw= X-Received: by 2002:a05:6808:68a:b0:3a8:ccf0:103f with SMTP id k10-20020a056808068a00b003a8ccf0103fmr21522378oig.3.1699032940475; Fri, 03 Nov 2023 10:35:40 -0700 (PDT) Received: from auth1-smtp.messagingengine.com (auth1-smtp.messagingengine.com. [66.111.4.227]) by smtp.gmail.com with ESMTPSA id 6-20020a05620a04c600b007749dc7881dsm908113qks.48.2023.11.03.10.35.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Nov 2023 10:35:40 -0700 (PDT) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailauth.nyi.internal (Postfix) with ESMTP id 4EED127C005B; Fri, 3 Nov 2023 13:35:39 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Fri, 03 Nov 2023 13:35:39 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedruddtkedguddtudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpeffhffvvefukfhfgggtuggjsehttdertddttddvnecuhfhrohhmpeeuohhq uhhnucfhvghnghcuoegsohhquhhnrdhfvghnghesghhmrghilhdrtghomheqnecuggftrf grthhtvghrnhephedugfduffffteeutddvheeuveelvdfhleelieevtdeguefhgeeuveei udffiedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epsghoqhhunhdomhgvshhmthhprghuthhhphgvrhhsohhnrghlihhthidqieelvdeghedt ieegqddujeejkeehheehvddqsghoqhhunhdrfhgvnhhgpeepghhmrghilhdrtghomhesfh higihmvgdrnhgrmhgv X-ME-Proxy: Feedback-ID: iad51458e:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 3 Nov 2023 13:35:37 -0400 (EDT) Date: Fri, 3 Nov 2023 10:34:27 -0700 From: Boqun Feng To: Benno Lossin Cc: Alice Ryhl , Greg Kroah-Hartman , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Christian Brauner , Carlos Llamas , Suren Baghdasaryan , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Gary Guo , =?iso-8859-1?Q?Bj=F6rn?= Roy Baron , Andreas Hindborg , Matt Gilbride , Jeffrey Vander Stoep , Matthew Maurer Subject: Re: [PATCH RFC 02/20] rust_binder: add binderfs support to Rust binder Message-ID: References: <20231101-rust-binder-v1-0-08ba9197f637@google.com> <20231101-rust-binder-v1-2-08ba9197f637@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Fri, 03 Nov 2023 10:35:58 -0700 (PDT) On Fri, Nov 03, 2023 at 04:30:54PM +0000, Benno Lossin wrote: > On 01.11.23 19:01, Alice Ryhl wrote: > > +/// There is one context per binder file (/dev/binder, /dev/hwbinder, etc) > > +#[pin_data] > > +pub(crate) struct Context { > > + #[pin] > > + manager: Mutex, > > + pub(crate) name: CString, > > + #[pin] > > + links: ListLinks, > > +} > > + > > +kernel::list::impl_has_list_links! { > > + impl HasListLinks<0> for Context { self.links } > > +} > > +kernel::list::impl_list_arc_safe! { > > + impl ListArcSafe<0> for Context { untracked; } > > +} > > +kernel::list::impl_list_item! { > > + impl ListItem<0> for Context { > > + using ListLinks; > > + } > > +} > > I think at some point it would be worth introducing a derive macro that > does this for us. So for example: Agreed. > > #[pin_data] > #[derive(HasListLinks)] > pub(crate) struct Context { > #[pin] > manager: Mutex, > pub(crate) name: CString, > #[pin] > #[links] > links: ListLinks, > } > > And if you need multiple links you could do: > > #[pin_data] > #[derive(HasListLinks)] > struct Foo { > #[links = 0] > a_list: ListLinks, we will need more discussion on how the derive syntax would look like, but I'd expect we can reference the field with names instead of numbers if we use derive macros. In other words type numbering to distinguish different fields should be an implementation detail. Regards, Boqun > #[links = 1] > b_list: ListLinks, > } > > Same for `ListItem` and `HasWork`. I have not yet taken a look at your > linked list implementation, so I don't know if this is possible (since > `ListItem` seems to have multiple "backends"). > > I think this improvement can wait though, just wanted to mention it. > > -- > Cheers, > Benno >