Remove CONFIG_KTHREAD_POISON
[akaros.git] / kern / src / hexdump.c
index 7abcb5c..6b81d42 100644 (file)
@@ -25,6 +25,7 @@
 #include <string.h>
 #include <assert.h>
 #include <smp.h>
+#include <pmap.h>
 
 static int isprint(int c)
 {
@@ -71,11 +72,17 @@ void pahexdump(uintptr_t pa, int len)
 }
 
 /* Print a string, with printables preserved, and \xxx where not possible. */
-int printdump(char *buf, int buflen, uint8_t *data)
+int printdump(char *buf, int numprint, int buflen, uint8_t *data)
 {
        int ret = 0;
        int ix = 0;
-       while (ret < buflen) {
+
+       if (buflen < 1)
+               return ret;
+       buf[ret++] = '\'';
+       /* we want 2 bytes left in the buf (which is ret < buflen - 1), one for the
+        * char, and one for the \' after the loop. */
+       while (ix < numprint && ret < (buflen - 1)) {
                if (isprint(data[ix])) {
                        buf[ret++] = data[ix];
                } else if (ret < buflen - 4) {
@@ -86,5 +93,6 @@ int printdump(char *buf, int buflen, uint8_t *data)
                }
                ix++;
        }
+       buf[ret++] = '\'';
        return ret;
 }