mirror of
https://github.com/genodelabs/genode.git
synced 2025-05-29 05:34:23 +00:00
parent
15d1beca1b
commit
9db4293d7a
@ -326,8 +326,6 @@ static int vmmr0_gmm_free_pages(GMMFREEPAGESREQ &request)
|
|||||||
|
|
||||||
GMMFREEPAGEDESC &page = request.aPages[i];
|
GMMFREEPAGEDESC &page = request.aPages[i];
|
||||||
|
|
||||||
Sup::Gmm::Pages one_page { 1 };
|
|
||||||
|
|
||||||
using Vmm_addr = Sup::Gmm::Vmm_addr;
|
using Vmm_addr = Sup::Gmm::Vmm_addr;
|
||||||
using Page_id = Sup::Gmm::Page_id;
|
using Page_id = Sup::Gmm::Page_id;
|
||||||
|
|
||||||
@ -335,7 +333,7 @@ static int vmmr0_gmm_free_pages(GMMFREEPAGESREQ &request)
|
|||||||
|
|
||||||
Vmm_addr const vmm_addr = sup_drv->gmm().vmm_addr(page_id);
|
Vmm_addr const vmm_addr = sup_drv->gmm().vmm_addr(page_id);
|
||||||
|
|
||||||
sup_drv->gmm().free(vmm_addr, one_page);
|
sup_drv->gmm().free(vmm_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return VINF_SUCCESS;
|
return VINF_SUCCESS;
|
||||||
@ -700,7 +698,12 @@ static void ioctl(SUPGETPAGINGMODE &request)
|
|||||||
|
|
||||||
static void ioctl(SUPPAGEFREE &request)
|
static void ioctl(SUPPAGEFREE &request)
|
||||||
{
|
{
|
||||||
warning("SUPPAGEFREE called");
|
using Vmm_addr = Sup::Gmm::Vmm_addr;
|
||||||
|
|
||||||
|
Vmm_addr const vmm_addr { (addr_t)request.u.In.pvR3 };
|
||||||
|
|
||||||
|
sup_drv->gmm().free(vmm_addr);
|
||||||
|
|
||||||
request.Hdr.rc = VINF_SUCCESS;
|
request.Hdr.rc = VINF_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,9 +121,9 @@ Sup::Gmm::Vmm_addr Sup::Gmm::alloc_from_reservation(Pages pages)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Sup::Gmm::free(Vmm_addr addr, Pages pages)
|
void Sup::Gmm::free(Vmm_addr addr)
|
||||||
{
|
{
|
||||||
_alloc.free((void *)(addr.value - _map.base.value), 1);
|
_alloc.free((void *)(addr.value - _map.base.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ class Sup::Gmm
|
|||||||
/**
|
/**
|
||||||
* Free pages in pool
|
* Free pages in pool
|
||||||
*/
|
*/
|
||||||
void free(Vmm_addr, Pages);
|
void free(Vmm_addr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get page ID for VMM address inside linear area
|
* Get page ID for VMM address inside linear area
|
||||||
|
Loading…
x
Reference in New Issue
Block a user