diff options
| author | Loïc Guégan <manzerbredes@mailbox.org> | 2025-03-24 09:33:49 +0100 |
|---|---|---|
| committer | Loïc Guégan <manzerbredes@mailbox.org> | 2025-03-24 09:33:49 +0100 |
| commit | 7741f014456df395b655b72d9ebb848af72cc37e (patch) | |
| tree | 5ddae273929780ac7c0af2a26b64ba1a382e4b05 /src/libs/utils.c | |
| parent | d3ecfe3498d73d3ba924063bc1001cca3f333170 (diff) | |
Init repository
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; +} |
