54 lines · 981 B · C
RawDownload
// 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);} void *kmalloc_array(size_t n, size_t size, gfp_t gfp){	void *ret; 	if (!(gfp & __GFP_DIRECT_RECLAIM))		return NULL; 	ret = calloc(n, size);	uatomic_inc(&kmalloc_nr_allocated);	if (kmalloc_verbose)		printf("Allocating %p from calloc\n", ret);	if (gfp & __GFP_ZERO)		memset(ret, 0, n * size);	return ret;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t