diff options
Diffstat (limited to 'src/libs/utils.c')
| -rw-r--r-- | src/libs/utils.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/libs/utils.c b/src/libs/utils.c new file mode 100644 index 0000000..75b5661 --- /dev/null +++ b/src/libs/utils.c @@ -0,0 +1,53 @@ +#include "utils.h" + +void memcpy(u8 *dst, u8 *src, u32 size){ + for(u32 i=0;i<size;i++){ + ((u8*)(dst))[i]=((u8*)(src))[i]; + } +} + +void memset(u8 *start, u8 value, u32 size){ + for(u32 i=0;i<size;i++){ + ((u8*)(start))[i]=value; + } +} + +int modulo(int dividend, int divisor){ + while((dividend-divisor)>0){dividend-=divisor;} + return dividend; +} + +int strlen(char * cp) +{ + int len=0; + while( cp[len++]) ; + return len - 1 ; //because it counted the zero which we don't want. +} + +int wordlen(char *s) +{ + int len=0; + while( *s!='\n' && *s!='\0' && *s!=' '){ s++; } + return len - 1 ; //because it counted the zero which we don't want. +} + +u8 strcmp(char *str1, char*str2){ + while( *str1!='\0' && *str2!='\0'){ + if(*str1!=*str2) + return 1; + str1++; + str2++; + } + return *str1 == *str2; // Ensure both final char are \0 +} + +u8 strncmp(char *str1, char *str2, int n){ + for(int i=0;i<n;i++){ + if(str1[i] == '\0' || str2[i] == '\0') + break; + if(str1[i] != str2[i]) + return 1; + } + + return *str1 != *str2; +} |
