diff options
author | Andres Lagar-Cavilla <andres@lagarcavilla.org> | 2012-01-26 12:46:26 +0000 |
---|---|---|
committer | Andres Lagar-Cavilla <andres@lagarcavilla.org> | 2012-01-26 12:46:26 +0000 |
commit | 447e175bade9a36a638b8aa0a950aa0fb855623a (patch) | |
tree | e654b4277c514c7c2b831ae25a81172deeed2871 /tools/libxc/xenctrl.h | |
parent | 5cadc6c3e09dfedba6b65ff728c60d13af7262f8 (diff) | |
download | xen-447e175bade9a36a638b8aa0a950aa0fb855623a.tar.gz xen-447e175bade9a36a638b8aa0a950aa0fb855623a.tar.bz2 xen-447e175bade9a36a638b8aa0a950aa0fb855623a.zip |
Update memshr API and tools
This patch is the folded version of API updates, along with the associated tool
changes to ensure that the build is always consistent.
API updates:
- The source domain in the sharing calls is no longer assumed to be dom0.
- Previously, the mem sharing code would return an opaque handle to index
shared pages (and nominees) in its global hash table. By removing the hash
table, the handle becomes a version, to avoid sharing a stale version of a
page. Thus, libxc wrappers and tools need to be updated to recall the share
functions with the information needed to fetch the page (which they readily
have).
Tool updates:
The only (in-tree, that we know of) consumer of the mem sharing API is the
memshr tool. This is updated to use the new API.
Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org>
Signed-off-by: Adin Scannell <adin@scannell.ca>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'tools/libxc/xenctrl.h')
-rw-r--r-- | tools/libxc/xenctrl.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 37b0fd6f23..2b445085b6 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -1892,9 +1892,26 @@ int xc_memshr_nominate_gref(xc_interface *xch, domid_t domid, grant_ref_t gref, uint64_t *handle); -int xc_memshr_share(xc_interface *xch, +int xc_memshr_share_gfns(xc_interface *xch, + domid_t source_domain, + unsigned long source_gfn, uint64_t source_handle, + domid_t client_domain, + unsigned long client_gfn, uint64_t client_handle); +int xc_memshr_share_grefs(xc_interface *xch, + domid_t source_domain, + grant_ref_t source_gref, + uint64_t source_handle, + domid_t client_domain, + grant_ref_t client_gref, + uint64_t client_handle); +int xc_memshr_add_to_physmap(xc_interface *xch, + domid_t source_domain, + unsigned long source_gfn, + uint64_t source_handle, + domid_t client_domain, + unsigned long client_gfn); int xc_memshr_domain_resume(xc_interface *xch, domid_t domid); int xc_memshr_debug_gfn(xc_interface *xch, |