Re: [PATCH 2.6] 1/7 create kstrdup library function

From: Pekka Enberg
Date: Tue Feb 01 2005 - 11:53:49 EST


Hi,

On Tue, 1 Feb 2005 03:28:21 +0000, pmarques@xxxxxxxxxxxx
<pmarques@xxxxxxxxxxxx> wrote:
>
> This patch creates the kstrdup library function so that it doesn't have to be
> reimplemented (or even EXPORT'ed) by every user that needs it.
>
> Signed-off-by: Paulo Marques <pmarques@xxxxxxxxxxxx>
>
> diff -buprN -X dontdiff vanilla-2.6.11-rc2-bk9/lib/string.c linux-2.6.11-rc2-bk9/lib/string.c
> --- vanilla-2.6.11-rc2-bk9/lib/string.c 2005-01-31 20:05:37.000000000 +0000
> +++ linux-2.6.11-rc2-bk9/lib/string.c 2005-01-31 20:00:31.000000000 +0000
> @@ -599,3 +599,23 @@ void *memchr(const void *s, int c, size_
> }
> EXPORT_SYMBOL(memchr);
> #endif
> +
> +/*
> + * 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, int gfp)
> +{
> + int 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);

kstrdup() is a special-case _memory allocator_ (not so much a string
operation) so I think it should go into mm/slab.c where we currently
have kcalloc().

P.S. Please inline patches to your email as per
Documentation/SubmittingPatches. I, for one, have trouble with
attachments.

Pekka
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/