Lines Matching refs:space
212 LosVmSpace *space = LOS_MemAlloc(m_aucSysMem0, sizeof(LosVmSpace)); in OsCreateUserVmSpace() local
213 if (space == NULL) { in OsCreateUserVmSpace()
219 (VOID)LOS_MemFree(m_aucSysMem0, space); in OsCreateUserVmSpace()
224 retVal = OsUserVmSpaceInit(space, ttb); in OsCreateUserVmSpace()
227 (VOID)LOS_MemFree(m_aucSysMem0, space); in OsCreateUserVmSpace()
231 LOS_ListAdd(&space->archMmu.ptList, &(vmPage->node)); in OsCreateUserVmSpace()
233 return space; in OsCreateUserVmSpace()
451 OsDumpAspace(region->space); in OsInsertRegion()
480 LosVmSpace *space = NULL; in LOS_PaddrQuery() local
486 space = OsCurrProcessGet()->vmSpace; in LOS_PaddrQuery()
487 archMmu = &space->archMmu; in LOS_PaddrQuery()
532 newRegion->space = vmSpace; in LOS_RegionAlloc()
594 STATIC VOID OsFilePagesRemove(LosVmSpace *space, LosVmMapRegion *region) in OsFilePagesRemove() argument
599 if ((space == NULL) || (region == NULL) || (region->unTypeData.rf.vmFOps == NULL)) { in OsFilePagesRemove()
606 region->unTypeData.rf.vmFOps->remove(region, &space->archMmu, offset); in OsFilePagesRemove()
613 STATUS_T LOS_RegionFree(LosVmSpace *space, LosVmMapRegion *region) argument
615 if ((space == NULL) || (region == NULL)) {
616 VM_ERR("args error, aspace %p, region %p", space, region);
620 (VOID)LOS_MuxAcquire(&space->regionMux);
624 OsFilePagesRemove(space, region);
633 OsShmRegionFree(space, region);
638 OsDevPagesRemove(&space->archMmu, region->range.base, region->range.size >> PAGE_SHIFT);
640 OsAnonPagesRemove(&space->archMmu, region->range.base, region->range.size >> PAGE_SHIFT);
644 LOS_RbDelNode(&space->regionRbTree, ®ion->rbNode);
647 (VOID)LOS_MuxRelease(&space->regionMux);
651 LosVmMapRegion *OsVmRegionDup(LosVmSpace *space, LosVmMapRegion *oldRegion, VADDR_T vaddr, size_t s… argument
656 (VOID)LOS_MuxAcquire(&space->regionMux);
663 newRegion = LOS_RegionAlloc(space, vaddr, size, regionFlags, oldRegion->pgOff);
688 (VOID)LOS_MuxRelease(&space->regionMux);
695 LosVmSpace *space = oldRegion->space; local
700 LOS_RbDelNode(&space->regionRbTree, &oldRegion->rbNode);
703 newRegion = OsVmRegionDup(oldRegion->space, oldRegion, newRegionStart, size);
714 STATUS_T OsVmRegionAdjust(LosVmSpace *space, VADDR_T newRegionStart, size_t size) argument
720 region = LOS_RegionFind(space, newRegionStart);
729 region = LOS_RegionFind(space, nextRegionBase - 1);
741 STATUS_T OsRegionsRemove(LosVmSpace *space, VADDR_T regionBase, size_t size) argument
749 (VOID)LOS_MuxAcquire(&space->regionMux);
751 status = OsVmRegionAdjust(space, regionBase, size);
756 RB_SCAN_SAFE(&space->regionRbTree, pstRbNodeTemp, pstRbNodeNext)
762 status = LOS_RegionFree(space, regionTemp);
769 RB_SCAN_SAFE_END(&space->regionRbTree, pstRbNodeTemp, pstRbNodeNext)
772 (VOID)LOS_MuxRelease(&space->regionMux);
813 STATUS_T OsIsRegionCanExpand(LosVmSpace *space, LosVmMapRegion *region, size_t size) argument
817 if ((space == NULL) || (region == NULL)) {
821 nextRegion = (LosVmMapRegion *)LOS_RbSuccessorNode(&space->regionRbTree, ®ion->rbNode);
830 STATUS_T OsUnMMap(LosVmSpace *space, VADDR_T addr, size_t size) argument
834 (VOID)LOS_MuxAcquire(&space->regionMux);
835 STATUS_T status = OsRegionsRemove(space, addr, size);
843 (VOID)LOS_MuxRelease(&space->regionMux);
847 STATIC VOID OsVmSpaceAllRegionFree(LosVmSpace *space) argument
853 RB_SCAN_SAFE(&space->regionRbTree, pstRbNode, pstRbNodeNext)
859 STATUS_T ret = LOS_RegionFree(space, region);
861 VM_ERR("free region error, space %p, region %p", space, region);
863 RB_SCAN_SAFE_END(&space->regionRbTree, pstRbNode, pstRbNodeNext)
868 STATUS_T OsVmSpaceRegionFree(LosVmSpace *space) argument
870 if (space == NULL) {
874 if (space == &g_kVmSpace) {
879 (VOID)LOS_MuxAcquire(&space->regionMux);
880 OsVmSpaceAllRegionFree(space);
881 (VOID)LOS_MuxRelease(&space->regionMux);
886 STATUS_T LOS_VmSpaceFree(LosVmSpace *space) argument
888 if (space == NULL) {
892 if (space == &g_kVmSpace) {
898 (VOID)LOS_MuxAcquire(&space->regionMux);
900 LOS_ListDelete(&space->node);
902 OsVmSpaceAllRegionFree(space);
906 if (currentProcess->vmSpace == space) {
909 LOS_ArchMmuContextSwitch(&space->archMmu);
914 LOS_ArchMmuDestroy(&space->archMmu);
916 (VOID)LOS_MuxRelease(&space->regionMux);
917 (VOID)LOS_MuxDestroy(&space->regionMux);
920 LOS_MemFree(m_aucSysMem0, space);
924 BOOL LOS_IsRangeInSpace(const LosVmSpace *space, VADDR_T vaddr, size_t size) argument
927 if (vaddr < space->base || vaddr > space->base + space->size - 1) {
938 if (vaddr + size - 1 > space->base + space->size - 1) {
944 STATUS_T LOS_VmSpaceReserve(LosVmSpace *space, size_t size, VADDR_T vaddr) argument
948 if ((space == NULL) || (size == 0) || (!IS_PAGE_ALIGNED(vaddr) || !IS_PAGE_ALIGNED(size))) {
952 if (!LOS_IsRangeInSpace(space, vaddr, size)) {
957 (VOID)LOS_ArchMmuQuery(&space->archMmu, vaddr, NULL, ®ionFlags);
960 …LosVmMapRegion *region = LOS_RegionAlloc(space, vaddr, size, regionFlags | VM_MAP_REGION_FLAG_FIXE…
965 STATUS_T LOS_VaddrToPaddrMmap(LosVmSpace *space, VADDR_T vaddr, PADDR_T paddr, size_t len, UINT32 f… argument
978 if (space == NULL) {
979 space = OsCurrProcessGet()->vmSpace;
982 region = LOS_RegionFind(space, vaddr);
988 region = LOS_RegionAlloc(space, vaddr, len, flags, 0);
997 LOS_RegionFree(space, region);
1003 ret = LOS_ArchMmuMap(&space->archMmu, vaddr, paddr, 1, region->regionFlags);
1006 LOS_RegionFree(space, region);
1019 LosVmSpace *space = &g_vMallocSpace; local
1029 if ((size == 0) || (size > space->size)) {
1035 (VOID)LOS_MuxAcquire(&space->regionMux);
1044 …region = LOS_RegionAlloc(space, 0, size, VM_MAP_REGION_FLAG_PERM_READ | VM_MAP_REGION_FLAG_PERM_WR…
1054 ret = LOS_ArchMmuMap(&space->archMmu, va, pa, 1, region->regionFlags);
1061 (VOID)LOS_MuxRelease(&space->regionMux);
1066 (VOID)LOS_MuxRelease(&space->regionMux);
1072 LosVmSpace *space = &g_vMallocSpace; local
1081 (VOID)LOS_MuxAcquire(&space->regionMux);
1083 region = LOS_RegionFind(space, (VADDR_T)(UINTPTR)addr);
1089 ret = LOS_RegionFree(space, region);
1095 (VOID)LOS_MuxRelease(&space->regionMux);