예제 #1
0
u64 vmx_vcpu_get_itir_on_fault(VCPU *vcpu, u64 ifa)
{
    ia64_rr rr,rr1;
    vcpu_get_rr(vcpu,ifa,&rr.rrval);
    rr1.rrval=0;
    rr1.ps=rr.ps;
    rr1.rid=rr.rid;
    return (rr1.rrval);
}
예제 #2
0
int vhpt_enabled(VCPU *vcpu, uint64_t vadr, vhpt_ref_t ref)
{
    ia64_rr  vrr;
    PTA   vpta;
    IA64_PSR  vpsr; 

    vpsr.val = VCPU(vcpu, vpsr);
    vcpu_get_rr(vcpu, vadr, &vrr.rrval);
    vpta.val = vmx_vcpu_get_pta(vcpu);

    if ( vrr.ve & vpta.ve ) {
        switch ( ref ) {
        case DATA_REF:
        case NA_REF:
            return vpsr.dt;
        case INST_REF:
            return vpsr.dt && vpsr.it && vpsr.ic;
        case RSE_REF:
            return vpsr.dt && vpsr.rt;

        }
    }
    return 0;
}