1/*
2 * Taken from:
3 *  linux/lib/string.c
4 *
5 *  Copyright (C) 1991, 1992  Linus Torvalds
6 */
7
8#include <linux/types.h>
9#include <linux/string.h>
10
11#ifndef __HAVE_ARCH_STRSTR
12/**
13 * strstr - Find the first substring in a %NUL terminated string
14 * @s1: The string to be searched
15 * @s2: The string to search for
16 */
17char *strstr(const char *s1, const char *s2)
18{
19	size_t l1, l2;
20
21	l2 = strlen(s2);
22	if (!l2)
23		return (char *)s1;
24	l1 = strlen(s1);
25	while (l1 >= l2) {
26		l1--;
27		if (!memcmp(s1, s2, l2))
28			return (char *)s1;
29		s1++;
30	}
31	return NULL;
32}
33#endif
34
35#ifndef __HAVE_ARCH_STRNCMP
36/**
37 * strncmp - Compare two length-limited strings
38 * @cs: One string
39 * @ct: Another string
40 * @count: The maximum number of bytes to compare
41 */
42int strncmp(const char *cs, const char *ct, size_t count)
43{
44	unsigned char c1, c2;
45
46	while (count) {
47		c1 = *cs++;
48		c2 = *ct++;
49		if (c1 != c2)
50			return c1 < c2 ? -1 : 1;
51		if (!c1)
52			break;
53		count--;
54	}
55	return 0;
56}
57#endif
58