Skip to content

Commit

Permalink
spi: spidev_test: Cleaned hexadecimal dump
Browse files Browse the repository at this point in the history
Signed-off-by: Adrian Remonda <adrianremonda@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Adrian Remonda authored and Mark Brown committed Mar 10, 2015
1 parent c517d83 commit b78ce7e
Showing 1 changed file with 29 additions and 6 deletions.
35 changes: 29 additions & 6 deletions Documentation/spi/spidev_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#include <fcntl.h>
#include <sys/ioctl.h>
Expand All @@ -35,6 +36,33 @@ static uint8_t bits = 8;
static uint32_t speed = 500000;
static uint16_t delay;

static void hex_dump(const void *src, size_t length, size_t line_size, char *prefix)
{
int i = 0;
const unsigned char *address = src;
const unsigned char *line = address;
unsigned char c;

printf("%s | ", prefix);
while (length-- > 0) {
printf("%02X ", *address++);
if (!(++i % line_size) || (length == 0 && i % line_size)) {
if (length == 0) {
while (i++ % line_size)
printf("__ ");
}
printf(" | "); /* right close */
while (line < address) {
c = *line++;
printf("%c", (c < 33 || c == 255) ? 0x2E : c);
}
printf("\n");
if (length > 0)
printf("%s | ", prefix);
}
}
}

static void transfer(int fd)
{
int ret;
Expand Down Expand Up @@ -76,12 +104,7 @@ static void transfer(int fd)
if (ret < 1)
pabort("can't send spi message");

for (ret = 0; ret < ARRAY_SIZE(tx); ret++) {
if (!(ret % 6))
puts("");
printf("%.2X ", rx[ret]);
}
puts("");
hex_dump(rx, ARRAY_SIZE(rx), 32, "RX");
}

static void print_usage(const char *prog)
Expand Down

0 comments on commit b78ce7e

Please sign in to comment.