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