9
0
Fork 0

string: Add (x)memdup

It's a common task to duplicate some memory. Add (x)memdup functions.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2013-11-25 15:37:33 +01:00
parent b0cd10ff12
commit 54f55d79d9
4 changed files with 27 additions and 0 deletions

View File

@ -3,4 +3,6 @@
#include <linux/string.h>
void *memdup(const void *, size_t);
#endif /* __STRING_H */

View File

@ -8,5 +8,6 @@ void *xrealloc(void *ptr, size_t size);
void *xzalloc(size_t size);
char *xstrdup(const char *s);
void* xmemalign(size_t alignment, size_t bytes);
void* xmemdup(const void *orig, size_t size);
#endif /* __XFUNCS_H */

View File

@ -725,3 +725,17 @@ void *memchr_inv(const void *start, int c, size_t bytes)
return check_bytes8(start, value, bytes % 8);
}
EXPORT_SYMBOL(memchr_inv);
void *memdup(const void *orig, size_t size)
{
void *buf;
buf = malloc(size);
if (!buf)
return NULL;
memcpy(buf, orig, size);
return buf;
}
EXPORT_SYMBOL(memdup);

View File

@ -75,3 +75,13 @@ void* xmemalign(size_t alignment, size_t bytes)
return p;
}
EXPORT_SYMBOL(xmemalign);
void *xmemdup(const void *orig, size_t size)
{
void *buf = xmalloc(size);
memcpy(buf, orig, size);
return buf;
}
EXPORT_SYMBOL(xmemdup);