diff options
Diffstat (limited to 'user')
| -rw-r--r-- | user/ulib.c | 20 | ||||
| -rw-r--r-- | user/user.h | 2 | 
2 files changed, 22 insertions, 0 deletions
| diff --git a/user/ulib.c b/user/ulib.c index ddda0f5..8bfba5d 100644 --- a/user/ulib.c +++ b/user/ulib.c @@ -107,3 +107,23 @@ memmove(void *vdst, const void *vsrc, int n)      *dst++ = *src++;    return vdst;  } + +int +memcmp(const void *s1, const void *s2, uint n) +{ +  const char *p1 = s1, *p2 = s2; +  while (n-- > 0) { +    if (*p1 != *p2) { +      return *p1 - *p2; +    } +    p1++; +    p2++; +  } +  return 0; +} + +void * +memcpy(void *dst, const void *src, uint n) +{ +  return memmove(dst, src, n); +} diff --git a/user/user.h b/user/user.h index 03af731..b71ecda 100644 --- a/user/user.h +++ b/user/user.h @@ -38,3 +38,5 @@ void* memset(void*, int, uint);  void* malloc(uint);  void free(void*);  int atoi(const char*); +int memcmp(const void *, const void *, uint); +void *memcpy(void *, const void *, uint); | 
