From: Danilo Krummrich <dakr@kernel.org>
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, acurrid@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 <dakr@kernel.org>
Subject: [PATCH v2 05/23] rust: alloc: add module `allocator_test`
Date: Tue, 23 Jul 2024 20:09:54 +0200 [thread overview]
Message-ID: <20240723181024.21168-6-dakr@kernel.org> (raw)
In-Reply-To: <20240723181024.21168-1-dakr@kernel.org>
`Allocator`s, such as `Kmalloc`, will be used by e.g. `Box` and `Vec` in
subsequent patches, and hence this dependency propagates throughout the
whole kernel.
Add the `allocator_test` module that provides an empty implementation
for all `Allocator`s in the kernel, such that we don't break the
`rusttest` make target in subsequent patches.
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
rust/kernel/alloc.rs | 9 +++++++--
rust/kernel/alloc/allocator_test.rs | 21 +++++++++++++++++++++
2 files changed, 28 insertions(+), 2 deletions(-)
create mode 100644 rust/kernel/alloc/allocator_test.rs
diff --git a/rust/kernel/alloc.rs b/rust/kernel/alloc.rs
index bf739ce65387..90ebe79e86cb 100644
--- a/rust/kernel/alloc.rs
+++ b/rust/kernel/alloc.rs
@@ -2,12 +2,17 @@
//! Extensions to the [`alloc`] crate.
-#[cfg(not(test))]
-#[cfg(not(testlib))]
+#[cfg(not(any(test, testlib)))]
pub mod allocator;
pub mod box_ext;
pub mod vec_ext;
+#[cfg(any(test, testlib))]
+pub mod allocator_test;
+
+#[cfg(any(test, testlib))]
+pub use self::allocator_test as allocator;
+
/// Indicates an allocation error.
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub struct AllocError;
diff --git a/rust/kernel/alloc/allocator_test.rs b/rust/kernel/alloc/allocator_test.rs
new file mode 100644
index 000000000000..3a0abe65491d
--- /dev/null
+++ b/rust/kernel/alloc/allocator_test.rs
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#![allow(missing_docs)]
+
+use super::{AllocError, Allocator, Flags};
+use core::alloc::Layout;
+use core::ptr::NonNull;
+
+pub struct Kmalloc;
+
+unsafe impl Allocator for Kmalloc {
+ unsafe fn realloc(
+ &self,
+ _old_ptr: *mut u8,
+ _old_size: usize,
+ _layout: Layout,
+ _flags: Flags,
+ ) -> Result<NonNull<[u8]>, AllocError> {
+ panic!();
+ }
+}
--
2.45.2
next prev parent reply other threads:[~2024-07-23 18:11 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-23 18:09 [PATCH v2 00/23] Generic `Allocator` support for Rust Danilo Krummrich
2024-07-23 18:09 ` [PATCH v2 01/23] rust: alloc: add `Allocator` trait Danilo Krummrich
2024-07-23 18:09 ` [PATCH v2 02/23] rust: alloc: separate `aligned_size` from `krealloc_aligned` Danilo Krummrich
2024-07-23 18:09 ` [PATCH v2 03/23] rust: alloc: rename `KernelAllocator` to `Kmalloc` Danilo Krummrich
2024-07-23 18:09 ` [PATCH v2 04/23] rust: alloc: implement `Allocator` for `Kmalloc` Danilo Krummrich
2024-07-23 18:09 ` Danilo Krummrich [this message]
2024-07-23 18:09 ` [PATCH v2 06/23] rust: alloc: implement `Vmalloc` allocator Danilo Krummrich
2024-07-23 18:09 ` [PATCH v2 07/23] rust: alloc: implement `KVmalloc` allocator Danilo Krummrich
2024-07-23 18:09 ` [PATCH v2 08/23] rust: types: implement `Unique<T>` Danilo Krummrich
2024-07-23 18:09 ` [PATCH v2 09/23] rust: alloc: implement kernel `Box` Danilo Krummrich
2024-07-23 18:09 ` [PATCH v2 10/23] rust: treewide: switch to our kernel `Box` type Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 11/23] rust: alloc: remove `BoxExt` extension Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 12/23] rust: alloc: add `Box` to prelude Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 13/23] rust: alloc: import kernel `Box` type in types.rs Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 14/23] rust: alloc: implement kernel `Vec` type Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 15/23] rust: alloc: implement `IntoIterator` for `Vec` Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 16/23] rust: alloc: implement `collect` for `IntoIter` Danilo Krummrich
2024-07-24 14:35 ` Heghedus Razvan
2024-07-24 20:32 ` Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 17/23] rust: treewide: switch to the kernel `Vec` type Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 18/23] rust: alloc: remove `VecExt` extension Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 19/23] rust: alloc: add `Vec` to prelude Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 20/23] rust: alloc: remove `GlobalAlloc` and `krealloc_aligned` Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 21/23] rust: error: use `core::alloc::LayoutError` Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 22/23] rust: str: test: replace `alloc::format` Danilo Krummrich
2024-07-23 18:10 ` [PATCH v2 23/23] kbuild: rust: remove the `alloc` crate Danilo Krummrich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240723181024.21168-6-dakr@kernel.org \
--to=dakr@kernel.org \
--cc=a.hindborg@samsung.com \
--cc=acurrid@nvidia.com \
--cc=airlied@redhat.com \
--cc=ajanulgu@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=boris.brezillon@collabora.com \
--cc=cjia@nvidia.com \
--cc=daniel.almeida@collabora.com \
--cc=faith.ekstrand@collabora.com \
--cc=gary@garyguo.net \
--cc=jhubbard@nvidia.com \
--cc=lina@asahilina.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lyude@redhat.com \
--cc=mcanal@igalia.com \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=wedsonaf@gmail.com \
--cc=zhiw@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).