diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-07-07 14:38:59 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-07-07 14:38:59 +0100 |
commit | c6b8bdfe3b47fe94999f5f85b518da09dd5aed9a (patch) | |
tree | f4a26a63175757fd01fb3c47786c7151191f5bb6 /xen/include/public/xen.h | |
parent | f12b7b5a0baf51c5aff3126ce269ed6972705afb (diff) | |
download | xen-c6b8bdfe3b47fe94999f5f85b518da09dd5aed9a.tar.gz xen-c6b8bdfe3b47fe94999f5f85b518da09dd5aed9a.tar.bz2 xen-c6b8bdfe3b47fe94999f5f85b518da09dd5aed9a.zip |
x86: extend mmu_update hypercall to allow update of foreign pagetables.
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
Diffstat (limited to 'xen/include/public/xen.h')
-rw-r--r-- | xen/include/public/xen.h | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h index af355ed678..1159055436 100644 --- a/xen/include/public/xen.h +++ b/xen/include/public/xen.h @@ -158,18 +158,26 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t); #define NR_VIRQS 24 /* - * MMU-UPDATE REQUESTS + * HYPERVISOR_mmu_update(reqs, count, pdone, foreigndom) * - * HYPERVISOR_mmu_update() accepts a list of (ptr, val) pairs. - * A foreigndom (FD) can be specified (or DOMID_SELF for none). - * Where the FD has some effect, it is described below. - * ptr[1:0] specifies the appropriate MMU_* command. + * @reqs is an array of mmu_update_t structures ((ptr, val) pairs). + * @count is the length of the above array. + * @pdone is an output parameter indicating number of completed operations + * @foreigndom[15:0]: FD, the expected owner of data pages referenced in this + * hypercall invocation. Can be DOMID_SELF. + * @foreigndom[31:16]: PFD, the expected owner of pagetable pages referenced + * in this hypercall invocation. The value of this field + * (x) encodes the PFD as follows: + * x == 0 => PFD == DOMID_SELF + * x != 0 => PFD == x - 1 * + * Sub-commands: ptr[1:0] specifies the appropriate MMU_* command. + * ------------- * ptr[1:0] == MMU_NORMAL_PT_UPDATE: - * Updates an entry in a page table. If updating an L1 table, and the new - * table entry is valid/present, the mapped frame must belong to the FD, if - * an FD has been specified. If attempting to map an I/O page then the - * caller assumes the privilege of the FD. + * Updates an entry in a page table belonging to PFD. If updating an L1 table, + * and the new table entry is valid/present, the mapped frame must belong to + * FD. If attempting to map an I/O page then the caller assumes the privilege + * of the FD. * FD == DOMID_IO: Permit /only/ I/O mappings, at the priv level of the caller. * FD == DOMID_XEN: Map restricted areas of Xen's heap space. * ptr[:2] -- Machine address of the page-table entry to modify. |