summaryrefslogtreecommitdiff
path: root/src/libs/utils.c
diff options
context:
space:
mode:
authorLoïc Guégan <manzerbredes@mailbox.org>2025-03-24 09:33:49 +0100
committerLoïc Guégan <manzerbredes@mailbox.org>2025-03-24 09:33:49 +0100
commit7741f014456df395b655b72d9ebb848af72cc37e (patch)
tree5ddae273929780ac7c0af2a26b64ba1a382e4b05 /src/libs/utils.c
parentd3ecfe3498d73d3ba924063bc1001cca3f333170 (diff)
Init repository
Diffstat (limited to 'src/libs/utils.c')
-rw-r--r--src/libs/utils.c53
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;
+}