mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
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>
This commit is contained in:
parent
5eca4d843f
commit
5c437a401b
@ -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 main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int fd;
|
int fd;
|
||||||
uint8_t *tx;
|
|
||||||
uint8_t *rx;
|
|
||||||
int size;
|
|
||||||
|
|
||||||
parse_opts(argc, argv);
|
parse_opts(argc, argv);
|
||||||
|
|
||||||
@ -300,17 +317,10 @@ int main(int argc, char *argv[])
|
|||||||
printf("bits per word: %d\n", bits);
|
printf("bits per word: %d\n", bits);
|
||||||
printf("max speed: %d Hz (%d KHz)\n", speed, speed/1000);
|
printf("max speed: %d Hz (%d KHz)\n", speed, speed/1000);
|
||||||
|
|
||||||
if (input_tx) {
|
if (input_tx)
|
||||||
size = strlen(input_tx+1);
|
transfer_escaped_string(fd, input_tx);
|
||||||
tx = malloc(size);
|
else
|
||||||
rx = malloc(size);
|
|
||||||
size = unescape((char *)tx, input_tx, size);
|
|
||||||
transfer(fd, tx, rx, size);
|
|
||||||
free(rx);
|
|
||||||
free(tx);
|
|
||||||
} else {
|
|
||||||
transfer(fd, default_tx, default_rx, sizeof(default_tx));
|
transfer(fd, default_tx, default_rx, sizeof(default_tx));
|
||||||
}
|
|
||||||
|
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user