ppc_md.init = NULL;  ppc_md.time_init = todc_time_init; ppc_md.set_rtc_time = todc_set_rtc_time; ppc_md.get_rtc_time = todc_get_rtc_time; ppc_md.nvram_read_val = todc_direct_read_val; ppc_md.nvram_write_val = todc_direct_write_val; 
platform_init(unsigned long r3, unsigned long r4, unsigned long r5,	      unsigned long r6, unsigned long r7){	parse_bootinfo(find_bootinfo());	/* ASSUMPTION:  If both r3 (bd_t pointer) and r6 (cmdline pointer)	 * are non-zero, then we should use the board info from the bd_t	 * structure and the cmdline pointed to by r6 instead of the	 * information from birecs, if any.  Otherwise, use the information	 * from birecs as discovered by the preceeding call to	 * parse_bootinfo().  This rule should work with both PPCBoot, which	 * uses a bd_t board info structure, and the kernel boot wrapper,	 * which uses birecs.	 */	if (r3 && r6) {		/* copy board info structure */		memcpy( (void *)__res,(void *)(r3+KERNELBASE), sizeof(bd_t) );		/* copy command line */		*(char *)(r7+KERNELBASE) = 0;		strcpy(cmd_line, (char *)(r6+KERNELBASE));	}	#ifdef CONFIG_ISA	isa_mem_base = 0;	#endif	ppc_md.setup_arch = ev64360_setup_arch;	ppc_md.show_cpuinfo = ev64360_show_cpuinfo;	ppc_md.init_IRQ = mv64360_init_irq;	ppc_md.get_irq = mv64360_get_irq;	ppc_md.restart = ev64360_restart;	ppc_md.power_off = ev64360_power_off;	ppc_md.halt = ev64360_halt;	ppc_md.find_end_of_memory = ev64360_find_end_of_memory;	ppc_md.calibrate_decr = ev64360_calibrate_decr;#if defined(CONFIG_SERIAL_TEXT_DEBUG) && defined(CONFIG_SERIAL_MPSC_CONSOLE)	ppc_md.setup_io_mappings = ev64360_map_io;	ppc_md.progress = mv64x60_mpsc_progress;	mv64x60_progress_init(CONFIG_MV64X60_NEW_BASE);#endif#if defined(CONFIG_SERIAL_MPSC) || defined(CONFIG_MV643XX_ETH)	platform_notify = ev64360_platform_notify;#endif	ev64360_set_bat(); /* Need for ev64360_find_end_of_memory and progress */}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2104da90a9aeef31ff6441d171a7d0492088f1d0/ev64360.c/buggy/arch/ppc/platforms/ev64360.c