brintos

brintos / linux-shallow public Read only

0
0
Text · 664 B · 959997f Raw
39 lines · c
1// SPDX-License-Identifier: GPL-2.02 3#include <stdio.h>4#include <string.h>5 6#include <urcu/uatomic.h>7#include <linux/slab.h>8#include <malloc.h>9#include <linux/gfp.h>10 11int kmalloc_nr_allocated;12int kmalloc_verbose;13 14void *kmalloc(size_t size, gfp_t gfp)15{16	void *ret;17 18	if (!(gfp & __GFP_DIRECT_RECLAIM))19		return NULL;20 21	ret = malloc(size);22	uatomic_inc(&kmalloc_nr_allocated);23	if (kmalloc_verbose)24		printf("Allocating %p from malloc\n", ret);25	if (gfp & __GFP_ZERO)26		memset(ret, 0, size);27	return ret;28}29 30void kfree(void *p)31{32	if (!p)33		return;34	uatomic_dec(&kmalloc_nr_allocated);35	if (kmalloc_verbose)36		printf("Freeing %p to malloc\n", p);37	free(p);38}39