summaryrefslogtreecommitdiff
path: root/src/kernel/libc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/libc.c')
-rw-r--r--src/kernel/libc.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/kernel/libc.c b/src/kernel/libc.c
index dc5c0ac..c786cd0 100644
--- a/src/kernel/libc.c
+++ b/src/kernel/libc.c
@@ -39,22 +39,33 @@ void strcpy(char *dest, char *src) {
}
}
-void memcpy(char *dest, char *src, size_t n) {
+void *memcpy(void *dest, char *src, size_t n) {
+ char *p = dest;
for(unsigned int i = 0; i <= n; i++) {
- dest[i] = src[i];
+ p[i] = src[i];
}
+ return(dest);
}
-void bzero(void *dest, size_t size) {
- unsigned char *p1 = dest;
+void *bzero(void *dest, size_t size) {
+ char *p = dest;
for(uint64_t i = 0; i < size; i++) {
- p1[i] = 0;
+ p[i] = 0;
}
+ return(dest);
}
//TODO move this function to a seperate math library
-int ceil(float n) {
+unsigned int ceil(double n) {
int low_n = (int)n;
- if(n == (float)low_n) return(low_n);
+ if(n == (double)low_n) return(low_n);
return(low_n + 1);
}
+
+void *memset(void *s, char c, size_t n) {
+ char *p = s;
+ for(size_t i = 0; i < n; i++) {
+ p[i] = c;
+ }
+ return(s);
+}