From: Rob Herring Date: Thu, 1 Mar 2018 14:57:40 +0000 (-0600) Subject: powerpc: boot: add strrchr function X-Git-Tag: Ubuntu-5.10.0-12.13~8115^2~8^2~3 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=a54b81ea242309a098162c3284ed964074bee72a;p=mirror_ubuntu-hirsute-kernel.git powerpc: boot: add strrchr function libfdt gained a new dependency on strrchr, so copy the implementation from lib/string.c. Most of the string functions are in assembly, but stdio.c already has strnlen, so add strrchr there. Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Acked-by: Michael Ellerman Signed-off-by: Rob Herring --- diff --git a/arch/powerpc/boot/stdio.c b/arch/powerpc/boot/stdio.c index a701261b1781..98042eff7b26 100644 --- a/arch/powerpc/boot/stdio.c +++ b/arch/powerpc/boot/stdio.c @@ -21,6 +21,16 @@ size_t strnlen(const char * s, size_t count) return sc - s; } +char *strrchr(const char *s, int c) +{ + const char *last = NULL; + do { + if (*s == (char)c) + last = s; + } while (*s++); + return (char *)last; +} + #ifdef __powerpc64__ # define do_div(n, base) ({ \ diff --git a/arch/powerpc/boot/string.h b/arch/powerpc/boot/string.h index 3fb71171da49..8c2ec0c05e4e 100644 --- a/arch/powerpc/boot/string.h +++ b/arch/powerpc/boot/string.h @@ -7,6 +7,7 @@ extern char *strcpy(char *dest, const char *src); extern char *strncpy(char *dest, const char *src, size_t n); extern char *strcat(char *dest, const char *src); extern char *strchr(const char *s, int c); +extern char *strrchr(const char *s, int c); extern int strcmp(const char *s1, const char *s2); extern int strncmp(const char *s1, const char *s2, size_t n); extern size_t strlen(const char *s);