#ifndef CONFIG_DISCONTIGMEM 
#ifdef CONFIG_FLATMEM 
void __init mem_init(void){	extern int ppro_with_ram_bug(void);	int codesize, reservedpages, datasize, initsize;	int tmp;	int bad_ppro;#ifndef CONFIG_DISCONTIGMEM	if (!mem_map)		BUG();#endif		bad_ppro = ppro_with_ram_bug();#ifdef CONFIG_HIGHMEM	/* check that fixmap and pkmap do not overlap */	if (PKMAP_BASE+LAST_PKMAP*PAGE_SIZE >= FIXADDR_START) {		printk(KERN_ERR "fixmap and kmap areas overlap - this will crash\n");		printk(KERN_ERR "pkstart: %lxh pkend: %lxh fixstart %lxh\n",				PKMAP_BASE, PKMAP_BASE+LAST_PKMAP*PAGE_SIZE, FIXADDR_START);		BUG();	}#endif 	set_max_mapnr_init();#ifdef CONFIG_HIGHMEM	high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1;#else	high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1;#endif	/* this will put all low memory onto the freelists */	totalram_pages += free_all_bootmem();	reservedpages = 0;	for (tmp = 0; tmp < max_low_pfn; tmp++)		/*		 * Only count reserved RAM pages		 */		if (page_is_ram(tmp) && PageReserved(pfn_to_page(tmp)))			reservedpages++;	set_highmem_pages_init(bad_ppro);	codesize =  (unsigned long) &_etext - (unsigned long) &_text;	datasize =  (unsigned long) &_edata - (unsigned long) &_etext;	initsize =  (unsigned long) &__init_end - (unsigned long) &__init_begin;	kclist_add(&kcore_mem, __va(0), max_low_pfn << PAGE_SHIFT); 	kclist_add(&kcore_vmalloc, (void *)VMALLOC_START, 		   VMALLOC_END-VMALLOC_START);	printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, %dk reserved, %dk data, %dk init, %ldk highmem)\n",		(unsigned long) nr_free_pages() << (PAGE_SHIFT-10),		num_physpages << (PAGE_SHIFT-10),		codesize >> 10,		reservedpages << (PAGE_SHIFT-10),		datasize >> 10,		initsize >> 10,		(unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))	       );#ifdef CONFIG_X86_PAE	if (!cpu_has_pae)		panic("cannot execute a PAE-enabled kernel on a PAE-less CPU!");#endif	if (boot_cpu_data.wp_works_ok < 0)		test_wp_bit();	/*	 * Subtle. SMP is doing it's boot stuff late (because it has to	 * fork idle threads) - but it also needs low mappings for the	 * protected-mode entry to work. We zap these entries only after	 * the WP-bit has been tested.	 */#ifndef CONFIG_SMP	zap_low_mappings();#endif}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/05b79bdcb48c18cd9b580c39e3efb9a1ab078151/init.c/clean/arch/i386/mm/init.c