X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fsvm_handler.c;h=1854c537e70bd53432216388536477421a79a632;hb=e5649c2775438bbb04baf9a8bd53fa70363c4235;hp=a84d2e1a12f2b00f395c9696f6b137ad6eb127fd;hpb=833883b8268075ac0685c3e920071b1718f414e3;p=palacios.git diff --git a/palacios/src/palacios/svm_handler.c b/palacios/src/palacios/svm_handler.c index a84d2e1..1854c53 100644 --- a/palacios/src/palacios/svm_handler.c +++ b/palacios/src/palacios/svm_handler.c @@ -43,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) { @@ -275,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 */