Messages in this thread | | | From | (Eric W. Biederman) | Date | Sat, 09 Aug 2008 14:38:50 -0700 | Subject | Re: [PATCH 08/42] introduce nr_irqs |
| |
"Yinghai Lu" <yhlu.kernel@gmail.com> writes:
> On Sat, Aug 9, 2008 at 9:02 AM, Eric W. Biederman <ebiederm@xmission.com> wrote: >> "Yinghai Lu" <yhlu.kernel@gmail.com> writes: >> >>>> Also, what's the point, if it's just a renaming? >>> >>> that is the start point. >>> nr_irqs is variable, and will be probed later. and use that number to >>> init dyn_alloc. >> >> YH. >> >> In my conception the code in kernel/irq.c that today does: >> >> struct irq_desc *desc; >> if (irq >= NR_IRQS) >> return -EINVAL; >> desc = irq_desc + irq; >> >> Should become: >> >> struct irq_desc *desc; >> desc = irq_desc(irq); >> if (!desc) >> return -EINVAL; >> > > OK. > > also want to introduce dummy > struct irq_desc > { > unsigned int irq; > }; > > in linux/interrupt.h if GENERIC_HARDIRQS is not defined. > so could have same interface > irq_desc() > and > for_each_irq_desc(irq, desc)
What would use it? irq_desc doesn't even exist if GENERIC_HARDIRQS are not defined.
Far far in the future we may want to introduce an opaque type struct irq. For use with linux/interrupt.h Allowing things like irq_request(struct irq *irq, ...); For now those kinds of interfaces should be internal to the genirq code.
Eric
| |