Resources: added mb_move() to complement rmove() for memory blocks

This commit is contained in:
Maria Matejka 2021-03-30 16:03:33 +02:00
parent 4635314cef
commit a9938b1792
2 changed files with 16 additions and 0 deletions

View file

@ -393,6 +393,21 @@ mb_realloc(void *m, unsigned size)
return b->data; return b->data;
} }
/**
* mb_move - move a memory block
* @m: memory block
* @p: target pool
*
* mb_move() moves the given memory block to another pool in the same way
* as rmove() moves a plain resource.
*/
void
mb_move(void *m, pool *p)
{
struct mblock *b = SKIP_BACK(struct mblock, data, m);
rmove(b, p);
}
/** /**
* mb_free - free a memory block * mb_free - free a memory block

View file

@ -53,6 +53,7 @@ extern pool root_pool;
void *mb_alloc(pool *, unsigned size); void *mb_alloc(pool *, unsigned size);
void *mb_allocz(pool *, unsigned size); void *mb_allocz(pool *, unsigned size);
void *mb_realloc(void *m, unsigned size); void *mb_realloc(void *m, unsigned size);
void mb_move(void *, pool *);
void mb_free(void *); void mb_free(void *);
/* Memory pools with linear allocation */ /* Memory pools with linear allocation */