Re: [PATCH v6 5/6] rust: platform: add irq accessors

Danilo Krummrich
2025-07-04T18:23:42Z

On Thu, Jul 03, 2025 at 04:30:03PM -0300, Daniel Almeida wrote:
> +impl Device<Bound> {
> + /// Returns an [`IrqRequest`] for the IRQ at the given index, if any.
> + pub fn request_irq_by_index(&self, index: u32) -> Result<IrqRequest<'_>> {
> + // SAFETY: `self.as_raw` returns a valid pointer to a `struct platform_device`.
> + let irq = unsafe { bindings::platform_get_irq(self.as_raw(), index) };
> +
> + if irq < 0 {
> + return Err(Error::from_errno(irq));
> + }
> +
> + // SAFETY: `irq` is guaranteed to be a valid IRQ number for `&self`.
> + Ok(unsafe { IrqRequest::new(self.as_ref(), irq as u32) })
> + }

Sorry that I didn't notice that before: Please just name the functions returning
an IrqRequest e.g. irq_by_index(), without the 'request' prefix. And instead put
the 'request' prefix in front of the methods that return a actual
irq::Registration.

This is more in line with the C functions being named request_irq() and
request_threaded_irq().