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