Lines Matching defs:cPages

149 DECLINLINE(void) supR3TouchPages(void *pv, size_t cPages)
152 while (cPages-- > 0)
906 SUPR3DECL(int) SUPR3PageAlloc(size_t cPages, void **ppvPages)
913 AssertReturn(cPages > 0, VERR_PAGE_COUNT_OUT_OF_RANGE);
918 return suplibOsPageAlloc(&g_supLibData, cPages, ppvPages);
922 SUPR3DECL(int) SUPR3PageFree(void *pvPages, size_t cPages)
928 AssertReturn(cPages > 0, VERR_PAGE_COUNT_OUT_OF_RANGE);
933 return suplibOsPageFree(&g_supLibData, pvPages, cPages);
944 * @param cPages Number of pages.
948 SUPR3DECL(int) supR3PageLock(void *pvStart, size_t cPages, PSUPPAGE paPages)
961 size_t iPage = cPages;
971 PSUPPAGELOCK pReq = (PSUPPAGELOCK)RTMemTmpAllocZ(SUP_IOCTL_PAGE_LOCK_SIZE(cPages));
977 pReq->Hdr.cbOut = SUP_IOCTL_PAGE_LOCK_SIZE_OUT(cPages);
981 pReq->u.In.cPages = (uint32_t)cPages; AssertRelease(pReq->u.In.cPages == cPages);
982 rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_PAGE_LOCK, pReq, SUP_IOCTL_PAGE_LOCK_SIZE(cPages));
987 for (uint32_t iPage = 0; iPage < cPages; iPage++)
1069 static int supPagePageAllocNoKernelFallback(size_t cPages, void **ppvPages, PSUPPAGE paPages)
1071 int rc = suplibOsPageAlloc(&g_supLibData, cPages, ppvPages);
1075 paPages = (PSUPPAGE)alloca(sizeof(paPages[0]) * cPages);
1076 rc = supR3PageLock(*ppvPages, cPages, paPages);
1078 suplibOsPageFree(&g_supLibData, *ppvPages, cPages);
1084 SUPR3DECL(int) SUPR3PageAllocEx(size_t cPages, uint32_t fFlags, void **ppvPages, PRTR0PTR pR0Ptr, PSUPPAGE paPages)
1095 AssertMsgReturn(cPages > 0 && cPages <= VBOX_MAX_ALLOC_PAGE_COUNT, ("cPages=%zu\n", cPages), VERR_PAGE_COUNT_OUT_OF_RANGE);
1101 void *pv = RTMemPageAllocZ(cPages * PAGE_SIZE);
1108 for (size_t iPage = 0; iPage < cPages; iPage++)
1122 return supPagePageAllocNoKernelFallback(cPages, ppvPages, paPages);
1128 PSUPPAGEALLOCEX pReq = (PSUPPAGEALLOCEX)RTMemTmpAllocZ(SUP_IOCTL_PAGE_ALLOC_EX_SIZE(cPages));
1134 pReq->Hdr.cbOut = SUP_IOCTL_PAGE_ALLOC_EX_SIZE_OUT(cPages);
1137 pReq->u.In.cPages = (uint32_t)cPages; AssertRelease(pReq->u.In.cPages == cPages);
1142 rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_PAGE_ALLOC_EX, pReq, SUP_IOCTL_PAGE_ALLOC_EX_SIZE(cPages));
1152 for (size_t iPage = 0; iPage < cPages; iPage++)
1159 supR3TouchPages(pReq->u.Out.pvR3, cPages);
1166 rc = supPagePageAllocNoKernelFallback(cPages, ppvPages, paPages);
1260 SUPR3DECL(int) SUPR3PageFreeEx(void *pvPages, size_t cPages)
1266 AssertReturn(cPages > 0, VERR_PAGE_COUNT_OUT_OF_RANGE);
1271 RTMemPageFree(pvPages, cPages * PAGE_SIZE);
1279 NOREF(cPages);
1297 rc = suplibOsPageFree(&g_supLibData, pvPages, cPages);
1304 SUPR3DECL(void *) SUPR3ContAlloc(size_t cPages, PRTR0PTR pR0Ptr, PRTHCPHYS pHCPhys)
1315 AssertMsgReturn(cPages > 0 && cPages < 256, ("cPages=%d must be > 0 and < 256\n", cPages), NULL);
1320 void *pv = RTMemPageAllocZ(cPages * PAGE_SIZE);
1338 Req.u.In.cPages = (uint32_t)cPages;
1347 supR3TouchPages(Req.u.Out.pvR3, cPages);
1356 SUPR3DECL(int) SUPR3ContFree(void *pv, size_t cPages)
1364 AssertReturn(cPages > 0, VERR_PAGE_COUNT_OUT_OF_RANGE);
1369 RTMemPageFree(pv, cPages * PAGE_SIZE);
1391 SUPR3DECL(int) SUPR3LowAlloc(size_t cPages, void **ppvPages, PRTR0PTR ppvPagesR0, PSUPPAGE paPages)
1399 AssertMsgReturn(cPages > 0 && cPages < 256, ("cPages=%d must be > 0 and < 256\n", cPages), VERR_PAGE_COUNT_OUT_OF_RANGE);
1404 *ppvPages = RTMemPageAllocZ((size_t)cPages * PAGE_SIZE);
1410 size_t iPage = cPages;
1420 PSUPLOWALLOC pReq = (PSUPLOWALLOC)RTMemTmpAllocZ(SUP_IOCTL_LOW_ALLOC_SIZE(cPages));
1426 pReq->Hdr.cbOut = SUP_IOCTL_LOW_ALLOC_SIZE_OUT(cPages);
1429 pReq->u.In.cPages = (uint32_t)cPages; AssertRelease(pReq->u.In.cPages == cPages);
1430 rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_LOW_ALLOC, pReq, SUP_IOCTL_LOW_ALLOC_SIZE(cPages));
1439 for (size_t iPage = 0; iPage < cPages; iPage++)
1447 supR3TouchPages(pReq->u.Out.pvR3, cPages);
1459 SUPR3DECL(int) SUPR3LowFree(void *pv, size_t cPages)
1467 AssertReturn(cPages > 0, VERR_PAGE_COUNT_OUT_OF_RANGE);
1472 RTMemPageFree(pv, cPages * PAGE_SIZE);