diff options
Diffstat (limited to 'usr/src/lib/libvmmapi/common/vmmapi.c')
-rw-r--r-- | usr/src/lib/libvmmapi/common/vmmapi.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/usr/src/lib/libvmmapi/common/vmmapi.c b/usr/src/lib/libvmmapi/common/vmmapi.c index b4c96d5455..9589d09ae1 100644 --- a/usr/src/lib/libvmmapi/common/vmmapi.c +++ b/usr/src/lib/libvmmapi/common/vmmapi.c @@ -70,9 +70,6 @@ __FBSDID("$FreeBSD$"); #include <machine/vmm.h> #include <machine/vmm_dev.h> -#ifndef __FreeBSD__ -#include <sys/vmm_impl.h> -#endif #include "vmmapi.h" @@ -819,6 +816,25 @@ vm_inject_exception(struct vmctx *ctx, int vcpu, int vector, int errcode_valid, return (ioctl(ctx->fd, VM_INJECT_EXCEPTION, &exc)); } +#ifndef __FreeBSD__ +void +vm_inject_fault(struct vmctx *ctx, int vcpu, int vector, int errcode_valid, + int errcode) +{ + int error; + struct vm_exception exc; + + exc.cpuid = vcpu; + exc.vector = vector; + exc.error_code = errcode; + exc.error_code_valid = errcode_valid; + exc.restart_instruction = 1; + error = ioctl(ctx->fd, VM_INJECT_EXCEPTION, &exc); + + assert(error == 0); +} +#endif /* __FreeBSD__ */ + int vm_apicid2vcpu(struct vmctx *ctx, int apicid) { |