xref: /openbmc/qemu/pc-bios/vof/libc.c (revision fc32b91a88cc9cd560da5488bdca4d69f2bac620)
1*fc8c745dSAlexey Kardashevskiy #include "vof.h"
2*fc8c745dSAlexey Kardashevskiy 
strlen(const char * s)3*fc8c745dSAlexey Kardashevskiy int strlen(const char *s)
4*fc8c745dSAlexey Kardashevskiy {
5*fc8c745dSAlexey Kardashevskiy     int len = 0;
6*fc8c745dSAlexey Kardashevskiy 
7*fc8c745dSAlexey Kardashevskiy     while (*s != 0) {
8*fc8c745dSAlexey Kardashevskiy         len += 1;
9*fc8c745dSAlexey Kardashevskiy         s += 1;
10*fc8c745dSAlexey Kardashevskiy     }
11*fc8c745dSAlexey Kardashevskiy 
12*fc8c745dSAlexey Kardashevskiy     return len;
13*fc8c745dSAlexey Kardashevskiy }
14*fc8c745dSAlexey Kardashevskiy 
strcmp(const char * s1,const char * s2)15*fc8c745dSAlexey Kardashevskiy int strcmp(const char *s1, const char *s2)
16*fc8c745dSAlexey Kardashevskiy {
17*fc8c745dSAlexey Kardashevskiy     while (*s1 != 0 && *s2 != 0) {
18*fc8c745dSAlexey Kardashevskiy         if (*s1 != *s2) {
19*fc8c745dSAlexey Kardashevskiy             break;
20*fc8c745dSAlexey Kardashevskiy         }
21*fc8c745dSAlexey Kardashevskiy         s1 += 1;
22*fc8c745dSAlexey Kardashevskiy         s2 += 1;
23*fc8c745dSAlexey Kardashevskiy     }
24*fc8c745dSAlexey Kardashevskiy 
25*fc8c745dSAlexey Kardashevskiy     return *s1 - *s2;
26*fc8c745dSAlexey Kardashevskiy }
27*fc8c745dSAlexey Kardashevskiy 
memcpy(void * dest,const void * src,size_t n)28*fc8c745dSAlexey Kardashevskiy void *memcpy(void *dest, const void *src, size_t n)
29*fc8c745dSAlexey Kardashevskiy {
30*fc8c745dSAlexey Kardashevskiy     char *cdest;
31*fc8c745dSAlexey Kardashevskiy     const char *csrc = src;
32*fc8c745dSAlexey Kardashevskiy 
33*fc8c745dSAlexey Kardashevskiy     cdest = dest;
34*fc8c745dSAlexey Kardashevskiy     while (n-- > 0) {
35*fc8c745dSAlexey Kardashevskiy         *cdest++ = *csrc++;
36*fc8c745dSAlexey Kardashevskiy     }
37*fc8c745dSAlexey Kardashevskiy 
38*fc8c745dSAlexey Kardashevskiy     return dest;
39*fc8c745dSAlexey Kardashevskiy }
40*fc8c745dSAlexey Kardashevskiy 
memcmp(const void * ptr1,const void * ptr2,size_t n)41*fc8c745dSAlexey Kardashevskiy int memcmp(const void *ptr1, const void *ptr2, size_t n)
42*fc8c745dSAlexey Kardashevskiy {
43*fc8c745dSAlexey Kardashevskiy     const unsigned char *p1 = ptr1;
44*fc8c745dSAlexey Kardashevskiy     const unsigned char *p2 = ptr2;
45*fc8c745dSAlexey Kardashevskiy 
46*fc8c745dSAlexey Kardashevskiy     while (n-- > 0) {
47*fc8c745dSAlexey Kardashevskiy         if (*p1 != *p2) {
48*fc8c745dSAlexey Kardashevskiy             return *p1 - *p2;
49*fc8c745dSAlexey Kardashevskiy         }
50*fc8c745dSAlexey Kardashevskiy         p1 += 1;
51*fc8c745dSAlexey Kardashevskiy         p2 += 1;
52*fc8c745dSAlexey Kardashevskiy     }
53*fc8c745dSAlexey Kardashevskiy 
54*fc8c745dSAlexey Kardashevskiy     return 0;
55*fc8c745dSAlexey Kardashevskiy }
56*fc8c745dSAlexey Kardashevskiy 
memset(void * dest,int c,size_t size)57*fc8c745dSAlexey Kardashevskiy void *memset(void *dest, int c, size_t size)
58*fc8c745dSAlexey Kardashevskiy {
59*fc8c745dSAlexey Kardashevskiy     unsigned char *d = (unsigned char *)dest;
60*fc8c745dSAlexey Kardashevskiy 
61*fc8c745dSAlexey Kardashevskiy     while (size-- > 0) {
62*fc8c745dSAlexey Kardashevskiy         *d++ = (unsigned char)c;
63*fc8c745dSAlexey Kardashevskiy     }
64*fc8c745dSAlexey Kardashevskiy 
65*fc8c745dSAlexey Kardashevskiy     return dest;
66*fc8c745dSAlexey Kardashevskiy }
67