コード例 #1
0
ファイル: emulate.c プロジェクト: Fantu/Xen
static unsigned long svm_rip2pointer(struct vcpu *v)
{
    struct vmcb_struct *vmcb = v->arch.hvm_svm.vmcb;
    unsigned long p = vmcb->cs.base + guest_cpu_user_regs()->eip;
    if ( !(vmcb->cs.attr.fields.l && hvm_long_mode_enabled(v)) )
        return (u32)p; /* mask to 32 bits */
    return p;
}
コード例 #2
0
ファイル: bdvmixendriver.cpp プロジェクト: nks5295/libbdvmi
int32_t XenDriver::guestX86Mode( const Registers &regs )
{
	if ( !( regs.cr0 & X86_CR0_PE ) )
		return 0;

	if ( regs.rflags & X86_EFLAGS_VM )
		return 1;

	if ( hvm_long_mode_enabled( regs ) && ( regs.cs_arbytes & CS_AR_BYTES_L ) )
		return 8;

	return ( ( regs.cs_arbytes & CS_AR_BYTES_D ) ? 4 : 2 );
}