X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fsvm_handler.c;h=4ea49c92caa998ad40277f8a80801df8972941bf;hb=357764d1d3bc432b149e8864c183c3a39ee4d474;hp=b270907c95822e0a194b375e58367f8bfd28f1fb;hpb=45990b15161a5d97d4e4b7c4caeb84afb933de98;p=palacios.releases.git diff --git a/palacios/src/palacios/svm_handler.c b/palacios/src/palacios/svm_handler.c index b270907..4ea49c9 100644 --- a/palacios/src/palacios/svm_handler.c +++ b/palacios/src/palacios/svm_handler.c @@ -165,6 +165,25 @@ int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_i return -1; } break; + + case SVM_EXIT_CR8_WRITE: +#ifdef V3_CONFIG_DEBUG_CTRL_REGS + PrintDebug("CR8 Read\n"); +#endif + if (v3_handle_cr8_read(info) == -1) { + return -1; + } + break; + + case SVM_EXIT_CR8_READ: +#ifdef V3_CONFIG_DEBUG_CTRL_REGS + PrintDebug("CR8 Read\n"); +#endif + if (v3_handle_cr8_read(info) == -1) { + return -1; + } + break; + case SVM_EXIT_EXCP14: { addr_t fault_addr = exit_info2; pf_error_t * error_code = (pf_error_t *)&(exit_info1); @@ -256,7 +275,7 @@ int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_i #ifdef V3_CONFIG_DEBUG_TIME PrintDebug("RDTSC/RDTSCP\n"); #endif - if (v3_dispatch_exit_hook(info, V3_EXIT_RDTSC, NULL) == -1) { + if (v3_handle_rdtsc(info) == -1) { PrintError("Error Handling RDTSC instruction\n"); return -1; } @@ -265,7 +284,7 @@ int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_i #ifdef V3_CONFIG_DEBUG_TIME PrintDebug("RDTSCP\n"); #endif - if (v3_dispatch_exit_hook(info, V3_EXIT_RDTSCP, NULL) == -1) { + if (v3_handle_rdtscp(info) == -1) { PrintError("Error handling RDTSCP instruction\n"); return -1; }