Change-Id: Icded479d246f7cce8a3d2154c69f75178fa513e1
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: http://review.coreboot.org/708
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Mathias Krause <minipli@googlemail.com>
void *memmove(void *dest, const void *src, size_t n);
void *memset(void *s, int c, size_t n);
int memcmp(const void *s1, const void *s2, size_t n);
+void *memchr(const void *s, int c, size_t n);
#if !defined(__PRE_RAM__)
int sprintf(char * buf, const char *fmt, ...);
#endif
romstage-y += memset.c
+romstage-y += memchr.c
romstage-y += memcpy.c
romstage-y += memcmp.c
romstage-y += cbfs.c
romstage-$(CONFIG_USBDEBUG) += usbdebug.c
ramstage-y += memset.c
+ramstage-y += memchr.c
ramstage-y += memcpy.c
ramstage-y += memcmp.c
ramstage-y += memmove.c
--- /dev/null
+#include <string.h>
+void *memchr(const void *s, int c, size_t n)
+{
+ const unsigned char *sc = s;
+ while (n--) {
+ if (*sc == (unsigned char)c)
+ return (void *)sc;
+ sc++;
+ }
+ return NULL;
+}