diff options
author | Karolina Drobnik <karolinadrobnik@gmail.com> | 2022-02-02 12:03:00 +0100 |
---|---|---|
committer | Mike Rapoport <rppt@linux.ibm.com> | 2022-02-20 08:44:37 +0200 |
commit | aa0eab8639ff0fb1edf18b8616e6ae2c38ca5854 (patch) | |
tree | ee3e5dd27223af9798299eb76c11047d5ee7f340 /tools/lib/slab.c | |
parent | 754e0b0e35608ed5206d6a67a791563c631cec07 (diff) |
tools: Move gfp.h and slab.h from radix-tree to lib
Merge radix-tree definitions from gfp.h and slab.h with these
in tools/lib, so they can be used in other test suites.
Fix style issues in slab.h. Update radix-tree test files.
Signed-off-by: Karolina Drobnik <karolinadrobnik@gmail.com>
Signed-off-by: Mike Rapoport <rppt@kernel.org>
Link: https://lore.kernel.org/r/b76ddb8a12fdf9870b55c1401213e44f5e0d0da3.1643796665.git.karolinadrobnik@gmail.com
Diffstat (limited to 'tools/lib/slab.c')
-rw-r--r-- | tools/lib/slab.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/lib/slab.c b/tools/lib/slab.c new file mode 100644 index 000000000000..959997fb0652 --- /dev/null +++ b/tools/lib/slab.c @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include <stdio.h> +#include <string.h> + +#include <urcu/uatomic.h> +#include <linux/slab.h> +#include <malloc.h> +#include <linux/gfp.h> + +int kmalloc_nr_allocated; +int kmalloc_verbose; + +void *kmalloc(size_t size, gfp_t gfp) +{ + void *ret; + + if (!(gfp & __GFP_DIRECT_RECLAIM)) + return NULL; + + ret = malloc(size); + uatomic_inc(&kmalloc_nr_allocated); + if (kmalloc_verbose) + printf("Allocating %p from malloc\n", ret); + if (gfp & __GFP_ZERO) + memset(ret, 0, size); + return ret; +} + +void kfree(void *p) +{ + if (!p) + return; + uatomic_dec(&kmalloc_nr_allocated); + if (kmalloc_verbose) + printf("Freeing %p to malloc\n", p); + free(p); +} |