| Index: fusl/src/malloc/malloc_usable_size.c
|
| diff --git a/fusl/src/malloc/malloc_usable_size.c b/fusl/src/malloc/malloc_usable_size.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8cccd9d8d68b2e4fc6a230a7e9f0537a60c2353a
|
| --- /dev/null
|
| +++ b/fusl/src/malloc/malloc_usable_size.c
|
| @@ -0,0 +1,17 @@
|
| +#include <malloc.h>
|
| +
|
| +void *(*const __realloc_dep)(void *, size_t) = realloc;
|
| +
|
| +struct chunk {
|
| + size_t psize, csize;
|
| + struct chunk *next, *prev;
|
| +};
|
| +
|
| +#define OVERHEAD (2*sizeof(size_t))
|
| +#define CHUNK_SIZE(c) ((c)->csize & -2)
|
| +#define MEM_TO_CHUNK(p) (struct chunk *)((char *)(p) - OVERHEAD)
|
| +
|
| +size_t malloc_usable_size(void *p)
|
| +{
|
| + return CHUNK_SIZE(MEM_TO_CHUNK(p)) - OVERHEAD;
|
| +}
|
|
|