svm.h (272195) | svm.h (272929) |
---|---|
1/*- 2 * Copyright (c) 2013 Anish Gupta (akgupt3@gmail.com) 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 2013 Anish Gupta (akgupt3@gmail.com) 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * |
26 * $FreeBSD: projects/bhyve_svm/sys/amd64/vmm/amd/svm.h 272195 2014-09-27 02:04:58Z neel $ | 26 * $FreeBSD: projects/bhyve_svm/sys/amd64/vmm/amd/svm.h 272929 2014-10-11 04:41:21Z neel $ |
27 */ 28 29#ifndef _SVM_H_ 30#define _SVM_H_ 31 | 27 */ 28 29#ifndef _SVM_H_ 30#define _SVM_H_ 31 |
32#define BIT(n) (1ULL << n) 33#define ERR(fmt, args...) \ 34 printf("SVM ERROR:%s " fmt "\n", __func__, ##args); 35 | |
36/* 37 * Guest register state that is saved outside the VMCB. 38 */ 39struct svm_regctx { 40 register_t sctx_rbp; 41 register_t sctx_rbx; 42 register_t sctx_rcx; 43 register_t sctx_rdx; --- 6 unchanged lines hidden (view full) --- 50 register_t sctx_r12; 51 register_t sctx_r13; 52 register_t sctx_r14; 53 register_t sctx_r15; 54}; 55 56void svm_launch(uint64_t pa, struct svm_regctx *); 57 | 32/* 33 * Guest register state that is saved outside the VMCB. 34 */ 35struct svm_regctx { 36 register_t sctx_rbp; 37 register_t sctx_rbx; 38 register_t sctx_rcx; 39 register_t sctx_rdx; --- 6 unchanged lines hidden (view full) --- 46 register_t sctx_r12; 47 register_t sctx_r13; 48 register_t sctx_r14; 49 register_t sctx_r15; 50}; 51 52void svm_launch(uint64_t pa, struct svm_regctx *); 53 |
58static __inline void 59disable_gintr(void) 60{ 61 62 __asm __volatile("clgi" : : :); 63} 64 65static __inline void 66enable_gintr(void) 67{ 68 69 __asm __volatile("stgi" : : :); 70} 71 | |
72#endif /* _SVM_H_ */ | 54#endif /* _SVM_H_ */ |