diff --git a/drivers/ddk/Makefile b/drivers/ddk/Makefile index 86604f6e57..b22496a98e 100644 --- a/drivers/ddk/Makefile +++ b/drivers/ddk/Makefile @@ -27,6 +27,7 @@ NAME_SRCS:= \ linux/list_sort.c \ linux/dmapool.c \ linux/ctype.c \ + linux/string.c \ malloc/malloc.c \ stdio/vsprintf.c \ string/_memmove.S \ diff --git a/drivers/ddk/linux/string.c b/drivers/ddk/linux/string.c new file mode 100644 index 0000000000..fe0c5ca6e2 --- /dev/null +++ b/drivers/ddk/linux/string.c @@ -0,0 +1,53 @@ +/* + * linux/lib/string.c + * + * Copyright (C) 1991, 1992 Linus Torvalds + */ + +/* + * stupid library routines.. The optimized versions should generally be found + * as inline code in + * + * These are buggy as well.. + * + * * Fri Jun 25 1999, Ingo Oeser + * - Added strsep() which will replace strtok() soon (because strsep() is + * reentrant and should be faster). Use only strsep() in new code, please. + * + * * Sat Feb 09 2002, Jason Thomas , + * Matthew Hawkins + * - Kissed strtok() goodbye + */ + +#include +#include +#include +#include + + +#ifndef __HAVE_ARCH_STRLCPY +/** + * strlcpy - Copy a %NUL terminated string into a sized buffer + * @dest: Where to copy the string to + * @src: Where to copy the string from + * @size: size of destination buffer + * + * Compatible with *BSD: the result is always a valid + * NUL-terminated string that fits in the buffer (unless, + * of course, the buffer size is zero). It does not pad + * out the result like strncpy() does. + */ +size_t strlcpy(char *dest, const char *src, size_t size) +{ + size_t ret = strlen(src); + + if (size) { + size_t len = (ret >= size) ? size - 1 : ret; + memcpy(dest, src, len); + dest[len] = '\0'; + } + return ret; +} +EXPORT_SYMBOL(strlcpy); +#endif +