diff options
author | Brett Weiland <brett_weiland@bpcspace.com> | 2021-04-18 16:00:17 -0500 |
---|---|---|
committer | Brett Weiland <brett_weiland@bpcspace.com> | 2021-04-18 16:00:17 -0500 |
commit | 774e3796b252383aafb8b3f30d51a19400c74516 (patch) | |
tree | 20ad93c125d4f6bad755e6a898ddb4259818b4fa /src/kernel/libc.c | |
parent | f0602964daa20ad9cd05f097b943c8edbf2df2e2 (diff) |
modified: src/bootloader/bios_functions/bios_disk.asm
modified: src/bootloader/bootloader.asm
new file: src/include/kernel.h
modified: src/include/libc.h
modified: src/include/paging.h
new file: src/include/panic.h
modified: src/kernel/kernel.c
modified: src/kernel/libc.c
modified: src/kernel/page.c
new file: src/kernel/panic.c
modified: src/link.ld
modified: src/makefile
modified: tools/page/page.py
Diffstat (limited to 'src/kernel/libc.c')
-rw-r--r-- | src/kernel/libc.c | 25 |
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); +} |