static unsigned int __init sabre_irq_build(struct pci_pbm_info *pbm, struct pci_dev *pdev, unsigned int ino) 
static unsigned int sabre_irq_build(struct pci_pbm_info *pbm, struct pci_dev *pdev, unsigned int ino) 
static unsigned int __init sabre_irq_build(struct pci_pbm_info *pbm,					   struct pci_dev *pdev,					   unsigned int ino){	struct ino_bucket *bucket;	unsigned long imap, iclr;	unsigned long imap_off, iclr_off;	int pil, inofixup = 0;	ino &= PCI_IRQ_INO;	if (ino < SABRE_ONBOARD_IRQ_BASE) {		/* PCI slot */		imap_off = sabre_pcislot_imap_offset(ino);	} else {		/* onboard device */		if (ino > SABRE_ONBOARD_IRQ_LAST) {			prom_printf("sabre_irq_build: Wacky INO [%x]\n", ino);			prom_halt();		}		imap_off = sabre_onboard_imap_offset(ino);	}	/* Now build the IRQ bucket. */	pil = sabre_ino_to_pil(pdev, ino);	if (PIL_RESERVED(pil))		BUG();	imap = pbm->controller_regs + imap_off;	imap += 4;	iclr_off = sabre_iclr_offset(ino);	iclr = pbm->controller_regs + iclr_off;	iclr += 4;	if ((ino & 0x20) == 0)		inofixup = ino & 0x03;	bucket = __bucket(build_irq(pil, inofixup, iclr, imap));	bucket->flags |= IBF_PCI;	if (pdev) {		struct pcidev_cookie *pcp = pdev->sysdata;		if (pdev->bus->number != pcp->pbm->pci_first_busno) {			struct pci_controller_info *p = pcp->pbm->parent;			struct irq_desc *d = bucket->irq_info;			d->pre_handler = sabre_wsync_handler;			d->pre_handler_arg1 = pdev;			d->pre_handler_arg2 = (void *)				p->pbm_A.controller_regs + SABRE_WRSYNC;		}	}	return __irq(bucket);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/085ae41f66657a9655ce832b0a61832a06f0e1dc/pci_sabre.c/buggy/arch/sparc64/kernel/pci_sabre.c