Lines Matching refs:order

109     void* AllocateByOrder(s32 order)  in AllocateByOrder()  argument
111 NN_ASSERT(order >= 0); in AllocateByOrder()
113 NN_LOG_DEBUG("demands order %d\n", order); in AllocateByOrder()
116 Page* pPage = GetFreePage(order); in AllocateByOrder()
123 NN_LOG_DEBUG("returns order %d, address 0x%08X\n", order, addr); in AllocateByOrder()
134 void Free(void* p, s32 order) in Free() argument
146 NN_ASSERT(GetIndexFromPage(*pPage) % (1 << order) == 0); in Free()
148 NN_LOG_DEBUG("addr = 0x%08x, order = %d, pPage = 0x%08x\n", p, order, pPage); in Free()
150 JointBuddies(pPage, order); in Free()
296 Page* GetFreePage(s32 order) in GetFreePage() argument
298 for(int i = order; i < MAX_ORDER; i++) in GetFreePage()
306 DivideBuddies(pPage, order, i); in GetFreePage()
312 NN_LOG_WARN("No free pages order %d\n", order); in GetFreePage()
327 void JointBuddies(Page* pPage, s32 order) in JointBuddies() argument
330 while(order < MAX_ORDER - 1) in JointBuddies()
332 Page* pBuddyPage = GetBuddy(pPage, order); in JointBuddies()
335 if(m_FreeArea[order].Remove(pBuddyPage)) in JointBuddies()
340 if(!IsAlignedToOrder(pPage, order + 1)) in JointBuddies()
345 …0x%08X, order %d", GetAddressFromPage(*pPage), GetAddressFromPage(*GetBuddy(pPage, order)), order); in JointBuddies()
348 order++; in JointBuddies()
358 … NN_LOG_DEBUG("adding a free page, address 0x%08X, order %d", GetAddressFromPage(*pPage), order ); in JointBuddies()
359 m_FreeArea[order].PushBack(pPage); in JointBuddies()
377 inline Page* GetBuddy(Page* pPage, s32 order) in GetBuddy() argument
380 if(IsAlignedToOrder(pPage, order + 1)) in GetBuddy()
382 return pPage + GetNumPagesByOrder(order); in GetBuddy()
386 return pPage - GetNumPagesByOrder(order); in GetBuddy()
390 inline bool IsAlignedToOrder(Page* pPage, s32 order) const in IsAlignedToOrder() argument
392 return GetIndexFromPage(*pPage) % GetNumPagesByOrder(order) == 0; in IsAlignedToOrder()
395 inline int GetNumPagesByOrder(s32 order) const in GetNumPagesByOrder() argument
397 return (1 << order); in GetNumPagesByOrder()
402 for(int order = 0; order <= MAX_ORDER; order++) in GetNearestHigherOrder() local
404 if( numPages <= (1 << order) ) { in GetNearestHigherOrder()
405 return order; in GetNearestHigherOrder()
415 for(int order = 0; order <= MAX_ORDER; order++) in GetNearestLowerOrder() local
417 if( numPages < (1 << order) ) { in GetNearestLowerOrder()
418 return order - 1; in GetNearestLowerOrder()
465 void* AllocateByOrder(s32 order) in AllocateByOrder() argument
468 return Base::AllocateByOrder(order); in AllocateByOrder()
478 void Free(void* p, s32 order) in Free() argument
481 Base::Free(p, order); in Free()
536 s32 order = m_Heap->GetOrder(size + ALIGN); variable
537 void* p = m_Heap->Allocate(order);
542 NN_LOG_DEBUG("Alloc size %d, order %d\n", size + ALIGN, order);
543 *reinterpret_cast<s32*>(p) = order;
554 s32 order = *reinterpret_cast<s32*>(p); in Free() local
555 m_Heap->Free(p, order); in Free()