aboutsummaryrefslogtreecommitdiff
path: root/strings.c
diff options
context:
space:
mode:
authorvetch <vetch97@gmail.com>2020-01-04 19:37:32 +0100
committervetch <vetch97@gmail.com>2020-01-04 19:37:32 +0100
commit615e3302c9dd358bb64cd56d1f3814ad8d5df84d (patch)
tree07b0469807eb3bff7ff7d3f3576858642bc66675 /strings.c
parent885a097da42317f48cead2d91c0e0240066943a8 (diff)
downloadrpi-MMU-example-615e3302c9dd358bb64cd56d1f3814ad8d5df84d.tar.gz
rpi-MMU-example-615e3302c9dd358bb64cd56d1f3814ad8d5df84d.zip
rearranged files, updated makefile
Diffstat (limited to 'strings.c')
-rw-r--r--strings.c119
1 files changed, 0 insertions, 119 deletions
diff --git a/strings.c b/strings.c
deleted file mode 100644
index 368d7dc..0000000
--- a/strings.c
+++ /dev/null
@@ -1,119 +0,0 @@
-#include "strings.h"
-
-void uint32_to_dec(uint32_t number, char buf[10])
-{
- for (int i = 0; i < 10; i++)
- {
- buf[10 - 1 - i] = '0' + (number % 10);
- number /= 10;
- }
-}
-
-void uint32_to_hex(uint32_t number, char buf[8])
-{
- for (int i = 0; i < 8; i++)
- {
- unsigned char quadbit = (number >> ((8 - i - 1) * 4)) & 0xf;
- buf[i] = quadbit > 9 ? quadbit - 10 + 'a' : quadbit + '0';
- }
-}
-
-void uint32_to_bin(uint32_t number, char buf[32])
-{
- for (int i = 0; i < 32; i++)
- buf[i] = ((number >> (32 - i - 1)) & 1) ? '1' : '0';
-}
-
-void uint32_to_decstring(uint32_t number, char buf[11])
-{
- uint32_to_dec(number, buf);
- buf[10] = '\0';
-}
-
-void uint32_to_hexstring(uint32_t number, char buf[9])
-{
- uint32_to_hex(number, buf);
- buf[8] = '\0';
-}
-
-void uint32_to_binstring(uint32_t number, char buf[33])
-{
- uint32_to_bin(number, buf);
- buf[32] = '\0';
-}
-
-void trim_0s(char string[])
-{
- size_t i;
- for (i = 0; string[i] == '0'; i++);
-
- size_t j = 0;
-
- if (!string[i])
- string[j++] = string[--i];
-
- do
- string[j] = string[i + j];
- while (string[j++]);
-}
-
-void uint32_to_decstringt(uint32_t number, char buf[11])
-{
- uint32_to_decstring(number, buf);
- trim_0s(buf);
-}
-
-void uint32_to_hexstringt(uint32_t number, char buf[9])
-{
- uint32_to_hexstring(number, buf);
- trim_0s(buf);
-}
-
-size_t strlen(char string[])
-{
- size_t len;
-
- for (len = 0; string[len]; len++);
-
- return len;
-}
-
-void memcpy(void *dst, void *src, size_t nbytes)
-{
- size_t iter;
-
- // copying by word is faster than by byte,
- // but can easily cause alignment faults, so we resign from it...
- for (iter = 0; iter < nbytes ; iter++)
- ((volatile uint8_t*) dst)[iter] = ((uint8_t*) src)[iter];
-}
-
-// keep in mind memset is also needed for array initialization, like
-// uint32_t buf[16] = {0};
-// gcc compiles this to memset call
-
-void *memset(void *s, int c, size_t n)
-{
- volatile char *mem = s;
-
- for (size_t i = 0; i < n; i++)
- mem[i] = c;
-
- return s;
-}
-
-char *strcat(char *dst, const char *src)
-{
- char *where_to_append;
-
- for (where_to_append = dst; *where_to_append; where_to_append++);
-
- size_t i;
-
- for (i = 0; src[i]; i++)
- ((char volatile*) where_to_append)[i] = src[i];
-
- ((char volatile*) where_to_append)[i] = '\0';
-
- return dst;
-}