at v2.6.16-rc2 39 lines 771 B view raw
1#include <linux/slab.h> 2#include <linux/string.h> 3#include <linux/module.h> 4 5/** 6 * kzalloc - allocate memory. The memory is set to zero. 7 * @size: how many bytes of memory are required. 8 * @flags: the type of memory to allocate. 9 */ 10void *kzalloc(size_t size, gfp_t flags) 11{ 12 void *ret = kmalloc(size, flags); 13 if (ret) 14 memset(ret, 0, size); 15 return ret; 16} 17EXPORT_SYMBOL(kzalloc); 18 19/* 20 * kstrdup - allocate space for and copy an existing string 21 * 22 * @s: the string to duplicate 23 * @gfp: the GFP mask used in the kmalloc() call when allocating memory 24 */ 25char *kstrdup(const char *s, gfp_t gfp) 26{ 27 size_t len; 28 char *buf; 29 30 if (!s) 31 return NULL; 32 33 len = strlen(s) + 1; 34 buf = kmalloc(len, gfp); 35 if (buf) 36 memcpy(buf, s, len); 37 return buf; 38} 39EXPORT_SYMBOL(kstrdup);