diff options
author | Simon Glass <sjg@chromium.org> | 2021-09-25 07:03:06 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-10-08 15:53:26 -0400 |
commit | 930c887e0fb88dcf1907f268960330c17999b5a3 (patch) | |
tree | 9f1bdfd36187f27d0c70b9a981974391b61014bd /include/linux | |
parent | 0caf37e973015255a3c5b9439ddb8c6aef1b5001 (diff) | |
download | u-boot-930c887e0fb88dcf1907f268960330c17999b5a3.tar.gz |
lib: Add memdup()
Add a function to duplicate a memory region, a little like strdup().
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/string.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/string.h b/include/linux/string.h index dd255f2163..3169c93796 100644 --- a/include/linux/string.h +++ b/include/linux/string.h @@ -129,6 +129,19 @@ extern void * memchr(const void *,int,__kernel_size_t); void *memchr_inv(const void *, int, size_t); #endif +/** + * memdup() - allocate a buffer and copy in the contents + * + * Note that this returns a valid pointer even if @len is 0 + * + * @src: data to copy in + * @len: number of bytes to copy + * @return allocated buffer with the copied contents, or NULL if not enough + * memory is available + * + */ +char *memdup(const void *src, size_t len); + unsigned long ustrtoul(const char *cp, char **endp, unsigned int base); unsigned long long ustrtoull(const char *cp, char **endp, unsigned int base); |