| 2148 | } |
| 2149 | |
| 2150 | static register_t * |
| 2151 | swctx_regptr(struct svm_regctx *regctx, int reg) |
| 2152 | { |
| 2153 | |
| 2154 | switch (reg) { |
| 2155 | case VM_REG_GUEST_RBX: |
| 2156 | return (®ctx->sctx_rbx); |
| 2157 | case VM_REG_GUEST_RCX: |
| 2158 | return (®ctx->sctx_rcx); |
| 2159 | case VM_REG_GUEST_RDX: |
| 2160 | return (®ctx->sctx_rdx); |
| 2161 | case VM_REG_GUEST_RDI: |
| 2162 | return (®ctx->sctx_rdi); |
| 2163 | case VM_REG_GUEST_RSI: |
| 2164 | return (®ctx->sctx_rsi); |
| 2165 | case VM_REG_GUEST_RBP: |
| 2166 | return (®ctx->sctx_rbp); |
| 2167 | case VM_REG_GUEST_R8: |
| 2168 | return (®ctx->sctx_r8); |
| 2169 | case VM_REG_GUEST_R9: |
| 2170 | return (®ctx->sctx_r9); |
| 2171 | case VM_REG_GUEST_R10: |
| 2172 | return (®ctx->sctx_r10); |
| 2173 | case VM_REG_GUEST_R11: |
| 2174 | return (®ctx->sctx_r11); |
| 2175 | case VM_REG_GUEST_R12: |
| 2176 | return (®ctx->sctx_r12); |
| 2177 | case VM_REG_GUEST_R13: |
| 2178 | return (®ctx->sctx_r13); |
| 2179 | case VM_REG_GUEST_R14: |
| 2180 | return (®ctx->sctx_r14); |
| 2181 | case VM_REG_GUEST_R15: |
| 2182 | return (®ctx->sctx_r15); |
| 2183 | case VM_REG_GUEST_DR0: |
| 2184 | return (®ctx->sctx_dr0); |
| 2185 | case VM_REG_GUEST_DR1: |
| 2186 | return (®ctx->sctx_dr1); |
| 2187 | case VM_REG_GUEST_DR2: |
| 2188 | return (®ctx->sctx_dr2); |
| 2189 | case VM_REG_GUEST_DR3: |
| 2190 | return (®ctx->sctx_dr3); |
| 2191 | default: |
| 2192 | return (NULL); |
| 2193 | } |
| 2194 | } |
| 2195 | |
| 2196 | static int |
| 2197 | svm_getreg(void *arg, int vcpu, int ident, uint64_t *val) |
no outgoing calls
no test coverage detected