X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fsvm_handler.h;h=0cca1b154d52abebe96827b70d07ff7f6968236b;hb=9e9d28b5fe29fcf8fbed010c981254b5e25a6eac;hp=1557ad0c80f720eea3cd1a7486e2e49bf9e86268;hpb=df58bd3c484a52b1e166dc28e7b9b6fd94e5a023;p=palacios.git diff --git a/palacios/include/palacios/svm_handler.h b/palacios/include/palacios/svm_handler.h index 1557ad0..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,17 +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_intr(struct guest_info * info); - -int handle_svm_exit(struct guest_info * info); +#endif // ! __V3VEE__ #endif