diff options
author | Patrick Rudolph <patrick.rudolph@9elements.com> | 2018-03-29 10:05:34 +0200 |
---|---|---|
committer | Patrick Rudolph <siro@das-labor.org> | 2018-04-03 14:16:16 +0000 |
commit | 03c7b05a5a1838da1e792cb127a549358c5193d4 (patch) | |
tree | b6fb3b2c529054838c0574164fe9236236117729 | |
parent | 4783db2cf18c31ab48b219dabe1e04bf7f311d52 (diff) |
include/string: Add strrchr
Copy strrchr from libpayload.
To be used by Cavium's BDK or FDT parsers.
Change-Id: Iab7981c25113ed16f1b8130de4935d30c29d2fa5
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/25447
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
-rw-r--r-- | src/include/string.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/include/string.h b/src/include/string.h index 7597323c47..d2d7bb8781 100644 --- a/src/include/string.h +++ b/src/include/string.h @@ -66,6 +66,26 @@ static inline char *strconcat(const char *s1, const char *s2) } #endif +/** + * Find a character in a string. + * + * @param s The string. + * @param c The character. + * @return A pointer to the last occurrence of the character in the + * string, or NULL if the character was not encountered within the string. + */ +static inline char *strrchr(const char *s, int c) +{ + char *p = (char *)s + strlen(s); + + for (; p >= s; p--) { + if (*p == c) + return p; + } + + return NULL; +} + static inline char *strncpy(char *to, const char *from, int count) { register char *ret = to; |