xref: /kvm-unit-tests/lib/string.c (revision 1b708e8c5e69ea65442675f303855cf40c20c6e8)
17d36db35SAvi Kivity #include "libcflat.h"
27d36db35SAvi Kivity 
37d36db35SAvi Kivity unsigned long strlen(const char *buf)
47d36db35SAvi Kivity {
57d36db35SAvi Kivity     unsigned long len = 0;
67d36db35SAvi Kivity 
77d36db35SAvi Kivity     while (*buf++)
87d36db35SAvi Kivity 	++len;
97d36db35SAvi Kivity     return len;
107d36db35SAvi Kivity }
117d36db35SAvi Kivity 
127d36db35SAvi Kivity char *strcat(char *dest, const char *src)
137d36db35SAvi Kivity {
147d36db35SAvi Kivity     char *p = dest;
157d36db35SAvi Kivity 
167d36db35SAvi Kivity     while (*p)
177d36db35SAvi Kivity 	++p;
187d36db35SAvi Kivity     while ((*p++ = *src++) != 0)
197d36db35SAvi Kivity 	;
207d36db35SAvi Kivity     return dest;
217d36db35SAvi Kivity }
227d36db35SAvi Kivity 
237d36db35SAvi Kivity void *memset(void *s, int c, size_t n)
247d36db35SAvi Kivity {
257d36db35SAvi Kivity     size_t i;
267d36db35SAvi Kivity     char *a = s;
277d36db35SAvi Kivity 
287d36db35SAvi Kivity     for (i = 0; i < n; ++i)
297d36db35SAvi Kivity         a[i] = c;
307d36db35SAvi Kivity 
317d36db35SAvi Kivity     return s;
327d36db35SAvi Kivity }
33*1b708e8cSJason Wang 
34*1b708e8cSJason Wang long atol(const char *ptr)
35*1b708e8cSJason Wang {
36*1b708e8cSJason Wang     long acc = 0;
37*1b708e8cSJason Wang     const char *s = ptr;
38*1b708e8cSJason Wang     int neg, c;
39*1b708e8cSJason Wang 
40*1b708e8cSJason Wang     while (*s == ' ' || *s == '\t')
41*1b708e8cSJason Wang         s++;
42*1b708e8cSJason Wang     if (*s == '-'){
43*1b708e8cSJason Wang         neg = 1;
44*1b708e8cSJason Wang         s++;
45*1b708e8cSJason Wang     } else {
46*1b708e8cSJason Wang         neg = 0;
47*1b708e8cSJason Wang         if (*s == '+')
48*1b708e8cSJason Wang             s++;
49*1b708e8cSJason Wang     }
50*1b708e8cSJason Wang 
51*1b708e8cSJason Wang     while (*s) {
52*1b708e8cSJason Wang         if (*s < '0' || *s > '9')
53*1b708e8cSJason Wang             break;
54*1b708e8cSJason Wang         c = *s - '0';
55*1b708e8cSJason Wang         acc = acc * 10 + c;
56*1b708e8cSJason Wang         s++;
57*1b708e8cSJason Wang     }
58*1b708e8cSJason Wang 
59*1b708e8cSJason Wang     if (neg)
60*1b708e8cSJason Wang         acc = -acc;
61*1b708e8cSJason Wang 
62*1b708e8cSJason Wang     return acc;
63*1b708e8cSJason Wang }
64