X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fsvm_handler.h;h=e2425aca7c514637562ffe4b8108c841718eea9c;hb=3cd1d3771e3f8e30b09f6c4995851979aaafc5ff;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..e2425ac 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,15 @@ #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); - -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