} else { 
} #ifdef CONFIG_PPC_CHRP else { 
xmon_map_scc(void){#ifdef CONFIG_PPC_MULTIPLATFORM	volatile unsigned char *base;	if (_machine == _MACH_Pmac) {		struct device_node *np;		unsigned long addr;#ifdef CONFIG_BOOTX_TEXT		if (!use_screen && !use_serial		    && !machine_is_compatible("iMac")) {			/* see if there is a keyboard in the device tree			   with a parent of type "adb" */			for (np = find_devices("keyboard"); np; np = np->next)				if (np->parent && np->parent->type				    && strcmp(np->parent->type, "adb") == 0)					break;			/* needs to be hacked if xmon_printk is to be used			   from within find_via_pmu() */#ifdef CONFIG_ADB_PMU			if (np != NULL && boot_text_mapped && find_via_pmu())				use_screen = 1;#endif#ifdef CONFIG_ADB_CUDA			if (np != NULL && boot_text_mapped && find_via_cuda())				use_screen = 1;#endif		}		if (!use_screen && (np = find_devices("escc")) != NULL) {			/*			 * look for the device node for the serial port			 * we're using and see if it says it has a modem			 */			char *name = xmon_use_sccb? "ch-b": "ch-a";			char *slots;			int l;			np = np->child;			while (np != NULL && strcmp(np->name, name) != 0)				np = np->sibling;			if (np != NULL) {				/* XXX should parse this properly */				channel_node = np;				slots = get_property(np, "slot-names", &l);				if (slots != NULL && l >= 10				    && strcmp(slots+4, "Modem") == 0)					via_modem = 1;			}		}		btext_drawstring("xmon uses ");		if (use_screen)			btext_drawstring("screen and keyboard\n");		else {			if (via_modem)				btext_drawstring("modem on ");			btext_drawstring(xmon_use_sccb? "printer": "modem");			btext_drawstring(" port\n");		}#endif /* CONFIG_BOOTX_TEXT */#ifdef CHRP_ESCC		addr = 0xc1013020;#else		addr = 0xf3013020;#endif		TXRDY = 4;		RXRDY = 1;			np = find_devices("mac-io");		if (np && np->n_addrs)			addr = np->addrs[0].address + 0x13020;		base = (volatile unsigned char *) ioremap(addr & PAGE_MASK, PAGE_SIZE);		sccc = base + (addr & ~PAGE_MASK);		sccd = sccc + 0x10;	} else {		base = (volatile unsigned char *) isa_io_base;		if (_machine == _MACH_chrp)			base = (volatile unsigned char *)				ioremap(chrp_find_phys_io_base(), 0x1000);		sccc = base + 0x3fd;		sccd = base + 0x3f8;		if (xmon_use_sccb) {			sccc -= 0x100;			sccd -= 0x100;		}		TXRDY = 0x20;		RXRDY = 1;		DLAB = 0x80;	}#elif defined(CONFIG_GEMINI)	/* should already be mapped by the kernel boot */	sccc = (volatile unsigned char *) 0xffeffb0d;	sccd = (volatile unsigned char *) 0xffeffb08;	TXRDY = 0x20;	RXRDY = 1;	DLAB = 0x80;#elif defined(CONFIG_405GP)	sccc = (volatile unsigned char *)0xef600305;	sccd = (volatile unsigned char *)0xef600300;	TXRDY = 0x20;	RXRDY = 1;	DLAB = 0x80;#endif /* platform */	register_sysrq_key('x', &sysrq_xmon_op);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d3ed65832029dcaf5fe086670a2f2c25600b51e9/start.c/buggy/arch/ppc/xmon/start.c