version 1.37, 2018/05/25 06:34:02 |
version 1.37.2.1, 2019/06/10 22:06:23 |
Line 471 pmap_bootstrap(void) |
|
Line 471 pmap_bootstrap(void) |
|
if (base == 0) |
if (base == 0) |
panic("Unable to allocate VHPT"); |
panic("Unable to allocate VHPT"); |
|
|
if (bootverbose) |
|
printf("VHPT: address=%#lx, size=%#lx\n", base, size); |
|
|
|
pmap_vhpt_nbuckets = size / sizeof(struct ia64_lpte); |
pmap_vhpt_nbuckets = size / sizeof(struct ia64_lpte); |
pmap_vhpt_bucket = (void *)uvm_pageboot_alloc(pmap_vhpt_nbuckets * |
pmap_vhpt_bucket = (void *)uvm_pageboot_alloc(pmap_vhpt_nbuckets * |
sizeof(struct ia64_bucket)); |
sizeof(struct ia64_bucket)); |
|
if (bootverbose) |
|
printf("VHPT: address=%#lx, size=%#lx, buckets=%ld, address=%lx\n", |
|
base, size, pmap_vhpt_nbuckets, (long unsigned int)&pmap_vhpt_bucket[0]); |
|
|
for (i = 0; i < pmap_vhpt_nbuckets; i++) { |
for (i = 0; i < pmap_vhpt_nbuckets; i++) { |
/* Stolen memory is zeroed. */ |
/* Stolen memory is zeroed. */ |
mutex_init(&pmap_vhpt_bucket[i].mutex, MUTEX_DEFAULT, IPL_VM); |
mutex_init(&pmap_vhpt_bucket[i].mutex, MUTEX_DEFAULT, IPL_VM); |
Line 2541 pmap_switch(pmap_t pm) |
|
Line 2542 pmap_switch(pmap_t pm) |
|
} |
} |
} |
} |
|
|
|
/* XXX */ |
|
ia64_srlz_d(); |
curcpu()->ci_pmap = pm; |
curcpu()->ci_pmap = pm; |
ia64_srlz_d(); |
ia64_srlz_d(); |
|
|