• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *   Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  * Description: string
15  *
16  * Create: 2021-12-16
17  */
18 
19 #include <linux/kernel.h>
20 #include "soc_osal.h"
21 #include "osal_inner.h"
osal_memncmp(const void * buf1,const void * buf2,unsigned long size)22 int osal_memncmp(const void *buf1, const void *buf2, unsigned long size)
23 {
24     return memcmp(buf1, buf2, (size_t)size);
25 }
osal_strcmp(const char * cs,const char * ct)26 int osal_strcmp(const char *cs, const char *ct)
27 {
28     return strcmp(cs, ct);
29 }
osal_strncmp(const char * s1,const char * s2,unsigned long size)30 int osal_strncmp(const char *s1, const char *s2, unsigned long size)
31 {
32     return strncmp(s1, s2, (size_t)size);
33 }
34 
osal_strcasecmp(const char * s1,const char * s2)35 int osal_strcasecmp(const char *s1, const char *s2)
36 {
37     return strcasecmp(s1, s2);
38 }
osal_strncasecmp(const char * s1,const char * s2,unsigned long size)39 int osal_strncasecmp(const char *s1, const char *s2, unsigned long size)
40 {
41     return strncasecmp(s1, s2, (size_t)size);
42 }
43 
osal_strchr(const char * s,int c)44 char *osal_strchr(const char *s, int c)
45 {
46     return strchr(s, c);
47 }
osal_strnchr(const char * s,int count,int c)48 char *osal_strnchr(const char *s, int count, int c)
49 {
50     if (s == NULL || count <= 0) {
51         return NULL;
52     }
53 
54     while ((count-- != 0) && (*s != '\0')) {
55         if (*s == (char)c) {
56             return (char *)s;
57         }
58         ++s;
59     }
60     return NULL;
61 }
62 
osal_strrchr(const char * s,int c)63 char *osal_strrchr(const char *s, int c)
64 {
65     return strrchr(s, c);
66 }
67 
osal_strstr(const char * s1,const char * s2)68 char *osal_strstr(const char *s1, const char *s2)
69 {
70     return strstr(s1, s2);
71 }
osal_strnstr(const char * s1,const char * s2,int len)72 char *osal_strnstr(const char *s1, const char *s2, int len)
73 {
74     size_t len1, len2, slen_tmp;
75     if (s1 == NULL || s2 == NULL) {
76         return NULL;
77     }
78     len2 = strlen(s2);
79     if (len2 == 0) {
80         return (char *)s1;
81     }
82     if (len < len2) {
83         return NULL;
84     }
85     len1 = strlen(s1);
86     slen_tmp = len > len1 ? len1 : len;
87 
88     for (; slen_tmp >= len2; slen_tmp--) {
89         if (!strncmp(s1, s2, len2)) {
90             return (char *)s1;
91         }
92         s1++;
93     }
94 
95     return NULL;
96 }
osal_strlen(const char * s)97 unsigned int osal_strlen(const char *s)
98 {
99     return strlen(s);
100 }
osal_strnlen(const char * s,unsigned int count)101 unsigned int osal_strnlen(const char *s, unsigned int count)
102 {
103     return strnlen(s, count);
104 }
osal_strpbrk(const char * cs,const char * ct)105 char *osal_strpbrk(const char *cs, const char *ct)
106 {
107     return strpbrk(cs, ct);
108 }
osal_strsep(char ** s,const char * ct)109 char *osal_strsep(char **s, const char *ct)
110 {
111     return strsep(s, ct);
112 }
osal_strspn(const char * s,const char * accept)113 unsigned int osal_strspn(const char *s, const char *accept)
114 {
115     return strspn(s, accept);
116 }
osal_strcspn(const char * s,const char * reject)117 unsigned int osal_strcspn(const char *s, const char *reject)
118 {
119     return strcspn(s, reject);
120 }
osal_memscan(void * addr,int c,int size)121 void *osal_memscan(void *addr, int c, int size)
122 {
123     return NULL;
124 }
osal_memcmp(const void * cs,const void * ct,int count)125 int osal_memcmp(const void *cs, const void *ct, int count)
126 {
127     return memcmp(cs, ct, (size_t)count);
128 }
osal_memchr(const void * s,int c,int n)129 void *osal_memchr(const void *s, int c, int n)
130 {
131     return memchr(s, c, n);
132 }
osal_memchr_inv(const void * start,int c,int bytes)133 void *osal_memchr_inv(const void *start, int c, int bytes)
134 {
135     osal_unused(start, c, bytes);
136     return NULL;
137 }
osal_strtoull(const char * cp,char ** endp,unsigned int base)138 unsigned long long osal_strtoull(const char *cp, char **endp, unsigned int base)
139 {
140     osal_unused(cp, endp, (int)base);
141     return 0;
142 }
osal_strtoul(const char * cp,char ** endp,unsigned int base)143 unsigned long osal_strtoul(const char *cp, char **endp, unsigned int base)
144 {
145     return strtoul(cp, endp, (int)base);
146 }
osal_strtol(const char * cp,char ** endp,unsigned int base)147 long osal_strtol(const char *cp, char **endp, unsigned int base)
148 {
149     return simple_strtol(cp, endp, base);
150 }
osal_strtoll(const char * cp,char ** endp,unsigned int base)151 long long osal_strtoll(const char *cp, char **endp, unsigned int base)
152 {
153     osal_unused(cp, endp, base);
154     return 0;
155 }
156