X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=lib%2Flinux_compat.c;h=89a6fd6ec96d5e10ae4b890d2cb1200ca4332ab9;hb=5ae526b61f6a8832ac72c4aeed6e652887ccbbd0;hp=81ea8fb126fa2fec7230479ae77d744cde337e4c;hpb=bb1bb4bb5df9df4d3f07e39a632daaff79e4b77e;p=oweals%2Fu-boot.git diff --git a/lib/linux_compat.c b/lib/linux_compat.c index 81ea8fb126..89a6fd6ec9 100644 --- a/lib/linux_compat.c +++ b/lib/linux_compat.c @@ -1,5 +1,6 @@ #include +#include #include #include @@ -40,3 +41,22 @@ void *kmem_cache_alloc(struct kmem_cache *obj, int flag) { return malloc_cache_aligned(obj->sz); } + +/** + * kmemdup - duplicate region of memory + * + * @src: memory region to duplicate + * @len: memory region length + * @gfp: GFP mask to use + * + * Return: newly allocated copy of @src or %NULL in case of error + */ +void *kmemdup(const void *src, size_t len, gfp_t gfp) +{ + void *p; + + p = kmalloc(len, gfp); + if (p) + memcpy(p, src, len); + return p; +}