From bfe16de4be67565f1a1e7b1331fcbe3aedf9c54e Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Tue, 28 Apr 2020 19:15:47 +0200 Subject: Userspace rewrite -> IT WORKS! :) Finally, after many months of work and rewrites the syscalls with constant char pointers work now :D --- src/userspace/mlibc/string/strlen.c | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 src/userspace/mlibc/string/strlen.c (limited to 'src/userspace/mlibc/string/strlen.c') diff --git a/src/userspace/mlibc/string/strlen.c b/src/userspace/mlibc/string/strlen.c deleted file mode 100644 index f652495..0000000 --- a/src/userspace/mlibc/string/strlen.c +++ /dev/null @@ -1,35 +0,0 @@ -#include - -size_t strlen(const char *str) -{ - const char *char_ptr; - const unsigned long int *longword_ptr; - unsigned long int longword, himagic, lomagic; - - for (char_ptr = str; ((unsigned long int)char_ptr & (sizeof(longword) - 1)) != 0; - ++char_ptr) - if (*char_ptr == '\0') - return char_ptr - str; - - longword_ptr = (unsigned long int *)char_ptr; - - himagic = 0x80808080L; - lomagic = 0x01010101L; - - for (;;) { - longword = *longword_ptr++; - - if (((longword - lomagic) & himagic) != 0) { - const char *cp = (const char *)(longword_ptr - 1); - - if (cp[0] == 0) - return cp - str; - if (cp[1] == 0) - return cp - str + 1; - if (cp[2] == 0) - return cp - str + 2; - if (cp[3] == 0) - return cp - str + 3; - } - } -} \ No newline at end of file -- cgit v1.2.3