version 1.14.2.5, 2011/09/18 18:46:40 |
version 1.14.2.6, 2011/10/22 19:21:57 |
Line 109 evt_iterate_bits(struct cpu_info *ci, vo |
|
Line 109 evt_iterate_bits(struct cpu_info *ci, vo |
|
l1 &= ~(1UL << l1i); |
l1 &= ~(1UL << l1i); |
|
|
l2 = pendingl2[l1i] & (mask != NULL ? ~mask[l1i] : -1UL); |
l2 = pendingl2[l1i] & (mask != NULL ? ~mask[l1i] : -1UL); |
|
l2 &= ci->ci_evtmask[l1i]; |
|
|
if (mask != NULL) xen_atomic_setbits_l(&mask[l1i], l2); |
if (mask != NULL) xen_atomic_setbits_l(&mask[l1i], l2); |
xen_atomic_clearbits_l(&pendingl2[l1i], l2); |
xen_atomic_clearbits_l(&pendingl2[l1i], l2); |
Line 405 hypervisor_set_ipending(struct cpu_info |
|
Line 406 hypervisor_set_ipending(struct cpu_info |
|
KASSERT(ci->ci_isources[ipl] != NULL); |
KASSERT(ci->ci_isources[ipl] != NULL); |
ci->ci_isources[ipl]->ipl_evt_mask1 |= 1UL << l1; |
ci->ci_isources[ipl]->ipl_evt_mask1 |= 1UL << l1; |
ci->ci_isources[ipl]->ipl_evt_mask2[l1] |= 1UL << l2; |
ci->ci_isources[ipl]->ipl_evt_mask2[l1] |= 1UL << l2; |
|
if (__predict_false(ci != curcpu())) { |
|
if (xen_send_ipi(ci, XEN_IPI_HVCB)) { |
|
panic("hypervisor_set_ipending: " |
|
"xen_send_ipi(cpu%d, XEN_IPI_HVCB) failed\n", |
|
(int) ci->ci_cpuid); |
|
} |
|
} |
} |
} |
|
|
void |
void |