* Note that check_region()/request_region() * work for these devices. 
* Note that request_region() * works for these devices. 
static void pcic_map_pci_device(struct linux_pcic *pcic,    struct pci_dev *dev, int node){	char namebuf[64];	unsigned long address;	unsigned long flags;	int j;	if (node == 0 || node == -1) {		strcpy(namebuf, "???");	} else {		prom_getstring(node, "name", namebuf, 63); namebuf[63] = 0;	}	for (j = 0; j < 6; j++) {		address = dev->resource[j].start;		if (address == 0) break;	/* are sequential */		flags = dev->resource[j].flags;		if ((flags & IORESOURCE_IO) != 0) {			if (address < 0x10000) {				/*				 * A device responds to I/O cycles on PCI.				 * We generate these cycles with memory				 * access into the fixed map (phys 0x30000000).				 *				 * Since a device driver does not want to				 * do ioremap() before accessing PC-style I/O,				 * we supply virtual, ready to access address.				 *				 * Ebus devices do not come here even if				 * CheerIO makes a similar conversion.				 * See ebus.c for details.				 *				 * Note that check_region()/request_region()				 * work for these devices.				 *				 * XXX Neat trick, but it's a *bad* idea				 * to shit into regions like that.				 * What if we want to allocate one more				 * PCI base address...				 */				dev->resource[j].start =				    pcic->pcic_io + address;				dev->resource[j].end = 1;  /* XXX */				dev->resource[j].flags =				    (flags & ~IORESOURCE_IO) | IORESOURCE_MEM;			} else {				/*				 * OOPS... PCI Spec allows this. Sun does				 * not have any devices getting above 64K				 * so it must be user with a weird I/O				 * board in a PCI slot. We must remap it				 * under 64K but it is not done yet. XXX				 */				printk("PCIC: Skipping I/O space at 0x%lx,"				    "this will Oops if a driver attaches;"				    "device '%s' at %02x:%02x)\n", address,				    namebuf, dev->bus->number, dev->devfn);			}		}	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d61780c0d384939ef31c46b47442854d5def4623/pcic.c/clean/arch/sparc/kernel/pcic.c