X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fsvm_handler.h;h=0cca1b154d52abebe96827b70d07ff7f6968236b;hb=5bf6d0c260240e314876a2fca8e3fd56bd6a1029;hp=376b52ffbf92abc2dfabaf174a8a2e700fcb31f1;hpb=a109eb919a162bd7de58d62020801bc2e633be50;p=palacios.git diff --git a/palacios/include/palacios/svm_handler.h b/palacios/include/palacios/svm_handler.h index 376b52f..0cca1b1 100644 --- a/palacios/include/palacios/svm_handler.h +++ b/palacios/include/palacios/svm_handler.h @@ -1,13 +1,33 @@ +/* + * This file is part of the Palacios Virtual Machine Monitor developed + * by the V3VEE Project with funding from the United States National + * Science Foundation and the Department of Energy. + * + * The V3VEE Project is a joint project between Northwestern University + * and the University of New Mexico. You can find out more at + * http://www.v3vee.org + * + * Copyright (c) 2008, Jack Lange + * Copyright (c) 2008, The V3VEE Project + * All rights reserved. + * + * Author: Jack Lange + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "V3VEE_LICENSE". + */ + #ifndef __SVM_HANDLER_H #define __SVM_HANDLER_H + +#ifdef __V3VEE__ + #include #include #include - - /******************************************/ /* SVM Intercept Exit Codes */ /* AMD Arch Vol 3, Appendix C, pg 477-478 */ @@ -67,7 +87,7 @@ #define VMEXIT_DR15_READ 0x0000002f #define VMEXIT_DR_WRITE_MASK 0xffffffc0 -#define VMEXIT_DR0_WRITE 0x0000003f +#define VMEXIT_DR0_WRITE 0x00000030 // ? this was previously 3f #define VMEXIT_DR1_WRITE 0x00000031 #define VMEXIT_DR2_WRITE 0x00000032 #define VMEXIT_DR3_WRITE 0x00000033 @@ -165,15 +185,18 @@ #define VMEXIT_MWAIT 0x0000008b #define VMEXIT_MWAIT_CONDITIONAL 0x0000008c +#define VMEXIT_NPF 0x00000400 + #define VMEXIT_INVALID_VMCB -1 /******************************************/ +int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, + addr_t exit_info1, addr_t exit_info2); +const char * vmexit_code_to_str(uint_t exit_code); -int handle_shadow_paging(struct guest_info * info); - -int handle_svm_exit(struct guest_info * info); +#endif // ! __V3VEE__ #endif