root/drivers/firmware/efi/libstub/string.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. strstr
  2. strncmp

   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

/* [<][>][^][v][top][bottom][index][help] */