|
|
|
@ -98,8 +98,9 @@ static int common_bind(struct common *c) |
|
|
|
if (xenstore_read_fe_int(&c->xendev, "event-channel", &c->xendev.remote_port) == -1) |
|
|
|
return -1; |
|
|
|
|
|
|
|
c->page = xenforeignmemory_map(xen_fmem, c->xendev.dom, |
|
|
|
PROT_READ | PROT_WRITE, 1, &mfn, NULL); |
|
|
|
c->page = qemu_xen_foreignmem_map(c->xendev.dom, NULL, |
|
|
|
PROT_READ | PROT_WRITE, 1, &mfn, |
|
|
|
NULL); |
|
|
|
if (c->page == NULL) |
|
|
|
return -1; |
|
|
|
|
|
|
|
@ -115,7 +116,7 @@ static void common_unbind(struct common *c) |
|
|
|
{ |
|
|
|
xen_pv_unbind_evtchn(&c->xendev); |
|
|
|
if (c->page) { |
|
|
|
xenforeignmemory_unmap(xen_fmem, c->page, 1); |
|
|
|
qemu_xen_foreignmem_unmap(c->page, 1); |
|
|
|
c->page = NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -500,15 +501,16 @@ static int xenfb_map_fb(struct XenFB *xenfb) |
|
|
|
fbmfns = g_new0(xen_pfn_t, xenfb->fbpages); |
|
|
|
|
|
|
|
xenfb_copy_mfns(mode, n_fbdirs, pgmfns, pd); |
|
|
|
map = xenforeignmemory_map(xen_fmem, xenfb->c.xendev.dom, |
|
|
|
PROT_READ, n_fbdirs, pgmfns, NULL); |
|
|
|
map = qemu_xen_foreignmem_map(xenfb->c.xendev.dom, NULL, PROT_READ, |
|
|
|
n_fbdirs, pgmfns, NULL); |
|
|
|
if (map == NULL) |
|
|
|
goto out; |
|
|
|
xenfb_copy_mfns(mode, xenfb->fbpages, fbmfns, map); |
|
|
|
xenforeignmemory_unmap(xen_fmem, map, n_fbdirs); |
|
|
|
qemu_xen_foreignmem_unmap(map, n_fbdirs); |
|
|
|
|
|
|
|
xenfb->pixels = xenforeignmemory_map(xen_fmem, xenfb->c.xendev.dom, |
|
|
|
PROT_READ, xenfb->fbpages, fbmfns, NULL); |
|
|
|
xenfb->pixels = qemu_xen_foreignmem_map(xenfb->c.xendev.dom, NULL, |
|
|
|
PROT_READ, xenfb->fbpages, |
|
|
|
fbmfns, NULL); |
|
|
|
if (xenfb->pixels == NULL) |
|
|
|
goto out; |
|
|
|
|
|
|
|
@ -927,7 +929,7 @@ static void fb_disconnect(struct XenLegacyDevice *xendev) |
|
|
|
* Replacing the framebuffer with anonymous shared memory |
|
|
|
* instead. This releases the guest pages and keeps qemu happy. |
|
|
|
*/ |
|
|
|
xenforeignmemory_unmap(xen_fmem, fb->pixels, fb->fbpages); |
|
|
|
qemu_xen_foreignmem_unmap(fb->pixels, fb->fbpages); |
|
|
|
fb->pixels = mmap(fb->pixels, fb->fbpages * XC_PAGE_SIZE, |
|
|
|
PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, |
|
|
|
-1, 0); |
|
|
|
|