summaryrefslogtreecommitdiff
path: root/userland/libc/memset.c
diff options
context:
space:
mode:
Diffstat (limited to 'userland/libc/memset.c')
-rw-r--r--userland/libc/memset.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/userland/libc/memset.c b/userland/libc/memset.c
new file mode 100644
index 0000000..51910e9
--- /dev/null
+++ b/userland/libc/memset.c
@@ -0,0 +1,15 @@
+#include <stddef.h>
+
+// https://pubs.opengroup.org/onlinepubs/9699919799/
+void *memset(void *s, int c, size_t n) {
+ // The memset() function shall copy c (converted to an unsigned
+ // char) into each of the first n bytes of the object pointed to by
+ // s.
+
+ unsigned char *p = s;
+ for (; n > 0; n--, p++)
+ *p = (unsigned char)c;
+
+ // The memset() function shall return s
+ return s;
+}