Resources: added mb_move() to complement rmove() for memory blocks
This commit is contained in:
parent
4635314cef
commit
a9938b1792
2 changed files with 16 additions and 0 deletions
|
@ -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
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
Loading…
Reference in a new issue