unsigned long num_pgt_pages; 
mem_init (void){	long reserved_pages, codesize, datasize, initsize;	unsigned long num_pgt_pages;	pg_data_t *pgdat;	int i;	static struct kcore_list kcore_mem, kcore_vmem, kcore_kernel;#ifdef CONFIG_PCI	/*	 * This needs to be called _after_ the command line has been parsed but _before_	 * any drivers that may need the PCI DMA interface are initialized or bootmem has	 * been freed.	 */	platform_dma_init();#endif#ifndef CONFIG_DISCONTIGMEM	if (!mem_map)		BUG();	max_mapnr = max_low_pfn;#endif	high_memory = __va(max_low_pfn * PAGE_SIZE);	kclist_add(&kcore_mem, __va(0), max_low_pfn * PAGE_SIZE);	kclist_add(&kcore_vmem, (void *)VMALLOC_START, VMALLOC_END-VMALLOC_START);	kclist_add(&kcore_kernel, _stext, _end - _stext);	for_each_pgdat(pgdat)		totalram_pages += free_all_bootmem_node(pgdat);	reserved_pages = 0;	efi_memmap_walk(count_reserved_pages, &reserved_pages);	codesize =  (unsigned long) _etext - (unsigned long) _stext;	datasize =  (unsigned long) _edata - (unsigned long) _etext;	initsize =  (unsigned long) __init_end - (unsigned long) __init_begin;	printk(KERN_INFO "Memory: %luk/%luk available (%luk code, %luk reserved, "	       "%luk data, %luk init)\n", (unsigned long) nr_free_pages() << (PAGE_SHIFT - 10),	       num_physpages << (PAGE_SHIFT - 10), codesize >> 10,	       reserved_pages << (PAGE_SHIFT - 10), datasize >> 10, initsize >> 10);	/*	 * Allow for enough (cached) page table pages so that we can map the entire memory	 * at least once.  Each task also needs a couple of page tables pages, so add in a	 * fudge factor for that (don't use "threads-max" here; that would be wrong!).	 * Don't allow the cache to be more than 10% of total memory, though.	 */#	define NUM_TASKS	500	/* typical number of tasks */	num_pgt_pages = nr_free_pages() / PTRS_PER_PGD + NUM_TASKS;	if (num_pgt_pages > nr_free_pages() / 10)		num_pgt_pages = nr_free_pages() / 10;	if (num_pgt_pages > (u64) pgt_cache_water[1])		pgt_cache_water[1] = num_pgt_pages;	/*	 * For fsyscall entrpoints with no light-weight handler, use the ordinary	 * (heavy-weight) handler, but mark it by setting bit 0, so the fsyscall entry	 * code can tell them apart.	 */	for (i = 0; i < NR_syscalls; ++i) {		extern unsigned long fsyscall_table[NR_syscalls];		extern unsigned long sys_call_table[NR_syscalls];		if (!fsyscall_table[i] || nolwsys)			fsyscall_table[i] = sys_call_table[i] | 1;	}	setup_gate();#ifdef CONFIG_IA32_SUPPORT	ia32_mem_init();#endif}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/fde740e4dd4a05ca8957490d468fa9b2770f5bd6/init.c/clean/arch/ia64/mm/init.c