Lines Matching full:seg
60 STATIC VOID OsVmPhysLruInit(struct VmPhysSeg *seg) in OsVmPhysLruInit() argument
64 LOS_SpinInit(&seg->lruLock); in OsVmPhysLruInit()
66 LOS_SpinLockSave(&seg->lruLock, &intSave); in OsVmPhysLruInit()
68 seg->lruSize[i] = 0; in OsVmPhysLruInit()
69 LOS_ListInit(&seg->lruList[i]); in OsVmPhysLruInit()
71 LOS_SpinUnlockRestore(&seg->lruLock, intSave); in OsVmPhysLruInit()
76 struct VmPhysSeg *seg = NULL; in OsVmPhysSegCreate() local
82 seg = &g_vmPhysSeg[g_vmPhysSegNum++]; in OsVmPhysSegCreate()
83 for (; (seg > g_vmPhysSeg) && ((seg - 1)->start > (start + size)); seg--) { in OsVmPhysSegCreate()
84 *seg = *(seg - 1); in OsVmPhysSegCreate()
86 seg->start = start; in OsVmPhysSegCreate()
87 seg->size = size; in OsVmPhysSegCreate()
101 VM_ERR("create phys seg failed"); in OsVmPhysSegAdd()
128 STATIC INLINE VOID OsVmPhysFreeListInit(struct VmPhysSeg *seg) in OsVmPhysFreeListInit() argument
134 LOS_SpinInit(&seg->freeListLock); in OsVmPhysFreeListInit()
136 LOS_SpinLockSave(&seg->freeListLock, &intSave); in OsVmPhysFreeListInit()
138 list = &seg->freeList[i]; in OsVmPhysFreeListInit()
142 LOS_SpinUnlockRestore(&seg->freeListLock, intSave); in OsVmPhysFreeListInit()
147 struct VmPhysSeg *seg = NULL; in OsVmPhysInit() local
152 seg = &g_vmPhysSeg[i]; in OsVmPhysInit()
153 seg->pageBase = &g_vmPageArray[nPages]; in OsVmPhysInit()
154 nPages += seg->size >> PAGE_SHIFT; in OsVmPhysInit()
155 OsVmPhysFreeListInit(seg); in OsVmPhysInit()
156 OsVmPhysLruInit(seg); in OsVmPhysInit()
162 struct VmPhysSeg *seg = NULL; in OsVmPhysFreeListAddUnsafe() local
170 seg = &g_vmPhysSeg[page->segID]; in OsVmPhysFreeListAddUnsafe()
172 list = &seg->freeList[order]; in OsVmPhysFreeListAddUnsafe()
179 struct VmPhysSeg *seg = NULL; in OsVmPhysFreeListDelUnsafe() local
186 seg = &g_vmPhysSeg[page->segID]; in OsVmPhysFreeListDelUnsafe()
187 list = &seg->freeList[page->order]; in OsVmPhysFreeListDelUnsafe()
208 struct VmPhysSeg *seg = NULL; in OsVmPhysToPage() local
214 seg = &g_vmPhysSeg[segID]; in OsVmPhysToPage()
215 if ((pa < seg->start) || (pa >= (seg->start + seg->size))) { in OsVmPhysToPage()
219 offset = pa - seg->start; in OsVmPhysToPage()
220 return (seg->pageBase + (offset >> PAGE_SHIFT)); in OsVmPhysToPage()
247 struct VmPhysSeg *seg = NULL; in OsVmVaddrToPage() local
252 seg = &g_vmPhysSeg[segID]; in OsVmVaddrToPage()
253 if ((pa >= seg->start) && (pa < (seg->start + seg->size))) { in OsVmVaddrToPage()
254 return seg->pageBase + ((pa - seg->start) >> PAGE_SHIFT); in OsVmVaddrToPage()
270 STATIC LosVmPage *OsVmPhysLargeAlloc(struct VmPhysSeg *seg, size_t nPages) in OsVmPhysLargeAlloc() argument
279 list = &seg->freeList[VM_LIST_ORDER_MAX - 1]; in OsVmPhysLargeAlloc()
283 if (paEnd > (seg->start + seg->size)) { in OsVmPhysLargeAlloc()
289 if ((paStart >= paEnd) || (paStart < seg->start) || in OsVmPhysLargeAlloc()
290 (paStart >= (seg->start + seg->size))) { in OsVmPhysLargeAlloc()
293 tmp = &seg->pageBase[(paStart - seg->start) >> PAGE_SHIFT]; in OsVmPhysLargeAlloc()
306 STATIC LosVmPage *OsVmPhysPagesAlloc(struct VmPhysSeg *seg, size_t nPages) in OsVmPhysPagesAlloc() argument
317 list = &seg->freeList[newOrder]; in OsVmPhysPagesAlloc()
326 page = OsVmPhysLargeAlloc(seg, nPages); in OsVmPhysPagesAlloc()
400 struct VmPhysSeg *seg = NULL; in OsVmPhysPagesGet() local
405 seg = &g_vmPhysSeg[segID]; in OsVmPhysPagesGet()
406 LOS_SpinLockSave(&seg->freeListLock, &intSave); in OsVmPhysPagesGet()
407 page = OsVmPhysPagesAlloc(seg, nPages); in OsVmPhysPagesGet()
412 LOS_SpinUnlockRestore(&seg->freeListLock, intSave); in OsVmPhysPagesGet()
415 LOS_SpinUnlockRestore(&seg->freeListLock, intSave); in OsVmPhysPagesGet()
439 struct VmPhysSeg *seg = NULL; in LOS_PhysPagesFreeContiguous() local
453 seg = &g_vmPhysSeg[page->segID]; in LOS_PhysPagesFreeContiguous()
454 LOS_SpinLockSave(&seg->freeListLock, &intSave); in LOS_PhysPagesFreeContiguous()
458 LOS_SpinUnlockRestore(&seg->freeListLock, intSave); in LOS_PhysPagesFreeContiguous()
474 struct VmPhysSeg *seg = NULL; in LOS_PaddrToKVaddr() local
482 seg = &g_vmPhysSeg[segID]; in LOS_PaddrToKVaddr()
483 if ((paddr >= seg->start) && (paddr < (seg->start + seg->size))) { in LOS_PaddrToKVaddr()
494 struct VmPhysSeg *seg = NULL; in LOS_PhysPageFree() local
501 seg = &g_vmPhysSeg[page->segID]; in LOS_PhysPageFree()
502 LOS_SpinLockSave(&seg->freeListLock, &intSave); in LOS_PhysPageFree()
507 LOS_SpinUnlockRestore(&seg->freeListLock, intSave); in LOS_PhysPageFree()
546 LosVmPhysSeg *seg = NULL; in OsPhysSharePageCopy() local
559 seg = &g_vmPhysSeg[oldPage->segID]; in OsPhysSharePageCopy()
560 LOS_SpinLockSave(&seg->freeListLock, &intSave); in OsPhysSharePageCopy()
567 LOS_SpinUnlockRestore(&seg->freeListLock, intSave); in OsPhysSharePageCopy()
577 LOS_SpinUnlockRestore(&seg->freeListLock, intSave); in OsPhysSharePageCopy()
604 LosVmPhysSeg *seg = NULL; in LOS_PhysPagesFree() local
614 seg = &g_vmPhysSeg[page->segID]; in LOS_PhysPagesFree()
615 LOS_SpinLockSave(&seg->freeListLock, &intSave); in LOS_PhysPagesFree()
618 LOS_SpinUnlockRestore(&seg->freeListLock, intSave); in LOS_PhysPagesFree()