From patchwork Sun Feb 2 13:05:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Asahi Lina X-Patchwork-Id: 13956521 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 909E3C02193 for ; Sun, 2 Feb 2025 13:06:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DF9B86B008A; Sun, 2 Feb 2025 08:06:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DD386280002; Sun, 2 Feb 2025 08:06:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C6FBA280001; Sun, 2 Feb 2025 08:06:50 -0500 (EST) 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 A96FA6B008A for ; Sun, 2 Feb 2025 08:06:50 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 5DCAF4470F for ; Sun, 2 Feb 2025 13:06:50 +0000 (UTC) X-FDA: 83075029380.25.2A0C6BB Received: from mail.marcansoft.com (marcansoft.com [212.63.210.85]) by imf02.hostedemail.com (Postfix) with ESMTP id 17A6F8001B for ; Sun, 2 Feb 2025 13:06:47 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=asahilina.net header.s=default header.b=T2h4y9OU; dmarc=pass (policy=quarantine) header.from=asahilina.net; spf=pass (imf02.hostedemail.com: domain of lina@asahilina.net designates 212.63.210.85 as permitted sender) smtp.mailfrom=lina@asahilina.net ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738501608; a=rsa-sha256; cv=none; b=giyPjTvIK1mII3sfGUBGNNRK7nvqX85/Si/t8CKXQEy7hnbvOxHE8MOXxaZFsaooEnnCKu XwFOxcZjt1fQsJVwgC4RXuQ89ItW4120Vcm3Gq+kxsIxIDNW6HnnpbdC6/y46h1WdjN9uU kLSeH5YviW/0te3jJuGFXhWlaKaqfOQ= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=asahilina.net header.s=default header.b=T2h4y9OU; dmarc=pass (policy=quarantine) header.from=asahilina.net; spf=pass (imf02.hostedemail.com: domain of lina@asahilina.net designates 212.63.210.85 as permitted sender) smtp.mailfrom=lina@asahilina.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738501608; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=TzZu7kPlD4VbHsvB6TLjofd8ClooLrsfXC1n8Bidkrk=; b=xCTHgLtgbLsqr2EPN3R2GctEzXXzg4oaTc2luS1sd/iRhQIoZIxXh4btGfF4hOONtHAMUh njKq3WIdM1fWnDzGuPZRtb5mMH8nyXEcGIlWiDlyHMAoU9/768SLhtvUNZIbASHk5GQ+mJ 5aSiDCe72Ta6b+M64sdwepYErsg2PGs= Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: sendonly@marcansoft.com) by mail.marcansoft.com (Postfix) with ESMTPSA id 8453742769; Sun, 2 Feb 2025 13:06:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=asahilina.net; s=default; t=1738501605; bh=0hDjuQHDG3NyTLjzY3YRf98j+prtIAJUg+wcnreGVnU=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=T2h4y9OUV23hl0E27AGlIKbSuOI9FSr/Qfou1x4vaF+kpMEWyoB7lE2oXSt2ZC4W/ Vcaf5Jwqm3JTOsI85ryMwJoWD1yS1mJqti15Dezaeahhg22IbqOwd+iujr4UKk7aug H0lVZemGdZg71svn3NaFnIvjah5m2azg1qcWNwNdaXJ218VVIrliNcN6rfxeqOp7Tb iZ+YGqU0Kkrc1su5UsafpzWEtc9JWSeHMoheGQTvGzVkSc/LQ9cP/wuQkcoS6bp/2g XCjB9AVWWdiP50DvfftpFU+nBZXXL22EjJ36ptc8mlCu81Dg3K0r/izBMeiNI5rVMi 8ehO67zamuuvQ== From: Asahi Lina Date: Sun, 02 Feb 2025 22:05:46 +0900 Subject: [PATCH 4/6] rust: addr: Add a module to declare core address types MIME-Version: 1.0 Message-Id: <20250202-rust-page-v1-4-e3170d7fe55e@asahilina.net> References: <20250202-rust-page-v1-0-e3170d7fe55e@asahilina.net> In-Reply-To: <20250202-rust-page-v1-0-e3170d7fe55e@asahilina.net> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross Cc: Jann Horn , Matthew Wilcox , Paolo Bonzini , Danilo Krummrich , Wedson Almeida Filho , Valentin Obst , Andrew Morton , linux-mm@kvack.org, airlied@redhat.com, Abdiel Janulgue , rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, Asahi Lina X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1738501594; l=1443; i=lina@asahilina.net; s=20240902; h=from:subject:message-id; bh=0hDjuQHDG3NyTLjzY3YRf98j+prtIAJUg+wcnreGVnU=; b=StouHNNdGl6LXXun36/Ktt4NhZHoitHEaj40BWBfZvKzmLuZ2Y4LDldrYuJmpt3jJeuKqqIwg B+kPBJA/qaKDiEavoI6E1b0JF0yulanuwYHgzUwBeL6uQl0npRPVkny X-Developer-Key: i=lina@asahilina.net; a=ed25519; pk=tpv7cWfUnHNw5jwf6h4t0gGgglt3/xcwlfs0+A/uUu8= X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 17A6F8001B X-Stat-Signature: 7m91xieafq45qr1yaz4iu5sqwimsq61y X-HE-Tag: 1738501607-146530 X-HE-Meta: U2FsdGVkX1913UQY5iv9gUboRPW39cXWmm3/s6VOq2Dn8TlAJHgdWFNvgA1kyMFFYYDWMaoP8rnbe25mxwMLmff/tHTmwhGQOyKxjebw2AmMDfuU10z6Ynqp6+1szQNkp4ipVjHwuk4r4jyzViiSGS5CfWzVDG3a0IOB8P2lN1undGIF3u2dbqvwqeEw/7CkR75GajbaPIjYHwRO+m6lVwjnriniVZt1PrBByNm12VebTuVVmCPEw51zOd8i6uIEbSsuvR2cwoNGmQ06aEUbqZy6eGrakrkRsEPwX430EqqwapSXBRM4er7EpOg8WqoVoto2/P/1wtRv/raSDrppA5eNXeWueS2ROBmgCqqbdVkJ2P5gsQau7iXWTtjvqAUd+dK+vOSDkJEssaENMqCafzr3kCySdbv3rKRog7zxej8S0loKXE4gub5x0NwuepksPdlmSzgaeNYIG9dnHx5aOQcxWg9WXoEAvNclkyWhia5WppUqicU0LayIxHa9IPoqsI+KlS4d10KG9DpoCD70t8lzVjK3baL7ZBo9belmI5N//CCy5qHGW+SCJhhk9sAU/OELtx9FQkD/316ZnqrypY8WbirboiVJyjm72dRJukqEnwzuhBKStI2cAWJdvjIxJfEUwL4e7MoAXLUupOUFrx/wpJ2HPc1bPmcy3P6KkkCOsDGLYVfPi9iP1sfMWo9BzUdaNSjSd9Uqr6b0+D0ouPk0gkK7bzsO47425AGM9B+1G1Id0SjiPGCzR2c1R4+XcGxhWumPhpAzHRd/0sLkGle111JqfOBZGbdZxP4Bah3AV2akyyEWEApM2Vk4rNZyJb/RgVK3CZyi8Uiawxl2gS+uZg/muwxzmv89tQ1ipq1Q9lcCEP73RqPDwCxuc3wkaYHvnMWoNoivnFOq602fdD1WtHkHtXG8dKJSHOwcFK/bvZXRQ+WcpDAKRyHEuH48YX/Md5czEVE6eFSMVH+ 14pICV5c ukNEL0mOgjkhvaJMFgL2pHHZ1M7f7GHX1yJaPSg8LpRpNZEXRdMTDhGSYda1MPIsf3KU8yVIveDwD5dVRJK3dMUwFFs0CSTFmL3/HVxpD5Gfeps1usl0h7yzPRJWlGcTj6wRTq5dHOpY7fV9+KhJGu62MgekidvT9y7dHD0o4WweXYeENP2zH4NXGyadStLN+eOGrGrh4iA6wwlFOlTamGtAqlvCcfwlx6lI6j4tCsX4a1vVT1GNQ6rBskuT8xy4lDoMsBdK+sEKc4pcVXll9AJ9wNjLuugEIgixpCdlGhz4NhmXv/x4bxPQVwmjSnWRkOS0nSTMW70/MUxhIh1vhbg0Bkl7XcO1F3Ox/SqWTl/VdTJKnuiumMroDjACEOFRmZvMnqn5EEtwgFO5uMrWe338afjQIx4z4e5BX2PtJHpjB+po= X-Bogosity: Unsure, tests=bogofilter, spamicity=0.500000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Encapsulates the core physical/DMA address types, so they can be used by Rust abstractions. Signed-off-by: Asahi Lina Reviewed-by: Alice Ryhl --- rust/kernel/addr.rs | 15 +++++++++++++++ rust/kernel/lib.rs | 1 + 2 files changed, 16 insertions(+) diff --git a/rust/kernel/addr.rs b/rust/kernel/addr.rs new file mode 100644 index 0000000000000000000000000000000000000000..06aff10a0332355597060c5518d7fd6e114cf630 --- /dev/null +++ b/rust/kernel/addr.rs @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-2.0 + +//! Kernel core address types. + +use bindings; +use core::ffi; + +/// A physical memory address (which may be wider than the CPU pointer size) +pub type PhysicalAddr = bindings::phys_addr_t; +/// A DMA memory address (which may be narrower than `PhysicalAddr` on some systems) +pub type DmaAddr = bindings::dma_addr_t; +/// A physical resource size, typically the same width as `PhysicalAddr` +pub type ResourceSize = bindings::resource_size_t; +/// A raw page frame number, not to be confused with the C `pfn_t` which also encodes flags. +pub type Pfn = ffi::c_ulong; diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs index e1065a7551a39e68d6379031d80d4be336e652a3..eb1a80ba8ff83ab2d1b3b1d11fed4fb704c7a4f5 100644 --- a/rust/kernel/lib.rs +++ b/rust/kernel/lib.rs @@ -29,6 +29,7 @@ pub use ffi; +pub mod addr; pub mod alloc; #[cfg(CONFIG_BLOCK)] pub mod block;