forked from Minki/linux
[PATCH] slob: introduce mm/util.c for shared functions
Add mm/util.c for functions common between SLAB and SLOB. Signed-off-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
50dd26ba09
commit
30992c97ae
@ -10,7 +10,7 @@ mmu-$(CONFIG_MMU) := fremap.o highmem.o madvise.o memory.o mincore.o \
|
|||||||
obj-y := bootmem.o filemap.o mempool.o oom_kill.o fadvise.o \
|
obj-y := bootmem.o filemap.o mempool.o oom_kill.o fadvise.o \
|
||||||
page_alloc.o page-writeback.o pdflush.o \
|
page_alloc.o page-writeback.o pdflush.o \
|
||||||
readahead.o slab.o swap.o truncate.o vmscan.o \
|
readahead.o slab.o swap.o truncate.o vmscan.o \
|
||||||
prio_tree.o $(mmu-y)
|
prio_tree.o util.o $(mmu-y)
|
||||||
|
|
||||||
obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o thrash.o
|
obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o thrash.o
|
||||||
obj-$(CONFIG_HUGETLBFS) += hugetlb.o
|
obj-$(CONFIG_HUGETLBFS) += hugetlb.o
|
||||||
|
37
mm/slab.c
37
mm/slab.c
@ -3052,20 +3052,6 @@ void kmem_cache_free(kmem_cache_t *cachep, void *objp)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(kmem_cache_free);
|
EXPORT_SYMBOL(kmem_cache_free);
|
||||||
|
|
||||||
/**
|
|
||||||
* 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);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* kfree - free previously allocated memory
|
* kfree - free previously allocated memory
|
||||||
* @objp: pointer returned by kmalloc.
|
* @objp: pointer returned by kmalloc.
|
||||||
@ -3659,26 +3645,3 @@ unsigned int ksize(const void *objp)
|
|||||||
|
|
||||||
return obj_reallen(page_get_cache(virt_to_page(objp)));
|
return obj_reallen(page_get_cache(virt_to_page(objp)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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);
|
|
||||||
|
39
mm/util.c
Normal file
39
mm/util.c
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#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);
|
Loading…
Reference in New Issue
Block a user