#include <linux/slab.h> | |
#include <linux/string.h> | |
#include <linux/module.h> | |
/** | |
* kzalloc - allocate memory. The memory is set to zero. | |
* @size: how many bytes of memory are required. | |
* @flags: the type of memory to allocate. | |
*/ | |
void *kzalloc(size_t size, gfp_t flags) | |
{ | |
void *ret = kmalloc(size, flags); | |
if (ret) | |
memset(ret, 0, size); | |
return ret; | |
} | |
EXPORT_SYMBOL(kzalloc); | |
/* | |
* kstrdup - allocate space for and copy an existing string | |
* | |
* @s: the string to duplicate | |
* @gfp: the GFP mask used in the kmalloc() call when allocating memory | |
*/ | |
char *kstrdup(const char *s, gfp_t gfp) | |
{ | |
size_t len; | |
char *buf; | |
if (!s) | |
return NULL; | |
len = strlen(s) + 1; | |
buf = kmalloc(len, gfp); | |
if (buf) | |
memcpy(buf, s, len); | |
return buf; | |
} | |
EXPORT_SYMBOL(kstrdup); |