On Fri, Jun 27, 2025 at 01:21:07PM -0300, Daniel Almeida wrote: > +macro_rules! define_irq_accessor_by_index { > + ($(#[$meta:meta])* $fn_name:ident, $request_fn:ident, $reg_type:ident, $handler_trait:ident) => { > + $(#[$meta])* > + pub fn $fn_name<T: irq::$handler_trait + 'static>( > + &self, > + index: u32, > + flags: irq::flags::Flags, > + name: &'static CStr, > + handler: T, > + ) -> Result<impl PinInit<irq::$reg_type<T>, Error> + '_> { > + let request = self.$request_fn(index)?; > + > + Ok(irq::$reg_type::<T>::new( > + request, > + flags, > + name, > + handler, > + )) > + } > + }; > +} > + > +macro_rules! define_irq_accessor_by_name { > + ($(#[$meta:meta])* $fn_name:ident, $request_fn:ident, $reg_type:ident, $handler_trait:ident) => { > + $(#[$meta])* > + pub fn $fn_name<T: irq::$handler_trait + 'static>( > + &self, > + irq_name: &'static CStr, > + name: &'static CStr, > + flags: irq::flags::Flags, > + handler: T, > + ) -> Result<impl PinInit<irq::$reg_type<T>, Error> + '_> { > + let request = self.$request_fn(irq_name)?; > + > + Ok(irq::$reg_type::<T>::new( > + request, > + flags, > + name, > + handler, > + )) > + } > + }; > +} NIT: Please make the order of name and flags the same for both macros.