summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Clayton <stillcompiling@gmail.com>2015-11-18 14:30:38 -0800
committerMark Brown <broonie@kernel.org>2015-11-23 14:54:01 +0000
commit5c437a401b824399b6fa7342c66b675ebb7af43e (patch)
tree7fa7f5ae400f9aee7c238ae139af4968b007c1e0
parent5eca4d843f9f0c3140a8657ba2f8217ee6c08c11 (diff)
downloadop-kernel-dev-5c437a401b824399b6fa7342c66b675ebb7af43e.zip
op-kernel-dev-5c437a401b824399b6fa7342c66b675ebb7af43e.tar.gz
spi: spidev_test: transfer_escaped_string function
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 <stillcompiling@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--tools/spi/spidev_test.c36
1 files changed, 23 insertions, 13 deletions
diff --git a/tools/spi/spidev_test.c b/tools/spi/spidev_test.c
index 135b3f5..f9d2957 100644
--- a/tools/spi/spidev_test.c
+++ b/tools/spi/spidev_test.c
@@ -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);
@@ -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);
OpenPOWER on IntegriCloud