diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2020-12-05 16:25:27 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2020-12-05 16:25:27 -0700 |
commit | d29ea8d7fb8cc6f7c3dda1cbca6266908acd4291 (patch) | |
tree | 57b47c0942827b538a46bb3cc808ec13698f1ebf /src/kern/stdlibrepl.c | |
parent | 23fe71639ecdc20a472130de6a2b8d71d8e5d2b0 (diff) | |
download | stm32l4-d29ea8d7fb8cc6f7c3dda1cbca6266908acd4291.tar.gz stm32l4-d29ea8d7fb8cc6f7c3dda1cbca6266908acd4291.tar.bz2 stm32l4-d29ea8d7fb8cc6f7c3dda1cbca6266908acd4291.zip |
Add remove ability to linked list.
Diffstat (limited to 'src/kern/stdlibrepl.c')
-rw-r--r-- | src/kern/stdlibrepl.c | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/kern/stdlibrepl.c b/src/kern/stdlibrepl.c index 588191b..38b8477 100644 --- a/src/kern/stdlibrepl.c +++ b/src/kern/stdlibrepl.c @@ -15,14 +15,37 @@ size_t strlen(char* ch) #ifdef ARCH_STM32L4 -void memcpy(void* dest, void* src, size_t size) +void* memcpy(void* dest, const void* src, size_t size) { uint8_t* dest_ = dest; - uint8_t* src_ = src; + const uint8_t* src_ = src; - while(size --) { + while (size--) { *(dest_++) = *(src_++); } + + return dest; +} + +int memcmp(const void* s1_, const void* s2_, size_t size) +{ + const uint8_t* s1 = s1_; + const uint8_t* s2 = s2_; + + while (size--) { + if (*s1 != *s2) { + if (*s1 > *s2) { + return 1; + } else { + return -1; + } + } + + ++s1; + ++s2; + } + + return 0; } #endif |