X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fsvm_handler.c;h=1854c537e70bd53432216388536477421a79a632;hb=cfd5e43722796b4951faf721c64f3a74ab81ff2b;hp=da85eb2cfd31811d76574d0c216ad0f285a9b1e4;hpb=840d15c3a300636e758fcfcf403ae415ffa67816;p=palacios.git diff --git a/palacios/src/palacios/svm_handler.c b/palacios/src/palacios/svm_handler.c index da85eb2..1854c53 100644 --- a/palacios/src/palacios/svm_handler.c +++ b/palacios/src/palacios/svm_handler.c @@ -33,7 +33,6 @@ #include #include #include -#include #ifndef V3_CONFIG_DEBUG_SVM #undef PrintDebug @@ -44,7 +43,9 @@ #include #endif - +#ifdef V3_CONFIG_EXT_SW_INTERRUPTS +#include +#endif int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_info1, addr_t exit_info2) { @@ -194,15 +195,6 @@ int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_i } break; } - case VMEXIT_SWINT: -#ifdef CONFIG_DEBUG_INTERRUPTS - PrintDebug("Intercepted SW Interrupt\n"); -#endif - if (v3_handle_swintr(info) == -1) { - PrintError("Error handling software interrupt\n"); - return -1; - } - break; case VMEXIT_INVLPG: if (info->shdw_pg_mode == SHADOW_PAGING) { #ifdef V3_CONFIG_DEBUG_SHADOW_PAGING @@ -285,6 +277,17 @@ int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_i // Force exit on other cores break; +#ifdef V3_CONFIG_EXT_SW_INTERRUPTS + case VMEXIT_SWINT: +#ifdef V3_CONFIG_DEBUG_EXT_SW_INTERRUPTS + PrintDebug("Intercepted a software interrupt\n"); +#endif + if (v3_handle_swintr(info) == -1) { + PrintError("Error handling software interrupt\n"); + return -1; + } + break; +#endif /* Exits Following this line are NOT HANDLED */