mem_access: added trap injection to libxc

* Carries forward the trap injection hypercall into libxc

Signed-off-by: Joe Epstein <jepstein98@gmail.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
This commit is contained in:
Joe Epstein committed 2011-01-07 11:54:50 +00:00
1 parent df402bb9f0
commit cd0e05deeb
2 files changed
+40

No files matched your search

+32
View File
@@ -572,6 +572,38 @@ int xc_hvm_get_mem_access(
return rc;
}
int xc_hvm_inject_trap(
xc_interface *xch, domid_t dom, int vcpu, uint32_t trap, uint32_t error_code,
uint64_t cr2)
{
DECLARE_HYPERCALL;
DECLARE_HYPERCALL_BUFFER(struct xen_hvm_inject_trap, arg);
int rc;
arg = xc_hypercall_buffer_alloc(xch, arg, sizeof(*arg));
if ( arg == NULL )
{
PERROR("Could not allocate memory for xc_hvm_inject_trap hypercall");
return -1;
}
arg->domid = dom;
arg->vcpuid = vcpu;
arg->trap = trap;
arg->error_code = error_code;
arg->cr2 = cr2;
hypercall.op = __HYPERVISOR_hvm_op;
hypercall.arg[0] = HVMOP_inject_trap;
hypercall.arg[1] = HYPERCALL_BUFFER_AS_ARG(arg);
rc = do_xen_hypercall(xch, &hypercall);
xc_hypercall_buffer_free(xch, arg);
return rc;
}
/*
* Local variables:
* mode: C
+8
View File
@@ -1425,6 +1425,14 @@ int xc_hvm_set_mem_access(
int xc_hvm_get_mem_access(
xc_interface *xch, domid_t dom, uint64_t pfn, hvmmem_access_t* memaccess);
/*
* Injects a hardware/software CPU trap, to take effect the next time the HVM
* resumes.
*/
int xc_hvm_inject_trap(
xc_interface *xch, domid_t dom, int vcpu, uint32_t trap, uint32_t error_code,
uint64_t cr2);
/*
* LOGGING AND ERROR REPORTING
*/
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.