X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmx_lowlevel.h;h=6db9f17cc23e2f9fcff9c06e421f4c8dab9e32c3;hb=16047acf61f82cb4ae33bcb84b221c2098215172;hp=9ea6ffbc5e161cdec5ef8c6a950bca83edefbd5d;hpb=c31f51134ba446530ff67fa0723ce634c70c2812;p=palacios-OLD.git diff --git a/palacios/include/palacios/vmx_lowlevel.h b/palacios/include/palacios/vmx_lowlevel.h index 9ea6ffb..6db9f17 100644 --- a/palacios/include/palacios/vmx_lowlevel.h +++ b/palacios/include/palacios/vmx_lowlevel.h @@ -128,7 +128,7 @@ static inline int vmcs_store(addr_t vmcs_ptr) { } static inline int vmcs_read(vmcs_field_t vmcs_field, void * dst) { - uint64_t val = 0; + addr_t val = 0; uint8_t ret_valid = 0; uint8_t ret_invalid = 0; @@ -155,6 +155,8 @@ static inline int vmcs_read(vmcs_field_t vmcs_field, void * dst) { case 8: *((uint64_t*)dst) = (uint64_t)val; break; + default: + return -1; } @@ -170,7 +172,7 @@ static inline int vmcs_write(vmcs_field_t vmcs_field, addr_t value) { EAX_ECX_MODRM "seteb %0;" // fail valid (ZF=1) "setnaeb %1;" // fail invalid (CF=1) - : "=r" (ret_valid), "=r" (ret_invalid) + : "=q" (ret_valid), "=q" (ret_invalid) : "a" (vmcs_field), "c"(value) : "memory");