From 54a521e8a830a76ec1cb8af7921e9fdff26bd0be Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Wed, 27 May 2020 18:57:26 -0400 Subject: [PATCH] Use only one write(2) call per frame start Use only one write(2) call per frame start in src/kiss.c --- src/kiss.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/kiss.c b/src/kiss.c index 17d1926..8bb50d7 100644 --- a/src/kiss.c +++ b/src/kiss.c @@ -229,8 +229,15 @@ static inline ssize_t write_byte(int fd, uint8_t c) { return write(fd, &c, sizeof(c)); } -static inline ssize_t write_command(int fd, int command, int port) { - return write_byte(fd, ((port & 0x0f) << 4) | (command & 0x0f)); +static inline ssize_t write_start(int fd, + enum patty_kiss_command command, + int port) { + uint8_t start[2] = { + PATTY_KISS_FEND, + ((port & 0x0f) << 4) | (command & 0x0f) + }; + + return write(fd, start, sizeof(start)); } static uint8_t escape_fend[2] = { PATTY_KISS_FESC, PATTY_KISS_TFEND }; @@ -242,11 +249,7 @@ ssize_t patty_kiss_tnc_send(patty_kiss_tnc *tnc, int port) { size_t i, start = 0, end = 0; - if (write_byte(tnc->fd, PATTY_KISS_FEND) < 0) { - goto error_io; - } - - if (write_command(tnc->fd, PATTY_KISS_DATA, port) < 0) { + if (write_start(tnc->fd, PATTY_KISS_DATA, port) < 0) { goto error_io; }