Programatorska konstrukce...
Ladislav Michl
ladislav.michl na hlubocky.del.cz
Úterý Listopad 6 10:07:10 CET 2001
On Tue, 6 Nov 2001, Jan Marek wrote:
> Dobry den,
>
> tak se dale kvuli PCMCIA stouram v jadre a zatim jsem se zasekl
> na studiu IRQ, kam me zavedly jiste stopy (vytuh nastava pri
> volani funkce request_irq())
>
> int request_irq(unsigned int irq,
> void (*handler)(int, void *, struct pt_regs *),
> unsigned long irqflags,
> const char * devname,
> void *dev_id)
> {
[snip]
> if (irqflags & SA_SHIRQ) {
> if (!dev_id)
> printk("Bad boy: %s (at 0x%x) called us without a dev_id!\n", devname, (&irq)[-1]);
> }
[snip]
> Zajima me konstrukce ve funkci printk(), kokretne se mi jedna o
> tento zapis:
>
> (&irq)[-1]. Co to vlastne ma za vyznam, je-li promenna irq
> unsigned int? Kdyby tam bylo pouze &irq, pak by to byla adresa te
> promenne. Ale takhle? Proc tam vlastne neni proste a suse irq?
vypise neco jako toto:
Bad boy: pcmcia driver (at 0x0fa45c34) called us without a dev_id!
&irq je adresa kam se na zasobnik ulozilo irq a (&irq)[-1] je adresa pred
irq (ted to bereme jako pole), kam se budeme vracet, takze se dozvime
odkud nas zavolali. hezke, ne? ;-)
hezky den,
ladis
Další informace o konferenci Linux