qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

libc.c (998B)


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