[utils] add 'bitdump' function for bitfields
diff --git a/src/utils.c b/src/utils.c
index 405039f..5200793 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -95,6 +95,36 @@
 	return hexd_buff;
 }
 
+char *bitdump(const uint8_t *bits, unsigned int len)
+{
+	int i;
+
+	if (len > sizeof(hexd_buff)-1)
+		len = sizeof(hexd_buff)-1;
+	memset(hexd_buff, 0, sizeof(hexd_buff));
+
+	for (i = 0; i < len; i++) {
+		char outch;
+		switch (bits[i]) {
+		case 0:
+			outch = '0';
+			break;
+		case 0xff:
+			outch = '?';
+			break;
+		case 1:
+			outch = '1';
+			break;
+		default:
+			outch = 'E';
+			break;
+		}
+		hexd_buff[i] = outch;
+	}
+	hexd_buff[sizeof(hexd_buff)-1] = 0;
+	return hexd_buff;
+}
+
 char *hexdump(const unsigned char *buf, int len)
 {
 	return _hexdump(buf, len, " ");