summaryrefslogtreecommitdiffstats
path: root/lib/mem.c
blob: 2ce67f31ab654ea3e3665a0c322069ff82f6c4bb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "string.h"

void*
memset(void *dest, char c, size_t n)
{
    char *a = dest;
    for(size_t i = 0; i < n; i++) a[i] = c;
    return dest;
}

void*
memcpy(void *dest, const void *src, size_t n)
{
    char *a = dest;
    const char *b = src;
    for(size_t i = 0; i < n; i++) a[i] = b[i];
    return dest;
}

void*
memmove(void *dest, const void *src, size_t n)
{
    char buffer[n];
    memcpy(buffer, src, n);
    memcpy(dest, buffer, n);
    return dest;
}