[PATCH 3/8] rust: io: register: use path fragment for alias destination
Alexandre Courbot <[email protected]> Tue, 21 Jul 2026 04:00:12 -0700
| Newsgroups | dev.linux.lists.nova-gpu,dev.linux.lists.driver-core,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel,org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
The destination of an alias, whether it is fixed, relative, or indexed, is always another register, i.e. a `struct` type. Replace the `ident` fragment with a `path` one which is more accurate, and allows referencing registers using a qualified path instead of only identifiers visible from the current module. Signed-off-by: Alexandre Courbot <[email protected]> --- rust/kernel/io/register.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rust/kernel/io/register.rs b/rust/kernel/io/register.rs index 82f674aea45a..1e0e23e4233f 100644 --- a/rust/kernel/io/register.rs +++ b/rust/kernel/io/register.rs @@ -809,7 +809,7 @@ macro_rules! register { $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) $([ $size:expr $(, stride = $stride:expr)? ])? $(@ $($base:ident +)? $offset:literal)? - $(=> $alias:ident $(+ $alias_offset:ident)? $([$alias_idx:expr])? )? + $(=> $alias:ident $(+ $alias_offset:path)? $([$alias_idx:expr])? )? { $($fields:tt)* } )* ) => { @@ -837,7 +837,7 @@ macro_rules! register { // Creates an alias register of fixed offset register `alias` with its own fields. ( - @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) => $alias:ident + @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) => $alias:path { $($fields:tt)* } ) => { $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storage) { $($fields)* }); @@ -860,7 +860,7 @@ macro_rules! register { // Creates an alias register of relative offset register `alias` with its own fields. ( - @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) => $base:ident + $alias:ident + @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) => $base:ident + $alias:path { $($fields:tt)* } ) => { $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storage) { $($fields)* }); @@ -896,7 +896,7 @@ macro_rules! register { // Creates an alias of register `idx` of array of registers `alias` with its own fields. ( - @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) => $alias:ident [ $idx:expr ] + @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) => $alias:path [ $idx:expr ] { $($fields:tt)* } ) => { $crate::build_assert::static_assert!( @@ -940,7 +940,7 @@ macro_rules! register { // fields. ( @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) - => $base:ident + $alias:ident [ $idx:expr ] { $($fields:tt)* } + => $base:ident + $alias:path [ $idx:expr ] { $($fields:tt)* } ) => { $crate::build_assert::static_assert!( $idx < <$alias as $crate::io::register::RegisterArray>::SIZE -- 2.55.0