* [PATCH] rust: transmute: implement FromBytes and AsBytes for ()
@ 2025-12-08 4:15 Alexandre Courbot
2025-12-11 1:14 ` Alice Ryhl
0 siblings, 1 reply; 2+ messages in thread
From: Alexandre Courbot @ 2025-12-08 4:15 UTC (permalink / raw)
To: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron,
Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
Danilo Krummrich
Cc: John Hubbard, Alistair Popple, Joel Fernandes, Timur Tabi,
Edwin Peer, rust-for-linux, linux-kernel, Alexandre Courbot
This is useful when using types that may or may not be empty in generic
code relying on these traits. It is also safe because technically a
no-op.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
This is going to be useful in Nova's GSP message handling, as some
messages are empty and we need to explicitly use an empty structure for
them.
If accepted, I would like to merge it through `drm-rust-next` so Nova
code can start using this feature quickly.
---
rust/kernel/transmute.rs | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/rust/kernel/transmute.rs b/rust/kernel/transmute.rs
index be5dbf3829e2..8d78c81e3749 100644
--- a/rust/kernel/transmute.rs
+++ b/rust/kernel/transmute.rs
@@ -170,6 +170,9 @@ macro_rules! impl_frombytes {
}
impl_frombytes! {
+ // SAFETY: This type is empty and thus does not consume any data.
+ (),
+
// SAFETY: All bit patterns are acceptable values of the types below.
u8, u16, u32, u64, usize,
i8, i16, i32, i64, isize,
@@ -230,6 +233,9 @@ macro_rules! impl_asbytes {
}
impl_asbytes! {
+ // SAFETY: This type is empty and thus returns an empty slice.
+ (),
+
// SAFETY: Instances of the following types have no uninitialized portions.
u8, u16, u32, u64, usize,
i8, i16, i32, i64, isize,
---
base-commit: ba65a4e7120a616d9c592750d9147f6dcafedffa
change-id: 20251208-transmute_unit-78ab58ba9e6e
Best regards,
--
Alexandre Courbot <acourbot@nvidia.com>
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] rust: transmute: implement FromBytes and AsBytes for ()
2025-12-08 4:15 [PATCH] rust: transmute: implement FromBytes and AsBytes for () Alexandre Courbot
@ 2025-12-11 1:14 ` Alice Ryhl
0 siblings, 0 replies; 2+ messages in thread
From: Alice Ryhl @ 2025-12-11 1:14 UTC (permalink / raw)
To: Alexandre Courbot
Cc: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron,
Benno Lossin, Andreas Hindborg, Trevor Gross, Danilo Krummrich,
John Hubbard, Alistair Popple, Joel Fernandes, Timur Tabi,
Edwin Peer, rust-for-linux, linux-kernel
On Mon, Dec 08, 2025 at 01:15:13PM +0900, Alexandre Courbot wrote:
> This is useful when using types that may or may not be empty in generic
> code relying on these traits. It is also safe because technically a
> no-op.
>
> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
> ---
> This is going to be useful in Nova's GSP message handling, as some
> messages are empty and we need to explicitly use an empty structure for
> them.
>
> If accepted, I would like to merge it through `drm-rust-next` so Nova
> code can start using this feature quickly.
> ---
> rust/kernel/transmute.rs | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/rust/kernel/transmute.rs b/rust/kernel/transmute.rs
> index be5dbf3829e2..8d78c81e3749 100644
> --- a/rust/kernel/transmute.rs
> +++ b/rust/kernel/transmute.rs
> @@ -170,6 +170,9 @@ macro_rules! impl_frombytes {
> }
>
> impl_frombytes! {
> + // SAFETY: This type is empty and thus does not consume any data.
> + (),
This should mention that the type has no invariants.
> impl_asbytes! {
> + // SAFETY: This type is empty and thus returns an empty slice.
> + (),
Ok.
Alice
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-12-11 1:14 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-08 4:15 [PATCH] rust: transmute: implement FromBytes and AsBytes for () Alexandre Courbot
2025-12-11 1:14 ` Alice Ryhl
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).