MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / _insert_new_varea

Function _insert_new_varea

components/mm/mm_aspace.c:461–487  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

459static rt_varea_t _varea_create(void *start, rt_size_t size);
460
461static int _insert_new_varea(rt_aspace_t aspace, rt_varea_t *pvarea,
462 void *alloc_va, rt_mm_va_hint_t hint)
463{
464 int err;
465 rt_varea_t varea = *pvarea;
466 if (varea == RT_NULL)
467 {
468 /* no preallocate buffer is provided, then create one */
469 varea = _varea_create(hint->prefer, hint->map_size);
470 hint->flags &= ~MMF_STATIC_ALLOC;
471 *pvarea = varea;
472 }
473
474 if (varea)
475 {
476 varea->start = alloc_va;
477 _aspace_bst_insert(aspace, varea);
478 err = RT_EOK;
479 }
480 else
481 {
482 LOG_W("%s: Out of memory", __func__);
483 err = -RT_ENOMEM;
484 }
485
486 return err;
487}
488
489static inline void _varea_post_install(rt_varea_t varea, rt_aspace_t aspace,
490 rt_size_t attr, rt_size_t flags,

Callers 1

_varea_installFunction · 0.85

Calls 2

_varea_createFunction · 0.85
_aspace_bst_insertFunction · 0.70

Tested by

no test coverage detected