Skip to content

Commit

Permalink
spi: spidev_test: transfer_escaped_string function
Browse files Browse the repository at this point in the history
Move the input_tx code into its own small function.
This cleans up some variables from main() that are used only here.
While we are at it, check malloc calls instead of assuming they succeed.

Signed-off-by: Joshua Clayton <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
  • Loading branch information
d4ddi0 authored and broonie committed Nov 23, 2015
1 parent 5eca4d8 commit 5c437a4
Showing 1 changed file with 23 additions and 13 deletions.
36 changes: 23 additions & 13 deletions tools/spi/spidev_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,13 +249,30 @@ static void parse_opts(int argc, char *argv[])
}
}

static void transfer_escaped_string(int fd, char *str)
{
size_t size = strlen(str + 1);
uint8_t *tx;
uint8_t *rx;

tx = malloc(size);
if (!tx)
pabort("can't allocate tx buffer");

rx = malloc(size);
if (!rx)
pabort("can't allocate rx buffer");

size = unescape((char *)tx, str, size);
transfer(fd, tx, rx, size);
free(rx);
free(tx);
}

int main(int argc, char *argv[])
{
int ret = 0;
int fd;
uint8_t *tx;
uint8_t *rx;
int size;

parse_opts(argc, argv);

Expand Down Expand Up @@ -300,17 +317,10 @@ int main(int argc, char *argv[])
printf("bits per word: %d\n", bits);
printf("max speed: %d Hz (%d KHz)\n", speed, speed/1000);

if (input_tx) {
size = strlen(input_tx+1);
tx = malloc(size);
rx = malloc(size);
size = unescape((char *)tx, input_tx, size);
transfer(fd, tx, rx, size);
free(rx);
free(tx);
} else {
if (input_tx)
transfer_escaped_string(fd, input_tx);
else
transfer(fd, default_tx, default_rx, sizeof(default_tx));
}

close(fd);

Expand Down

0 comments on commit 5c437a4

Please sign in to comment.