]> git.karo-electronics.de Git - linux-beck.git/commitdiff
spi: spidev_test: transfer_escaped_string function
authorJoshua Clayton <stillcompiling@gmail.com>
Wed, 18 Nov 2015 22:30:38 +0000 (14:30 -0800)
committerMark Brown <broonie@kernel.org>
Mon, 23 Nov 2015 14:54:01 +0000 (14:54 +0000)
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>
tools/spi/spidev_test.c

index 135b3f592b83db0d00a940b435b8086b409fa3ef..f9d2957e538b06657b7e356e3b8c600c4da4c9a6 100644 (file)
@@ -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);