VM_MAP_INTRSAFE, FALSE, &kmem_map_store);
VM_MAP_INTRSAFE, FALSE, &kmem_map_store.vmi_map);
kmeminit(){#ifdef KMEMSTATS	long indx;#endif#ifdef DIAGNOSTIC	if (sizeof(struct freelist) > (1 << MINBUCKET))		panic("kmeminit: minbucket too small/struct freelist too big");#endif	/*	 * Compute the number of kmem_map pages, if we have not	 * done so already.	 */	kmeminit_nkmempages();	kmem_map = uvm_km_suballoc(kernel_map, (vaddr_t *)&kmembase,		(vaddr_t *)&kmemlimit, (vsize_t)(nkmempages * PAGE_SIZE), 			VM_MAP_INTRSAFE, FALSE, &kmem_map_store);	kmemusage = (struct kmemusage *) uvm_km_zalloc(kernel_map,		(vsize_t)(nkmempages * sizeof(struct kmemusage)));#ifdef KMEMSTATS	for (indx = 0; indx < MINBUCKET + 16; indx++) {		if (1 << indx >= PAGE_SIZE)			bucket[indx].kb_elmpercl = 1;		else			bucket[indx].kb_elmpercl = PAGE_SIZE / (1 << indx);		bucket[indx].kb_highwat = 5 * bucket[indx].kb_elmpercl;	}	for (indx = 0; indx < M_LAST; indx++)		kmemstats[indx].ks_limit = nkmempages * PAGE_SIZE * 6 / 10;#endif#ifdef MALLOC_DEBUG	debug_malloc_init();#endif}