xref: /kvm-unit-tests/lib/string.c (revision 1b708e8c5e69ea65442675f303855cf40c20c6e8)
1 #include "libcflat.h"
2 
3 unsigned long strlen(const char *buf)
4 {
5     unsigned long len = 0;
6 
7     while (*buf++)
8 	++len;
9     return len;
10 }
11 
12 char *strcat(char *dest, const char *src)
13 {
14     char *p = dest;
15 
16     while (*p)
17 	++p;
18     while ((*p++ = *src++) != 0)
19 	;
20     return dest;
21 }
22 
23 void *memset(void *s, int c, size_t n)
24 {
25     size_t i;
26     char *a = s;
27 
28     for (i = 0; i < n; ++i)
29         a[i] = c;
30 
31     return s;
32 }
33 
34 long atol(const char *ptr)
35 {
36     long acc = 0;
37     const char *s = ptr;
38     int neg, c;
39 
40     while (*s == ' ' || *s == '\t')
41         s++;
42     if (*s == '-'){
43         neg = 1;
44         s++;
45     } else {
46         neg = 0;
47         if (*s == '+')
48             s++;
49     }
50 
51     while (*s) {
52         if (*s < '0' || *s > '9')
53             break;
54         c = *s - '0';
55         acc = acc * 10 + c;
56         s++;
57     }
58 
59     if (neg)
60         acc = -acc;
61 
62     return acc;
63 }
64