Lines Matching refs:mb

170 static void set_inuse(memblk_t *mb, uint32_t handle)  in set_inuse()  argument
172 mb->magic = MEMBLK_MAGIC_INUSE; in set_inuse()
173 mb->handle = handle; in set_inuse()
176 static void set_avail(memblk_t *mb) in set_avail() argument
178 mb->magic = MEMBLK_MAGIC_AVAIL; in set_avail()
179 mb->handle = PMM_HANDLE_ANONYMOUS; in set_avail()
218 split_memblk(memblk_t *mb, uint32_t size) in split_memblk() argument
220 memblk_t *sb = (void *)memblk_buffer(mb) + size; in split_memblk()
223 if ( (memblk_bufsize(mb) - size) < MIN_MEMBLK_SIZE) in split_memblk()
224 return mb; in split_memblk()
226 sb->next = mb->next; in split_memblk()
229 mb->next = sb; in split_memblk()
245 collect_avail_memblks(heap_t *heap, memblk_t *mb) in collect_avail_memblks() argument
247 memblk_t *nb = mb->next; in collect_avail_memblks()
252 mb->next = nb; in collect_avail_memblks()
258 memblk_t *mb = (memblk_t *)ALIGN_UP(from_addr, HEAP_ALIGNMENT); in pmm_init_heap() local
260 mb->next = (memblk_t *)ALIGN_DOWN(to_addr, HEAP_ALIGNMENT); in pmm_init_heap()
261 set_avail(mb); in pmm_init_heap()
263 heap->head = mb; in pmm_init_heap()
264 heap->end = mb->next; in pmm_init_heap()
293 memblk_t *mb; in pmm_max_avail_length() local
296 for_each_memblk ( heap, mb ) in pmm_max_avail_length()
298 if ( !memblk_is_avail(mb) ) in pmm_max_avail_length()
300 collect_avail_memblks(heap, mb); in pmm_max_avail_length()
301 size = memblk_bufsize(mb); in pmm_max_avail_length()
312 memblk_t *mb; in first_fit() local
318 for_each_memblk ( heap, mb ) in first_fit()
320 if ( memblk_is_avail(mb) ) in first_fit()
322 collect_avail_memblks(heap, mb); in first_fit()
326 uint32_t addr = memblk_buffer(mb); in first_fit()
333 if ( (offset + size) > memblk_bufsize(mb) ) in first_fit()
336 mb = split_memblk(mb, offset - MEMBLK_HEADER_SIZE); in first_fit()
337 return mb; in first_fit()
341 if ( size <= memblk_bufsize(mb) ) in first_fit()
342 return mb; in first_fit()
346 ASSERT(memblk_is_inuse(mb), return NULL); in first_fit()
349 if ( (handle != PMM_HANDLE_ANONYMOUS) && (mb->handle == handle) ) in first_fit()
360 memblk_t *mb; in pmm_find_handle() local
365 for_each_memblk ( heap, mb ) in pmm_find_handle()
366 if ( mb->handle == handle ) in pmm_find_handle()
367 return mb; in pmm_find_handle()
401 memblk_t *mb; in pmmAllocate() local
424 mb = first_fit(heap, size, handle, flags); in pmmAllocate()
426 if ( mb == NULL ) in pmmAllocate()
432 memblk_t *nb = mb->next; in pmmAllocate()
439 split_memblk(mb, size); in pmmAllocate()
440 set_inuse(mb, handle); in pmmAllocate()
442 return memblk_buffer(mb); in pmmAllocate()
455 memblk_t *mb; in pmmFind() local
460 mb = pmm_find_handle(&pmm_data.heap, handle); in pmmFind()
461 if ( mb == NULL ) in pmmFind()
462 mb = pmm_find_handle(&pmm_data.ext_heap, handle); in pmmFind()
464 return mb ? memblk_buffer(mb) : 0; in pmmFind()
477 memblk_t *mb = buffer_memblk(buffer); in pmmDeallocate() local
479 if ( !memblk_is_inuse(mb) ) in pmmDeallocate()
482 set_avail(mb); in pmmDeallocate()