lib: Add strtok() and strtok_r()

Add strtok() and strtok_r() to the library.

Signed-off-by: Harshit Sharma <harshitsharmajs@gmail.com>
Change-Id: Ic855b31669be1c274cbf247c53ffa6f74ec5bf35
Reviewed-on: https://review.coreboot.org/c/coreboot/+/41420
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
diff --git a/src/lib/string.c b/src/lib/string.c
index f0c24ed..e8f72a2 100644
--- a/src/lib/string.c
+++ b/src/lib/string.c
@@ -163,6 +163,31 @@
 	return ret;
 }
 
+char *strtok_r(char *str, const char *delim, char **ptr)
+{
+	char *start;
+	char *end;
+
+	if (str == NULL)
+		str = *ptr;
+	start = str + strspn(str, delim);
+	if (start[0] == '\0')
+		return NULL;
+
+	end = start + strcspn(start, delim);
+	*ptr = end;
+	if (end[0] != '\0')
+		*(*ptr)++ = '\0';
+	return start;
+}
+
+char *strtok(char *str, const char *delim)
+{
+	static char *strtok_ptr;
+
+	return strtok_r(str, delim, &strtok_ptr);
+}
+
 long atol(const char *str)
 {
 	long ret = 0;